狠狠撸
Submit Search
辫办驳蝉谤肠ユーザー向け设定
?
1 like
?
1,071 views
R
Ryo ONODERA
Follow
My presentation material for 18th JNUG BOF.
Read less
Read more
1 of 14
Download now
Download to read offline
More Related Content
辫办驳蝉谤肠ユーザー向け设定
1.
辫办驳蝉谤肠ユーザー向け设定 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.
2 はじめに ● pkgsrcはいろいろな設定をすることができるのだが、 – ドキュメントはあっても、英語が基本だし、長くて分 かりにくい。 –
そもそも開発者向けのドキュメントで、利用者向けで はない。 ● 利用者の使うと便利なオプションは、説明し切れて いない。 ● そこで、利用者としての設定を中心に、私が便利と思って いる機能を説明します。
3.
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.
4 複数のCPUを活用する ● ARMなCPUのマシンでさえ、複数コアが当たり前になっ ているようです。 ● /etc/mk.confに MAKE_JOBS=3 と指定すると、ビルド時に同時に3プロセスが実行される ようになります。 ●
私は、実CPUスレッド数+1を指定していますが、根拠が 思い出せません…
5.
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.
6 配布物を保存する ● 標準では、tarballは/usr/pkgsrc/distfilesに置かれます。 ● 変更するには、/etc/mk.confに、 DISTDIR=/usr/distfiles のように設定します。 ●
複数のホストで、NFSで共通の置き場所を設定したい時と かに有効です
7.
7 生成したバイナリーパッケージ ● make packageすると、バイナリーパッケージを作ること ができます。他のマシンで使いたい時等に便利です。 ●
標準では、/usr/pkgsrc/packagesに保管されます。 ● /etc/mk.confに、 PACKAGES=/usr/packages と書いておくと、保管場所を変更できます。
8.
8 send-prする前には ● 純粋なユーザーには不要の機能ですが、send-prする前に は、開発者が設定しているオプションを設定しておくと、 話がしやすいかもしれません。 ● /etc/mk.confに、 PKG_DEVELOPER=yes と記載し、meta-pkgs/pkg_developerパッケージをインス トールしておくと良いです。
9.
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.
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.
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.
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.
13 脆弱性のあるパッケージ ● /etc/daily.confに、 fetch_pkg_vulnerabilities=YES と設定しておくと、pkgsrc security
teamがメンテナンスし ている脆弱性のデータベースファイルを定期的にダウンロー ドします。 ● データベースファイルがあると、脆弱性のあるパッケージは ビルドできません。 ● それでも使いたい場合には、/etc/mk.confに、 ALLOW_VULNERABLE_PACKAGES=#defined のようにしておきます。 ● 残念ながらこの設定をしないで済む状況はないと思います。
14.
14 まとめ ● pkgsrcユーザーに便利な設定について紹介しました。 ● ほかにも便利なオプションがあるの で、pkgsrc/mk/defaults/mk.confや他のpkgsrc/mk以下の ファイルをのぞいてみると良いと思います。
Download