2015の15日目の記事として書かれました。pkgsrcは、NetBSDの公式パッケージシステムです。このパッケージシステムの特徴として、他のUN*X系OSでも使うことができます。BSDが、pkgsrcを公式パッケージシステムにしていました。Node.jsで有名な、JoyentのつくるクラウドOS、SmartOSが公式パッケージシステムとして利用しています。いうサイトをつくっていて、ここで、SmartOSを始め、Illumos・OpenIndiana・OmniOSといったOpenSolaris系のOSのためのバイナリーパッケージを提供しています。Xと、RHEL6互換OSむけのバイナリーパッケージも提供しています。これらOSは、いずれも、最新のフリーソフトを利用しようとしても、公式パッケージのアップデートがなかったり、そもそもフリーソフトを導入するパッケージシステムがなかったり、乏しかったりするものです。この文書では、CentOS6でJoyentが提供するpkgsrcのバイナリーパッケージを使ってみます。pkgsrcの基本的なこと(たとえば、pkg_*コマンドのこと等)は割愛します。(別に知らなくても使えると思いますが、少しは「用語」は出てきちゃうので...。)バイナリーパッケージって信用していいの?...という話も最近聞かなくなりましたね。ようは、バイナリーパッケージ=コンパイル済なので、どんな悪意ある改変が行われていてもわからない。install)すべき、という話です。よって、以下の話は、Joyentを信用できる人だけの話、です。かんたんに書いてあって、実際、だいたいこのとおりなのですが、やってみます。6.5で試してみることにします。bootstrapのインストールbootstrapをダウンロード、インストールします。https://pkgsrc.joyent.com/packages/Linux/bootstrap/bootstrap-trunk-x86_64.tar.gzhttps://pkgsrc.joyent.com/packages/Linux/bootstrap/bootstrap-trunk-x86_64.tar.gz.ascの2つのファイルをダウンロードします。ダウンロードしたら、正しいバイナリかどうか、検証します。Xのページに、gpgを使った検証方法が載っています。URI一番最初だけ、(よくわかりませんが)失敗します。signature、でpkgsrc@joyent.comのサインなので、問題ありません。以下にインストールされます。あとは、PATHに追加すれば、自由に利用できます。MANPATH=/usr/pkg/man:$MANPATHpkginコマンドあれこれSmartOSでは、pkgsrcはpkginコマンドでバイナリーパッケージをつかうもの、ということになっているようです。Linuxでも同じようになっています。pkginコマンドをつかってみましょう。最初にパッケージのデータベースをアップデートしないといけませんが、一番最初に、pkginコマンドを使うと、自動的にアップデートされるので気にすることはありません。libraryインストールされているパッケージ一覧を表示します。emulatorインストール可能なパッケージ一覧を表示します。auto-removableパッケージをインストールします。summary...パッケージをアンインストールします。packageインストール可能なパッケージを検索します。search)使えるコマンド一覧は、引数なしで、pkginを実行して下さい。statistics.割愛しますが、manもあります。参考にして見て下さい。例:新しいOpenSSHをインストールしてみようインストールでは、新しめのソフトがほしい、ということで、例として、OpenSSHをインストールしてみます。OpenSSHは、CentOS6の場合、5.3p1です。pkginでインストールしてみましょう。sshで検索してみます。package多すぎました。opensshで検索してみます。package見つかりました。7.1がインストールできるようです。インストールしてみましょう。インストールできました。以下が設定ファイルです。2015おぉ、7.1p1です。libraryたしかに、さっきより、いくつかインストールされたパッケージが増えましたね。自動起動できるようにしたいこれで、sshコマンドとかは、7.1が使えるようになりました。sshdもそうしたいですよね。何か書く、という手もありますが、いまいちイケていません。パッケージを導入します。auto-removableこれをインストールすると、NetBSDのrc.d起動機構に関係するファイルがインストールされます。rc.subr-20150510:Files:/etc/rc.conf.example/etc/rc.subr/etc/rc.d/DAEMON/etc/rc.d/LOGIN/etc/rc.d/NETWORKING/etc/rc.d/SERVERSこんな感じ。CentOS側で使っているディレクトリなので、ちょっと困ります。そこで、以下のような細工をします。755しておいて下さい。dummy.次に、このrc.d起動機構にあるファイルを起動するよう、CentOS側をなんとかします。以下の内容のファイルを/etc/init.d/rcdに作成します。$RETVALこれを自動起動するようにします。下に、起動ファイルを置けば、自動的に起動されるようになります。keysをコピーします。.試しに、起動するか試してみましょう。編集して、8022番ポートで待ち受けるようにします。(あと、pidファイル名を変えて下さい。rpmの方のsshdのと重複します。LISTENおぉ、8022番ポートをListenしています。sshしてみましょう。keyが使われたり、間違いありません。/usr/pkg/etc/ssh/sshd_configを再度編集し、8022番ポートの待受設定を元に戻します。あとは、CentOS側のsshdを止め、pkgsrc側のsshdを上がるようにすればOKです。再起動して上がってくるか試してみます。nowリモートから、sshでログインできるか試してみて下さい。あとがきNetBSD使っているひとって、みんな古くから使っていて初心者なんかいなさそうで(そんなことはない)、英語なんかもすらすら読めて(ぼくはちがう)、デバイスドライバ書いたりカーネルいじったりしていて(ぼくは超ちがう)、っていうすごいはっかー、ていう感じがします。そんなことは全然全くさっぱりちっともないただの利用者たるぼくですが、何か書いてみることにしました。誰かのお役に立てれば幸いです。バイナリーパッケージじゃなくて、bootstrapから自分でやってみたい、という人は、以前書いた、"ServersMan@VPSのCentOSでpkgsrc"が参考になるかもしれません。