openSUSE Leap15.2でSynthesizer V Basic版を動かす

唐突ですが、僕はボイロ系ジャンルが好きです。百合好きとして美味しい部分がいっぱいなので……。

 

そんな僕としてSynthesizer Vは琴葉姉妹が参入したり

(記事執筆時現在)ついなちゃんがSynthV音源化をかけたクラウドファンディングを予定していたりと、何かと話題性を持ったソフトウェア。

 

こういうソフトウェアだとLinuxはもちろん、あの林檎でさえもハブられがちだというのに。

Win/Mac/Linuxと三拍子揃ったマルチプラットフォーム対応がなされているのもポイント大。

 

そのため無料で使えるSynthesizer V Basic版を、僕もちょろっと動かしてみようかなあと思ったのですが。

openSUSE Leap15.2上で動かすまでには幾つかハマりポイントがあったので、それについて記事にしておきます。

スポンサーリンク

SynthVのダウンロード

Synthesizer V公式からlinux向けzipファイルをダウンロードし、解凍。

 

始めから実行可能状態にあるのでchmodの必要もなく、

コンソールでディレクトリ移動をしてから./synthv-studioとすれば実行できたのですけれども。

 

これで問題なく動いていたなら、この記事は始めから書かれておりません。

 

./synthv-studio: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory

openSUSE Leap15.2では十中八九、このようなエラーが吐き出されてしまいます。

libcurl-gnutls.so.4を調達する

エラー文の内容としてはおなじみの「実行に必要なライブラリが無いよ!」というもの。

こういうエラーが出た時は、zypperコマンドなりで調達してくるのが基本ですが。

 

調べてみた感じ、libcurl-gnutls.so.4はubuntuやarch linuxあたりだとパッケージが用意されているようなのですが。

openSUSEではどうやら存在しないようです。

 

そのため、error while loading shared libraries: libcurl-gnutls.so.4で見つけた、

sudo ln -s /usr/lib64/libcurl.so.4 /usr/lib64/libcurl-gnutls.so.4

このハックが有用でした。

 

別名でlibcurl.so.4のシンボリックリンクを作るハックでlibcurl-gnutls.so.4がないことについてのエラーは消えます。

(versionインフォメーションがないというWarningは出るが無視できる)

 

ただ、それはlibcurl-gnutls部分が通っただけで、まだ十全の実行には足りません。

./synthv-studio: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./synthv-studio)

次はこのエラーをなんとかする必要が出てきます。

glibc 2.27を調達する

エラー文の内容としては、glibcのバージョンが低いのでダメだよってことが書かれています。

 

TumbleWeedと違って、Leapでのglibcバージョンは2.26で据え置かれているんですよね。

僕は単なる一般ユーザーなので、なぜ据え置かれたままなのかは知りませんが。

 

とにかく重要なのはglibcのバージョンを上げる必要があるということです。

community packageとしてはお目当ての2.27も存在するのですが、遊び目的でglibcのアップデートなんてしたくありません……。

 

なので、ここでは「自前でglibcをビルドし、synth vに対してのみ適用する」方法を取ることにしました。

 

そのために参考にしたのはこのあたりのページ。

 

上記参考ページを見れば事足りる気もしますが。

この記事は備忘録も兼ねているので、僕が行った手順とその解説も記述していきます。

1. ビルド用ディレクトリを作成する

まずビルド用ディレクトリの作成を行うため、以下を実行。

mkdir -p $HOME/tmp/glibc_build

 

ここでは仮に$HOME/tmp/glibc_buildというディレクトリにしてありますが、

もちろんお好みの位置に書き換えても構いません。

 

また、これはビルド用の一時ディレクトリなので、

ビルド完了後は削除しても問題ないでしょう。たぶん。

2. make installでの対象となるディレクトリを作成する

root領域のglibcを書き換えたらえらいことになる未来しか見えないので、

ユーザー領域に出力先ディレクトリを用意します。

 

そのため以下を実行。

mkdir -p $HOME/tmp/glibc

 

これもユーザー領域であれば、どのディレクトリでも構いません。

ただ、ビルド時に大量のファイルが生成されるので、すでに使っている場所はおすすめしません。

 

ここでは雑に$HOME/tmp/glibcにでも出力することにします。

3. glibcのビルド

そうしたら、以下コマンド群を実行。

# ビルド用ディレクトリに移動
cd $HOME/tmp/glibc_build

# glibcソースファイルをダウンロード
wget https://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz

# glibcソースファイルを解凍
tar zxvf glibc-2.27.tar.gz

# ld.so.conf関連エラーを防止するためのおまじない
mkdir -p $HOME/tmp/glibc/etc/
touch $HOME/tmp/glibc/etc/ld.so.conf

# ビルド用の一時ファイルを置くディレクトリ作成
mkdir ./build
# 作成したディレクトリに移動
cd ./build

# 出力先を指定してconfigureスクリプトを実行
../glibc-2.27/configure --prefix=$HOME/tmp/glibc/

# configureスクリプトが正常に終了したならビルド
make
make install

 

僕の場合はこれでビルドできましたが、

もしかすると「このライブラリが足りない」とどこかで言われるかも知れません。

 

その場合は求められたライブラリをzypperで入れれば良いでしょう。

ビルドが終わったら

glibcのビルドが完了しても、

単にsynth vディレクトリで./synthv-studioを実行するだけでは動きません。

 

ユーザー領域に出力したので、素の状態ではライブラリとして読み込まれないためです。

 

ライブラリの読み込み元を変える方法は幾つかありますが、

ここは最もシンプルな方法として、

LD_PRELOAD環境変数を使って読み込ませることにします。

 

シェルとしてbashをお使いの場合は、以下のように実行すると良いでしょう。

LD_PRELOAD="$HOME/tmp/glibc/lib/libm.so.6" ./synthv-studio

 

bash以外のシェルをお使いの場合は、そのシェルでの環境変数読み込み方法で。

 

またglibcビルド時に出力先を変えた場合は、

無論のことながらそのディレクトリをLD_PRELOADに指定してください。

 

実行してみて、

Synthesizer V起動直後の画面を映したスクリーンショット画像

このようにSynth Vが立ち上がれば、ミッションコンプリート。

 

後はAlias指定なり、デスクトップエントリを書くなり、

お好みの方法で利便性をあげていくとモアベターではないでしょうか?

 

といったあたりでこの記事は終わりです。

ごきげんよう。