🚀
jail に Python パッケージをインストールする
この記事では、jail
にパッケージをインストールしていきます。
前回[1] は、VITOTHON[2][3] を使用して jail
を簡単に構築する環境を用意しました。
前回作成した test.py を使用して jail
を用意します。
[root@vitothon /jails/bin]# python3 test.py
I'll do your job
ipfw: getsockopt(IP_FW_XADD): Protocol not available
Setup node server01 done!
epair0a is connected to server01
epair0a of server01 has 192.168.100.1/255.255.255.0
epair0b has 192.168.100.254/255.255.255.0
epair0a up
epair0b up
add net default: gateway 192.168.100.254
assign 192.168.100.254 as gateway of server01
[root@vitothon /jails/bin]# jls
JID IP Address Hostname Path
1 server01 /jails/server01
pkg
コマンドの -j
オプションを使ってパッケージをインストールしようとしましたが、権限の問題なのかエラーになってしまいました。jail
内のディレクトリの権限を変更してもとくに変化はありませんでした。
(追記)
jail
内でchmod 755 /var/db/pkg
で解決しました。
[root@vitothon /jails]# pkg -j server01 info
pkg: . permissions (0777) too lax
# chmod 755 /var/db/pkg
# ls -l /var/db/
...
drwxr-xr-x 2 root wheel 2 Jun 19 20:54 pkg
作戦変更
ホスト側でパッケージファイルを準備し、pkg add
で jail
に展開します。
まずは、パッケージを準備します。
[root@vitothon /jails/bin]# pkg fetch -d python3
# fetch したパッケージ一覧
gettext-runtime: 0.21.1 (166 KiB: 0.88% of the 18 MiB to download)
indexinfo: 0.3.1 (6 KiB: 0.03% of the 18 MiB to download)
libffi: 3.4.4 (42 KiB: 0.22% of the 18 MiB to download)
mpdecimal: 2.5.1 (320 KiB: 1.70% of the 18 MiB to download)
python3: 3_3 (1 KiB: 0.01% of the 18 MiB to download)
python39: 3.9.17 (18 MiB: 95.21% of the 18 MiB to download)
readline: 8.2.1 (367 KiB: 1.95% of the 18 MiB to download)
[root@vitothon /jails/bin]# ls /var/cache/pkg/
gettext-runtime-0.21.1.pkg mpdecimal-2.5.1~29d761ff7b.pkg
gettext-runtime-0.21.1~c68f88fc98.pkg python3-3_3.pkg
indexinfo-0.3.1.pkg python3-3_3~32b78d90b4.pkg
indexinfo-0.3.1~14568ad638.pkg python39-3.9.17.pkg
libffi-3.4.4.pkg python39-3.9.17~954c311fdb.pkg
libffi-3.4.4~d1ee59bff4.pkg readline-8.2.1.pkg
mpdecimal-2.5.1.pkg readline-8.2.1~74bc963561.pkg
fetch したファイルを jail
のフォルダにコピーします。
[root@vitothon /jails/bin]# mkdir ../server01/pkg
[root@vitothon /jails/bin]# cd /var/cache/pkg/
[root@vitothon /var/cache/pkg]# cp gettext-runtime-0.21.1.pkg /jails/server01/pkg/
[root@vitothon /var/cache/pkg]# cp indexinfo-0.3.1.pkg /jails/server01/pkg/
[root@vitothon /var/cache/pkg]# cp libffi-3.4.4.pkg /jails/server01/pkg/
[root@vitothon /var/cache/pkg]# cp mpdecimal-2.5.1.pkg /jails/server01/pkg/
[root@vitothon /var/cache/pkg]# cp python3-3_3.pkg /jails/server01/pkg/
[root@vitothon /var/cache/pkg]# cp python39-3.9.17.pkg /jails/server01/pkg/
[root@vitothon /var/cache/pkg]# cp readline-8.2.1.pkg /jails/server01/pkg/
jail
を起動して、pkg add
していきます。
[root@vitothon /jails/bin]# python3 test.py
[root@vitothon /jails/bin]# pkg -j server01 add /pkg/gettext-runtime-0.21.1.pkg
[root@vitothon /jails/bin]# pkg -j server01 add /pkg/libffi-3.4.4.pkg
[root@vitothon /jails/bin]# pkg -j server01 add /pkg/mpdecimal-2.5.1.pkg
[root@vitothon /jails/bin]# pkg -j server01 add /pkg/readline-8.2.1.pkg
[root@vitothon /jails/bin]# pkg -j server01 add /pkg/python3-3_3.pkg
[root@vitothon /jails/bin]# pkg -j server01 add /pkg/python39-3.9.17.pkg
[server01] Installing python39-3.9.17...
the most recent version of python39-3.9.17 is already installed
# python39 は必要ないみたいでした。
それでは、jail
に Python がインストールされたか確認します。
[root@vitothon /jails/bin]# jexec server01 /bin/sh
# python3
Python 3.9.17 (main, Jun 22 2023, 01:11:04)
[Clang 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a on freebsd13
Type "help", "copyright", "credits" or "license" for more information.
>>>
# インタプリタが表示されたので、問題なくインストールできました。
Discussion