狠狠撸

狠狠撸Share a Scribd company logo
辫办驳蝉谤肠ユーザー向け设定
Ryo ONODERA
<ryo_on@yk.rim.or.jp>
<ryoon@NetBSD.org>
Japan NetBSD Users' Group
BOF 2015
The University of Tokyo,
Takeda Sentanchi Bldg.
2
はじめに
● pkgsrcはいろいろな設定をすることができるのだが、
– ドキュメントはあっても、英語が基本だし、長くて分
かりにくい。
– そもそも開発者向けのドキュメントで、利用者向けで
はない。
●
利用者の使うと便利なオプションは、説明し切れて
いない。
●
そこで、利用者としての設定を中心に、私が便利と思って
いる機能を説明します。
3
ライセンス
● Open Source Initiativeが認証したライセンスで配布されているソフト
ウェアは、特に設定しないで使えるとなっているが…
● AGPL (Afferro General Public License)については、明示的に指定し
ないと、いけない。
●
● /etc/mk.confに、
ACCEPTABLE_LICENSES+=gnu-agpl-v3
と設定します。
● 他にも、Oracle JDK 8が使いたければ、
ACCEPTABLE_LICENSES+=oracle-binary-code-license
と設定するとか。
● 基本的には、make実行時に説明が表示されます。
4
複数のCPUを活用する
● ARMなCPUのマシンでさえ、複数コアが当たり前になっ
ているようです。
● /etc/mk.confに
MAKE_JOBS=3
と指定すると、ビルド時に同時に3プロセスが実行される
ようになります。
● 私は、実CPUスレッド数+1を指定していますが、根拠が
思い出せません…
5
/usr/pkgsrc以下で作業しない
●
標準では、
/usr/pkgsrc/category/packagename/work
以下でビルドします。
● しかし、こうなっていると、workディレクトリーを一括削除するのが面
倒です。どこのworkディレクトリーがクリアされていないか確認するの
も大変です。
● 毎回忘れずmake depends-clean cleanを実行すれば良いのですが…
● /etc/mk.confに、
WRKOBJDIR=/tmp/pkgsrc
と記載しておくと、
/tmp/pkgsrc/category/packagename/work
以下で、ビルドするようになります。
● rm -rf /tmp/pkgsrcで簡単にクリアできます。
6
配布物を保存する
● 標準では、tarballは/usr/pkgsrc/distfilesに置かれます。
● 変更するには、/etc/mk.confに、
DISTDIR=/usr/distfiles
のように設定します。
● 複数のホストで、NFSで共通の置き場所を設定したい時と
かに有効です
7
生成したバイナリーパッケージ
● make packageすると、バイナリーパッケージを作ること
ができます。他のマシンで使いたい時等に便利です。
● 標準では、/usr/pkgsrc/packagesに保管されます。
● /etc/mk.confに、
PACKAGES=/usr/packages
と書いておくと、保管場所を変更できます。
8
send-prする前には
● 純粋なユーザーには不要の機能ですが、send-prする前に
は、開発者が設定しているオプションを設定しておくと、
話がしやすいかもしれません。
● /etc/mk.confに、
PKG_DEVELOPER=yes
と記載し、meta-pkgs/pkg_developerパッケージをインス
トールしておくと良いです。
9
同時並行でビルドしたい
● 例えば、editors/emacs24とwww/firefoxの両方が欲しい場
合、以下のようにすると、
$ cd pkgsrc/editors/emacs24 && make install
$ cd pkgsrc/www/firefox && make install
glib2やgtk2のビルドを両方が求めるため、1つのビルドディ
レクトリーに複数のビルドが実行され、失敗してしまいま
す。
● /etc/mk.confに
PKGSRC_LOCKTYPE=sleep
としておくと、遅く来た方は、早く来た方のプロセスが終了
するのを待ってくれます。
●
ですが、タイミングが合わずに失敗することもあるような…
10
ftp.NetBSD.org以外からダウンロー
ドしたい
● 標準では、配布物は各パッケージのMASTER_SITESから
のダウンロードを試みる前
に、ftp.NetBSD.org/pub/pkgsrc/distfiles からのダウンロー
ドを試みます。
●
しかし、これでは国内のミラーを使うことができていませ
ん。
● /etc/mk.confに
MASTER_SITE_OVERRIDE=http://ftp.jaist.ac.jp/pub/pkgsr
c/distfiles/
● と指定しておくと、JAIST国内のミラーを使うことができ
ます。
11
他にもダウンロード元を指定する
● pkgsrc/mk/fetch/sites.mk に記載されているダウンロード元は、上
書きできます。
● /etc/mk.confに、
MASTER_SITE_GNU=http://www.dnsbalance.ring.gr.jp/pub/GNU/
のように、設定します。
● これでRingの国内ミラーを使うようにできます。
●
ただし、変更しない方が良い設定もあります。
– MASTER_SITE_MOZILLAとか。これはCDNです。
● [訂正]PKG_DEVELOPER=noでは、アットランダムに選ばれてし
まうのが標準動作です。MASTER_SORT_RANDOM=noにすると
良いはずです。
12
sudoを使う
● rootになってビルドするのでも、環境によっては良いのか
もしれませんが、やはりお勧めはできません。
● 標準ではsuを使いますが、毎回rootのパスワードを入力さ
せられるのは面倒です。
● /etc/mk.confに、
.if exists(/usr/pkg/bin/sudo)
SU_CMD=/usr/pkg/bin/sudo /bin/sh -c
.endif
と書いておくと、sudoをインストールしていれば、sudo
がsuの代わりに呼び出されます。
13
脆弱性のあるパッケージ
● /etc/daily.confに、
fetch_pkg_vulnerabilities=YES
と設定しておくと、pkgsrc security teamがメンテナンスし
ている脆弱性のデータベースファイルを定期的にダウンロー
ドします。
●
データベースファイルがあると、脆弱性のあるパッケージは
ビルドできません。
● それでも使いたい場合には、/etc/mk.confに、
ALLOW_VULNERABLE_PACKAGES=#defined
のようにしておきます。
●
残念ながらこの設定をしないで済む状況はないと思います。
14
まとめ
● pkgsrcユーザーに便利な設定について紹介しました。
●
ほかにも便利なオプションがあるの
で、pkgsrc/mk/defaults/mk.confや他のpkgsrc/mk以下の
ファイルをのぞいてみると良いと思います。

More Related Content

辫办驳蝉谤肠ユーザー向け设定