このチュートリアルでは、 FreeBSDでコンパイル済みのバイナリパッケージアプリケーションを管理する方法について説明します。 PKGという名前のパッケージ管理ツールの助けを借りて ポート経由 ソフトウェアコレクションリポジトリ。
ポート リポジトリは、ソースコードからアプリケーションをコンパイルするために必要なツールとその依存関係を提供しますが、現在 24.000を超えるコンパイル済みパッケージの膨大なコレクションも保持しています。 pkgを使用してFreeBSDシステムにインストールできるパッケージ コマンド。
要件:
- FreeBSD11.xのインストール
FreeBSDのPortsTreeでアプリケーションを検索して見つける
1。 ポートリポジトリは、 FreeBSDのカテゴリに分類されています 、各カテゴリは / usr / Ports /のディレクトリで表されます ファイルシステムパス。
ディレクトリの簡単なリスト/usr / Ports / 以下のスクリーンショットに示すように、利用可能なすべてのカテゴリが表示されます。
#ls / usr / Ports /
2。 カテゴリに属する利用可能なすべてのアプリケーションを表示するには、カテゴリディレクトリに対してlsコマンドを発行します。
データベースカテゴリが提供する必要のあるすべての利用可能なソフトウェアパッケージを表示したい場合は、コンソールで以下のコマンドを実行します。結果をlessコマンドでパイプ処理して、出力をより簡単にナビゲートします。
#ls / usr / Ports / databases / |少ない
3。 カテゴリで使用可能なパッケージの数を表示するには、次の例に示すように、カテゴリディレクトリを一覧表示し、wcコマンドを使用して結果をパイプ処理します。
#ls / usr / Ports / databases / | wc -l </ pre>上のスクリーンショットでわかるように、FreeBSDデータベースカテゴリは 1000以上を保持しています データベースのプリコンパイル済みパッケージ。
4。 特定のアプリケーションがカテゴリで使用可能かどうかを確認するには、もう一度lsコマンドを使用し、grepユーティリティを使用して結果をフィルタリングし、カスタムアプリケーションを検索します。
以下の例では、 mongodbを検索します データベースで利用可能なパッケージとclamアンチウイルス セキュリティパッケージ。
#ls / usr / Ports / databases / | grep mongodb#ls / usr / Ports / security / | grep clamご覧のとおり、FreeBSDポートでは複数のバージョンのアプリケーションを利用できます。
5。 ソフトウェアがどのカテゴリに属しているかわからない場合は、別の方法を使用してソフトウェアカテゴリを見つけることができます。シェルグロブワイルドカードを使用する
*
ポートディレクトリツリー全体でパターンを検索するための文字。mailxのソフトウェアパッケージを見つけることができるカテゴリを確認したい場合 ユーティリティの場合、次のコマンドを実行できます。
#ls / usr / Ports / * / * mailx6。 ソフトウェアパッケージとそのパッケージが属するカテゴリを検索する別の方法は、文字列パターンに対してlocateコマンドを使用することです。
検索文字列を実行する前に、次のコマンドを使用して検索データベースを更新する必要があります。
#/usr/libexec/locate.updatedb7。 Locateデータベースを更新したら、パッケージ名のキーワードパターンを使用して、特定のソフトウェアパッケージを検索します。たとえば、 mailxを検索する場合 ユーティリティの場合、以下のコマンドを実行できます。
#mailxを検索ご覧のとおり、 mailxで利用できるパッケージは2つあります。 ユーティリティ。どちらも/usr / Ports / mail /にあります。 カテゴリ。
8。 Locateコマンドでパッケージを検索するのと同様に、whereisコマンドを使用してアプリケーションカテゴリを表示することもできます。
#whereis mailxFreeBSDのPKGコマンドによるソフトウェアの検索
9。 FreeBSDでアプリケーションを検索して見つける最も簡単な方法は、PKGパッケージ管理コマンドラインを使用することです。アプリケーションのバイナリパッケージを検索するには、たとえば postfix ソフトウェアについては、以下のコマンドを発行してください。
#pkg search package_name10。 パッケージがどのカテゴリに属しているかを確認したい場合は、
-o
を使用して上記と同じコマンドを実行します。 以下の例に示すように、フラグを立てます。#pkg search -o package_nameFreeBSDでソフトウェアを管理する
11。 FreeBSDのPortsリポジトリからプリコンパイルされたパッケージをインストールするには、 pkgを発行します。 次の例に示すようなコマンド。
#pkg install package_name12。 システムにインストールされている特定のパッケージに関する情報を照会するには、以下のコマンドを発行します。
#pkg info package_name13。 パッケージ情報 コマンドスイッチは、「package_nameに一致するパッケージはありません」というメッセージを表示します。 以下のスクリーンショットに示すように、ソフトウェアパッケージがシステムにまだインストールされていない場合は」。
#pkg info tcpdump14。 FreeBSDにインストールされているすべてのソフトウェアパッケージを一覧表示するには、 pkg infoを実行します。 オプションやスイッチなしのコマンド。
pkg infoに対するgrepフィルター 次の例に示すように、コマンドを使用すると、特定のパッケージまたはアプリケーションがシステムにすでに存在するかどうかを確認できます。
#pkg info | grep ftp15。 システムからパッケージを削除するには、以下のコマンドを発行します。
#pkg remove package_nameor#pkg delete package_name16。 インストールされているパッケージの削除や変更を防ぎたい場合は、ロックを使用できます。 次の画像に示すように、pkgコマンドに切り替えます。
#pkg lock package_nameロック解除 pkgコマンドスイッチを使用すると、パッケージの制限を解除し、パッケージを変更またはアンインストールできます。
#pkg unlock package_name17。 コマンドまたは実行可能ファイルがどのインストール済みパッケージに属しているかを確認するには、以下のスクリーンショットの例に示すように、次のコマンドを発行します。
#pkg which / path / to / executeable18。 ポートからパッケージをローカルにダウンロードするには リポジトリ、システムにパッケージをインストールせずに、pkgコマンドを実行します フェッチで スイッチ。
圧縮された.txzであるダウンロードされたパッケージバイナリ ファイル、 / var / cache / pkg /にあります システムパス。
#pkg fetch package_name#ls / var / cache / pkg / | grep package_name19。 インストールされたパッケージが一般的な脆弱性やバグにさらされているかどうかを確認するには、以下のコマンドを発行します。
#pkg audit -F以前のバージョンのソフトウェアパッケージに影響を与える古い脆弱性のリストを表示するには、以下のコマンドを発行します。
#pkg audit package_name以下は、 Nginxで見つかったすべての既知の脆弱性の抜粋です。 FreeBSD用にコンパイルされたWebサーバー。
#pkg audit nginxソフトウェアの脆弱性を見つけるnginxは脆弱です:影響を受けるバージョン:<=0.8.41:> 1.4.4,1nginx-リクエストライン解析の脆弱性CVE:CVE-2013-4547WWW:https://vuxml.FreeBSD.org/freebsd /94b6264a-5140-11e3-8b22-f0def16c5c1b.htmlnginxは脆弱です:影響を受けるバージョン:<1.0.15nginx-ngx_http_mp4_moduleCVEのバッファオーバーフロー:CVE-2012-2089WWW:https://vuxml.FreeBSD.org/freebsd/0c14dfa7- 879e-11e1-a2a0-00500802d8f7.htmlnginxは脆弱です:影響を受けるバージョン:<1.4.7nginx-SPDYヒープバッファオーバーフローCVE:CVE-2014-0133WWW:https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3- 99ca-f0def16c5c1b.html ...FreeBSDでパッケージ管理ユーティリティを維持する
20。 ソフトウェアリポジトリとインストールされているすべてのパッケージが最新バージョンまたはセキュリティパッチで最新であることを確認するには、次のコマンドを発行します。
#pkg update#pkg upgrade21。 システムにインストールされているパッケージの数やインストールされているソフトウェアによって満たされているディスク容量など、リモートリポジトリとローカルパッケージの統計を表示するには、次のコマンドを実行します。
#pkg stats22。 システムにインストールされているパッケージによって残されたすべての依存関係を削除するには、以下のコマンドを発行します。
#pkg autoremove23。 リモートでダウンロードされたパッケージのパッケージ管理ローカルキャッシュディレクトリを自動的に消去するには、次のコマンドを実行します。まず、ローカルにダウンロードされたバイナリパッケージのリストを確認する必要があります。
#pkg clean -a -n#pkg clean -a -yそれで全部です!ご覧のとおり、 FreeBSD は、Yum、RPM、APTなどのLinuxディストリビューションで使用されるパッケージ管理ツールに似た印象的なパッケージコレクションシステムを備えており、多数のコンパイル済みソフトウェアバイナリと、シンプルで効果的なコマンドラインpkgを使用して、適切な方法でソフトウェア。
FreeBSD