Ubuntu Server 18.04にpkgsrcで新しめのffmpegとsambaをインストールするテスト
頭の体操
セルフビルドした方が面白いことができるffmpeg4。
最新のバージョンで更なる転送の高速化を図ったとかリリースのあったsamba4.12*1。
セルフビルド手順を公式とか色々見てフムフム思って、メインマシンはそっちで導入してます。
でもやっぱり、何かの手順で自動更新される仕組みがあるととてもいいんじゃないかなあ、と思って、少し考えてみたんですが、そう言えばNetWalker触ってる時にビミョーにお世話になったpkgsrcだとうまくいくんでないかなと考えたんで、今回はそのテストをしてみます。
前提ですが
isoイメージの種類
Ubuntu 18.04.4のサーバーイメージからインストールして、インストール時点ではSSH以外は導入してないです。
https://ftp.riken.jp/Linux/ubuntu-releases/18.04.4/ubuntu-18.04.4-live-server-amd64.iso
USBドライブが/dev/sdbの場合だと、
# dd bs=4M if=./ubuntu-18.04.4-live-server-amd64.iso of=/dev/sdb
的なおまじないでUSBメモリに書き込み。
ホスト・ドメインなど
ホスト名はzeit、ドメイン名はhoelderlin.traum、ユーザー名はtangerine。
タンジェリンドリームの2ndは、アルファケンタウリらしい…やべえアドレスと1枚ずれた。
IPv6はカット。
雑廉堂さんをいっぱい参照したので、多謝。
https://www.rough-and-cheap.jp/ubuntu/ubuntu18_04_howto_diseable_ipv6/
固定IP化。
下のページを思いっきりパクった。サーバーイメージからインストールするとNetworkManagerとかも入ってないので、とてもシンプルでよいと思う。
https://qiita.com/zen3/items/757f96cbe522a9ad397d
pkgsrcの準備
導入に必要だと思うパッケージ。
たぶんこれくらい。
root@zeit:/usr# apt install git curl build-essential
pkgsrcの取得
イマドキ風にgithubからpkgsrcを導入する。ググると古めのgithubも出てくるので注意する。
root@zeit:/usr# git clone https://github.com/NetBSD/pkgsrc.git Cloning into 'pkgsrc'... remote: Enumerating objects: 106, done. remote: Counting objects: 100% (106/106), done. remote: Compressing objects: 100% (79/79), done. remote: Total 3138610 (delta 31), reused 64 (delta 26), pack-reused 3138504 Receiving objects: 100% (3138610/3138610), 1.37 GiB | 10.72 MiB/s, done. Resolving deltas: 100% (1896155/1896155), done. Checking out files: 100% (101284/101284), done.
ブートストラップ
pkgsrcをビルドする環境のセットアップ
root@zeit:/usr# cd pkgsrc/bootstrap/ root@zeit:/usr/pkgsrc/bootstrap# SH=/bin/bash ./bootstrap ..... =========================================================================== ===> running: /bin/sh /usr/pkgsrc/bootstrap/work/bin/install-sh -d -o root -g root /usr/pkg/etc =========================================================================== Please remember to add /usr/pkg/bin to your PATH environment variable and /usr/pkg/man to your MANPATH environment variable, if necessary. An example mk.conf file with the settings you provided to "bootstrap" has been created for you. It can be found in: /usr/pkg/etc/mk.conf You can find extensive documentation of the NetBSD Packages Collection in /usr/pkgsrc/doc/pkgsrc.txt. Hopefully everything is now complete. Thank you for using pkgsrc! =========================================================================== ===> bootstrap started: Tue Apr 7 20:09:25 JST 2020 ===> bootstrap ended: Tue Apr 7 20:12:24 JST 2020
パスを通す。
tangerine@zeit:~$ echo "export PATH=/usr/pkg/bin/:/usr/pkg/sbin:$PATH" >> .bashrc tangerine@zeit:~$ source ~/.bashrc
パスを通さないでbmakeをフルパスで使うとか何とかして、導入したパッケージに関してはffmpeg4のシンボリックリンクみたいにパス通ってるところに張って、ていうのをするようにすれば、導入した影響が最小限になる気もするけど、その辺は好みの問題なんじゃないかいな。
とはいえ、パッケージ導入中は通っていた方が絶対楽なんで、ダブルクォーテーションの中だけシェルで叩いて一時的に設定しておくのがいいかもしれんね。
ffmpeg4の導入まで(最初のパッケージ導入)
セキュリティを緩める(というか、ザルにする)
mk.confにハレンチな設定をする。ついでにffmpeg4ビルド用の設定。(.endifの手前3行を足している。)
pkgsrcをいじり始めて最初にコケるのが「そのパッケージNISCが脆弱性を公開してるよ(つまり危ないからこのPCに導入するのやめとくね。)と言って導入が途中で止まるパターン。Debianではそんなこと聞かれた覚えはないので、親切なのか、脆弱性への対応スピードが遅いため致し方ないのか…いずれにせよ、導入が止まるのはどうにも困るんでハレンチに「そんなの無視!」のオプションを指定しておく。
次にこけるのが「そのパッケージのライセンスはXXXなんですが…(導入していいか聞いてないのでやめとくね。)【中略】「そんなの全通し!」のオプションを指定しておく。
root@zeit:~# nano /usr/pkg/etc/mk.conf root@zeit:~# cat /usr/pkg/etc/mk.conf # Example /usr/pkg/etc/mk.conf file produced by bootstrap-pkgsrc # Tue Apr 7 20:21:27 JST 2020 .ifdef BSD_PKG_MK # begin pkgsrc settings ABI= 64 PKG_DBDIR= /usr/pkg/pkgdb LOCALBASE= /usr/pkg VARBASE= /var PKG_TOOLS_BIN= /usr/pkg/sbin PKGINFODIR= info PKGMANDIR= man TOOLS_PLATFORM.awk?= /usr/pkg/bin/nawk TOOLS_PLATFORM.sh?= /bin/bash ALLOW_VULNERABLE_PACKAGES=yes ( 脆弱性ガン無視 ) _ACCEPTABLE= yes ( ライセンス仏恥義理 ) PKG_OPTIONS.ffmpeg4+= fdk-aac rtmp x265 ( fdk-aacとx265は野良ビルド界の定番。rtmpは趣味。opensslはデフォでオン。 ) .endif # end pkgsrc settings
パッケージ導入
それでは、(試しに?)ffmpeg4をインストールする。
最初に足りないツールをバンバン導入するため、野良ビルドに比べて1~2時間くらい余計にかかるが、まあそんなもん。
root@zeit:/usr/pkgsrc/multimedia/ffmpeg4/bmake show-options ( 上記mk.confで追加できるオプション等が表示される。gnutlsを付けるとなんかエラーが出たような。 ) Any of the following general options may be selected: ass Enable subtitle renderer for the ASS/SSA format av1 AOmedia Video 1 video codec support bluray Enable libbluray support. doc Include the documentation. fdk-aac fontconfig Enable FONTCONFIG (fonts/fontconfig) support. freetype Enable freetype support. lame Use the lame encoder to create MP3 files. libvpx Enable libvpx support. opencore-amr Enable OpenCORE Adaptive Multi-Rate speech codecs. opus Enable opus support. pulseaudio Enable support for the PulseAudio sound server. rpi Enable Raspberry Pi support. rtmp Enable rtmp:// support using rtmpdump. tesseract theora Use the theora codecs. vaapi Enable support for VAAPI. vdpau Enable support for VDPAU. vorbis Enable Ogg Vorbis support. x11 Enable X11 support. x264 Enable x264 support. x265 Enable x265 support. xvid Enable usage of XVid codecs. At most one of the following ssl options may be selected: gnutls Enable GNU TLS support. openssl Enable OpenSSL support. These options are enabled by default: ass av1 bluray fontconfig freetype lame libvpx openssl theora vaapi vdpau vorbis x11 x264 xvid These options are currently enabled: ass av1 bluray fdk-aac fontconfig freetype lame libvpx openssl rtmp theora vaapi vdpau vorbis x11 x264 x265 xvid You can select which build options to use by setting PKG_DEFAULT_OPTIONS or PKG_OPTIONS.ffmpeg4. ( ビルド&インストール。ジャスト2時間かかった。マジかよ… ) root@zeit:/usr/pkgsrc/multimedia/ffmpeg4/bmake install ..... /usr/bin/install -c -o root -g root -m 644 /usr/pkgsrc/multimedia/ffmpeg4/work/ffmpeg-4.2.2/doc/*.txt /usr/pkgsrc/multimedia/ffmpeg4/work/.destdir/usr/pkg/share/doc/ffmpeg4 => Automatic manual page handling => Generating post-install file lists => Checking file-check results for ffmpeg4-4.2.2nb4 => Creating binary package /usr/pkgsrc/multimedia/ffmpeg4/work/.packages/ffmpeg4-4.2.2nb4.tgz ===> Building binary package for ffmpeg4-4.2.2nb4 => Creating binary package /usr/pkgsrc/packages/All/ffmpeg4-4.2.2nb4.tgz WARNING: ffmpeg4-4.2.2nb4 may not be put on a CD-ROM: WARNING: This software may require the payment of patent royalties WARNING: ffmpeg4-4.2.2nb4 may not be made available through FTP: WARNING: This software may require the payment of patent royalties ===> Installing binary package of ffmpeg4-4.2.2nb4