NetBSDは基本的に何でも実行できることで有名ですが、その2番目を知っていましたか 名声を主張するのはpkgsrc パッケージマネージャー? NetBSDのように、pkgsrcは基本的に何でも、あるいは少なくともUnixやUnixライクなものなら何でも実行できます。 pkgsrcは、BSD、Linux、Illumos、Solaris、およびMacにインストールできます。総じて、20を超えるオペレーティングシステムがサポートされています。
MacOSを除いて、すべてのUnixオペレーティングシステムにはパッケージマネージャーが含まれています。必ずしも必要はありません pkgsrcですが、試してみたい3つの大きな理由があります:
- パッケージング。 パッケージングに興味があるが、まだ自分でパッケージを作成しようとしない場合、特にMakefilesやGNU Autotoolsのようなビルドシステムに既に精通している場合は、pkgsrcは比較的簡単に使用できるシステムです。
- 一般的。 複数のオペレーティングシステムまたはディストリビューションを使用している場合は、システムごとにパッケージマネージャーが表示される可能性があります。異種システム間でpkgsrcを使用できるため、アプリケーションを1つにパッケージ化するときに、すべてのシステムにパッケージ化できます。
- 柔軟性があります。 多くのパッケージングシステムでは、バイナリパッケージまたはソースパッケージを選択する方法が常に明確であるとは限りません。 pkgsrcを使用すると、区別が明確になり、インストールの両方の方法が同じように簡単になり、どちらも依存関係を解決します。
pkgsrcのインストール方法
BSD、Linux、Illumos、Solaris、MacOSのいずれを使用していても、インストールプロセスは基本的に同じです。
- CVSを使用してpkgsrcツリーをチェックアウトします
- pkgsrcシステムをブートストラップする
- パッケージをインストールする
CVSを使用してpkgsrcツリーをチェックアウトします
Gitの前、Subversionの前には、 CVSがありました。 。コードのチェックアウトを行うためにCVSについて多くを知る必要はありません。Gitに慣れている場合は、チェックアウトについて考えてください。 クローンとして 。 pkgsrcのCVSチェックアウトを実行すると、各パッケージの構築方法を詳述した「レシピ」がダウンロードされます。たくさんのファイルがありますが、実際には各パッケージのソースコードを取得しているのではなく、必要に応じてビルドするために必要なビルドインフラストラクチャとMakefileだけを取得しているため、ファイルは小さくなります。 CVSを使用すると、新しいものがリリースされたときにpkgsrcチェックアウトを簡単に更新できます。
pkgsrcのドキュメントでは、ツリーを / usrに保持することを推奨しています。 ディレクトリなので、 sudoを使用する必要があります (またはrootになる)このコマンドを使用するには:
$ cd /usr
$ sudo cvs -q -z2 \
-d [email protected]:/cvsroot \
checkout -r pkgsrc-2019Q3 -P pkgsrc
私が書いているように、最新のリリースは2019Q3です。 pkgsrc.orgのホームページのニュースセクションまたはNetBSDのドキュメントをチェックして、最新のリリースバージョンを確認してください。
pkgsrcツリーがコンピューターにコピーされると、 / usr / pkgsrcが作成されます。 ビルドスクリプトで満たされたディレクトリ。それらを使用する前に、ソフトウェアのビルドとインストールに必要な関連コマンドに簡単にアクセスできるように、pkgsrcをブートストラップする必要があります。
pkgsrcをブートストラップする方法 お使いのOSによって異なります。
NetBSDの場合、バンドルされているブートストラッパーを使用できます:
# cd pkgsrc/bootstrap
# ./bootstrap
他のシステムでは、Joyentが提供する、いくつかのカスタマイズされた機能が含まれているより良い方法があります。実行する正確なコマンドを見つけるには、pkgsrc.joyent.comにアクセスしてください。たとえば、Linux(Fedora、Debian、Slackwareなど)の場合:
$ curl -O \
https://pkgsrc.joyent.com/packages/Linux/el7/bootstrap/bootstrap-trunk-x86_64-20170127.tar.gz
$ BOOTSTRAP_SHA="eb0d6911489579ca893f67f8a528ecd02137d43a"
パスは、含まれているファイルがRHEL 7用であることを示唆していますが、バイナリは、最先端のLinuxディストリビューションを除くすべてのディストリビューションと互換性がある傾向があります。また、使用しているディストリビューションと互換性のないバイナリを見つけた場合は、ソースからビルドするオプションがあります。
SHA1チェックサムを確認します:
$ echo "${BOOTSTRAP_SHA}" bootstrap-trunk*gz > check-shasum
sha1sum -c check-shasum
PGP署名を確認することもできます:
$ curl -O \
https://pkgsrc.joyent.com/packages/Linux/el7/bootstrap/bootstrap-trunk-x86_64-20170127.tar.gz.asc
curl -sS https://pkgsrc.joyent.com/pgp/56AAACAF.asc | gpg --import
gpg --verify ${BOOTSTRAP_TAR}{.asc,}
適切なブートストラップキットがあることを確認したら、それを / usr / pkgにインストールします。 :
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /
これにより、通常のpkgsrcコマンドが提供されます。これらの場所をPATHに追加します:
$ echo "PATH=/usr/pkg/sbin:/usr/pkg/bin:$PATH" >> ~/.bashrc
$ echo "MANPATH=/usr/pkg/man:$MANPATH" >> ~/.bashrc
Joyentのビルドに依存せずにpkgsrcを使用したい場合は、ブートストラップを実行するだけです。 pkgsrcツリーで取得したスクリプト。 ブートストラップで関連するREADMEファイルを読みます 重要なシステム固有の注意事項については、実行する前にディレクトリを作成してください。
pkgsrcを使用してソフトウェアをインストールする方法
pkgsrcを使用してプリコンパイルされたバイナリを(DNFまたはAptの場合と同様に)インストールするのは簡単です。バイナリインストールのコマンドはpgkinです。 、pkgin.netに専用のサイトがあります。このプロセスは、Linuxを使用している人なら誰でもよく知っているはずです。
tmuxを検索するには パッケージ:
$ pkgin search tmux
tmuxパッケージをインストールするには:
$ sudo pkgin install tmux
pkgin コマンドの目的は、一般的なLinuxパッケージマネージャーの動作を模倣することです。そのため、利用可能なパッケージを一覧表示したり、利用可能なパッケージをクエリして特定の実行可能ファイルを提供するものを見つけたりするオプションがあります。
pkgsrcを使用してソースコードからビルドする方法
しかし、pkgsrcの真の力は、ソースからパッケージを簡単に構築できることです。最初のセットアップステップで20,000以上のビルドスクリプトをすべてダウンロードし、pkgsrcツリーに直接移動してそれらにアクセスできます。
たとえば、 tcshをビルドするには ソースから、最初にビルドスクリプトを見つけます:
$ find /usr/pkgsrc -type d -name "tcsh"
/usr/pkgsrc/shells/tcsh
次に、ソースディレクトリに移動します:
$ cd /usr/pgksrc/shells/tcsh
ビルドスクリプトディレクトリには、アプリケーションをシステム上でビルドするのに役立つ多数のファイルが含まれていますが、特に、 DESCRが含まれています。 ソフトウェアの説明とMakefileを含むファイル ビルドをトリガーします。
$ ls
CVS DESCR Makefile
PLIST distinfo patches
$ cat DESCR
TCSH is an extended C-shell with many useful features like
filename completion, history editing, etc.
$
準備ができたら、ビルドしてインストールします。
$ sudo bmake install
pkgsrcシステムはbmakeを使用します コマンド(最初のステップでpkgsrcチェックアウトによって提供される)なので、必ず bmakeを使用してください。 (作成ではありません 習慣から)
複数のシステム用に構築している場合は、すぐにインストールする代わりにパッケージを作成できます:
$ cd /usr/pgksrc/shells/tcsh
$ sudo bmake package
[...]
=> Creating binary package in /usr/pkgsrc/packages/All/tcsh-X.Y.Z.tgz
pkgsrcが作成するパッケージは標準のtarballですが、 pkg_addを使用して簡単にインストールできます。 :
$ sudo pkg_add /usr/pkgsrc/packages/All/tcsh-X.Y.Z.tgz
tcsh-X.Y.Z: adding /usr/pkg/bin/tcsh to /etc/shells
$ tcsh
localhost%
pkgtools pkgsrcからのコレクションは、 pkg_addを提供します 、 pkg_info 、 pkg_admin 、 pkg_create 、および pkg_delete システム上で構築および保守するパッケージの管理に役立つコマンド。
pkgsrcシステムは、パッケージ管理への直接的な実践的なアプローチを提供します。邪魔にならず、カスタマイズを促すパッケージマネージャーを探している場合は、実行しているUnixまたはUnixライクなOSでpkgsrcを試してみてください。