(「作業用ユーザの作成」からの続きです。)
Synology標準のコマンド類の動作に影響を与えないように、自分でインストールする環境は専用のディレクトリにまとめてインストールすることにします。
当初、ディレクトリが深くなるのが嫌でルート直下にディレクトリを作ってインストールしたり、ルート直下だとパーティションサイズを圧迫するためデータ側(volume1)にディレクトリを作り、optwareのようにbindオプション付きでマウントしてみたりもしたのですが、問題が色々あって、最終的にデータ側(volume1)にディレクトリを作って、そのシンボリックリンクを「/usr/local」以下に設定することで落ち着きました。
実際の作業は次の通りです。実体となるディレクトリの名称に「@」を付けているのはSynologyの他のディレクトリ構成と合わせただけで深い意味はありません。
1 2 |
mkdir /volume1/@gx ln -s /volume1/@gx /usr/local/gx |
作成したディレクトリの中に予め使うと思われるディレクトリも作っておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
mkdir -p /usr/local/gx/bin mkdir -p /usr/local/gx/etc mkdir -p /usr/local/gx/include mkdir -p /usr/local/gx/lib mkdir -p /usr/local/gx/libexec mkdir -p /usr/local/gx/sbin mkdir -p /usr/local/gx/share mkdir -p /usr/local/gx/tmp mkdir -p /usr/local/gx/var mkdir -p /usr/local/gx/local mkdir -p /usr/local/gx/share/doc mkdir -p /usr/local/gx/share/info mkdir -p /usr/local/gx/share/man chmod 755 /usr/local/gx/bin chmod 755 /usr/local/gx/etc chmod 755 /usr/local/gx/include chmod 755 /usr/local/gx/lib chmod 755 /usr/local/gx/libexec chmod 755 /usr/local/gx/sbin chmod 755 /usr/local/gx/share chmod 1777 /usr/local/gx/tmp chmod 755 /usr/local/gx/var chmod g-s /usr/local/gx/bin chmod g-s /usr/local/gx/etc chmod g-s /usr/local/gx/include chmod g-s /usr/local/gx/lib chmod g-s /usr/local/gx/libexec chmod g-s /usr/local/gx/sbin chmod g-s /usr/local/gx/share chmod g-s /usr/local/gx/tmp chmod g-s /usr/local/gx/var |
上記ディレクトリにインストールしたライブラリやインクルードされるべきファイルが認識されるように「/usr/local」内にシンボリックリンクを設定します。
1 2 3 |
cd /usr/local ln -s /usr/local/gx/lib lib ln -s /usr/local/gx/include include |
さらに「環境の準備-2:IPKG他」と「作業用ユーザの作成」で修正(コピー)したrootと作業用ユーザの「.profile」の記述を以下のように変更してパスを通します(上が変更前、下が変更後です)。
1 2 3 4 5 |
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin export PATH MANPATH=/opt/share/man:/opt/man export MANPATH |
1 2 3 4 5 |
PATH=/usr/local/gx/bin:/usr/local/gx/sbin:/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/usr/local/powerpc-linux-gnuspe/bin:/usr/local/powerpc-linux-gnuspe/sbin:/usr/local/powerpc-linux-gnuspe/powerpc-linux-gnuspe/bin:/usr/local/powerpc-linux-gnuspe/powerpc-linux-gnuspe/sbin export PATH MANPATH=/usr/local/gx/share/man:/opt/share/man:/opt/man:/usr/local/powerpc-linux-gnuspe/man export MANPATH |
これで、再ログイン後から作成した各ディレクトリと「環境の準備-3:開発環境他」でインストールしたSynologyの開発環境のディレクトリにパスが通ります。
共有ライブラリを認識させるための「ldconfig」を使えるようにします。次の内容で「/etc/ld.so.conf」を設定して、Synologyの開発環境に含まれる「ldconfig」を使用します。
1 |
/usr/local/gx/lib |
デフォルトの状態では「/etc/ld.so.conf」は存在しないはずですので、次のようにすればOKです。
念のため前記で作った専用のディレクトリ内に作成して「/etc」内にシンボリックリックを設定します。
1 2 |
echo "/usr/local/gx/lib" > /usr/local/gx/etc/ld.so.conf ln -sf /usr/local/gx/etc/ld.so.conf /etc/ld.so.conf |
そして試しにldconfigを実行。
1 |
ldconfig |
パスが通っていない場合には以下のようにフルパスで実行します。
1 |
/usr/local/powerpc-linux-gnuspe/powerpc-linux-gnuspe/sbin/ldconfig |
今後、共有ライブラリ関係のインストールを行った際には、このldconfigを使うことになります。
インストールするソースによってPAM認証に対応している場合があります。
PAM認証は次のようにSynologyの開発環境に含まれるファイルを予めコピーしておくことで使用することができます。
1 2 3 4 5 6 7 8 |
mkdir -p /usr/local/gx/share/man/man8 cp -Rp /usr/local/powerpc-linux-gnuspe/etc/security /usr/local/gx/etc/ cp -p /usr/local/powerpc-linux-gnuspe/lib/libpam* /usr/local/gx/lib/ cp -Rp /usr/local/powerpc-linux-gnuspe/lib/security /usr/local/gx/lib/ cp -p /usr/local/powerpc-linux-gnuspe/sbin/pam_tally /usr/local/gx/sbin/ cp -p /usr/local/powerpc-linux-gnuspe/man/man8/pam*.8 /usr/local/gx/share/man/man8/ cp -p /usr/local/powerpc-linux-gnuspe/include/pam* /usr/local/gx/include/ cp -Rp /usr/local/powerpc-linux-gnuspe/include/security /usr/local/gx/include/ |
PAM認証は必須ではありませんから必要に応じてということで。
以上でカスタマイズの準備は全て完了です。
この後はお好みのソースをひたすらmake installしていくということになります。