ウェブサイト検索

FreeBSD でパッケージを管理するための 23 の便利な PKG コマンドの例


このチュートリアルでは、ポート経由で PKG という名前のパッケージ管理ツールを使用して、FreeBSD でプリコンパイルされたバイナリ パッケージ アプリケーションを管理する方法を説明します。 > ソフトウェア コレクション リポジトリ。

ポート リポジトリは、ソース コードからアプリケーションをコンパイルするために必要なツールとその依存関係を提供しますが、現在24,000 以上のパッケージを含む、コンパイル済みパッケージの膨大なコレクションも管理しています。これはpkg コマンドを使用して FreeBSD システムにインストールできます。

要件:

  1. FreeBSD 11.x のインストール

FreeBSD のポート ツリーでアプリケーションを検索および見つける

1. Ports リポジトリは FreeBSD のカテゴリに分割されており、各カテゴリは /usr/ports/ ファイル システム パス内のディレクトリで表されます。

以下のスクリーンショットに示すように、ディレクトリ /usr/ports/ の単純なリストには、使用可能なすべてのカテゴリが表示されます。

ls /usr/ports/

2. カテゴリに属する利用可能なアプリケーションをすべて表示するには、カテゴリ ディレクトリに対して ls コマンドを発行します。

データベース カテゴリが提供する利用可能なソフトウェア パッケージをすべて表示したいとします。コンソールで次のコマンドを実行します。出力をより簡単にナビゲートするには、less コマンドを使用して結果をパイプします。

ls /usr/ports/databases/ | less

3. カテゴリ内で利用可能なパッケージの数を表示するには、以下の例に示すように、カテゴリ ディレクトリをリストし、結果を wc コマンドでパイプ処理します。

ls /usr/ports/databases/ | wc -l

上のスクリーンショットでわかるように、FreeBSD データベース カテゴリには1000 個を超えるデータベースのコンパイル済みパッケージが保持されています。

4. 特定のアプリケーションがカテゴリで利用可能かどうかを確認するには、再度 ls コマンドを使用し、grep ユーティリティで結果をフィルタリングしてカスタム アプリケーションを検索します。

以下の例では、mongodb データベースで利用可能なパッケージと クラム ウイルス対策 セキュリティ パッケージを検索します。

ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam

ご覧のとおり、FreeBSD ポートではアプリケーションの複数のバージョンを利用できます。

5. ソフトウェアがどのカテゴリに属しているかわからない場合は、別の方法を使用してソフトウェア カテゴリを見つけることができます。シェル グロビング ワイルドカード * 文字を使用して、ポート ディレクトリ ツリー全体でパターンを検索します。

mailx ユーティリティのソフトウェア パッケージがどのカテゴリにあるかを確認するには、次のコマンドを実行します。

ls /usr/ports/*/*mailx

6. ソフトウェア パッケージとそのパッケージが属するカテゴリを検索する別の方法は、文字列パターンに対してlocateコマンドを使用することです。

検索文字列を実行する前に、次のコマンドを使用して検索データベースを更新する必要があります。

/usr/libexec/locate.updatedb

7. 検索データベースを更新したら、パッケージ名のキーワード パターンを使用して特定のソフトウェア パッケージを検索します。たとえば、mailx ユーティリティを検索する場合は、次のコマンドを実行できます。

locate mailx

ご覧のとおり、mailx ユーティリティには 2 つのパッケージが利用可能で、どちらも /usr/ports/mail/ カテゴリにあります。

8.locate コマンドでパッケージを検索するのと同様に、whereis コマンドを使用してアプリケーション カテゴリを表示することもできます。

whereis mailx

FreeBSD の PKG コマンドによるソフトウェアの検索

9. FreeBSD でアプリケーションを検索して見つける最も簡単な方法は、PKG パッケージ管理コマンド ラインを使用することです。たとえばポストフィックス ソフトウェアなどのアプリケーションのバイナリ パッケージを検索するには、以下のコマンドを実行します。

pkg search package_name

10. パッケージがどのカテゴリに属しているかを確認したい場合は、以下の例に示すように、-o フラグを指定して上記と同じコマンドを実行します。

pkg search -o package_name

FreeBSD でソフトウェアを管理する

11. FreeBSD の Ports リポジトリからコンパイル済みのパッケージをインストールするには、以下の例に示すように pkg コマンドを発行します。

pkg install package_name

12. システムにインストールされている特定のパッケージに関する情報を照会するには、以下のコマンドを実行します。

pkg info package_name

13. ソフトウェア パッケージがまだインストールされていない場合、pkg info コマンド スイッチは「package_name に一致するパッケージがありません」というメッセージを表示します。以下のスクリーンショットに示すように、お使いのシステム。

pkg info tcpdump

14. FreeBSD にインストールされているすべてのソフトウェア パッケージを一覧表示するには、オプションやスイッチを付けずに pkg info コマンドを実行します。

pkg info コマンドに対する grep フィルターを使用すると、以下の例に示すように、特定のパッケージまたはアプリケーションがシステム内にすでに存在するかどうかを表示できます。

pkg info | grep ftp

15. システムからパッケージを削除するには、以下のコマンドを実行します。

pkg remove package_name
or
pkg delete package_name

16. インストールされたパッケージの削除または変更を防止したい場合は、以下の図に示すように、pkg コマンドのlock スイッチを使用できます。

pkg lock package_name

Unlock pkg コマンド スイッチを使用すると、パッケージ制限を削除し、パッケージを変更またはアンインストールできます。

pkg unlock package_name

17. コマンドまたは実行可能ファイルがどのインストール済みパッケージに属しているかを確認するには、以下のスクリーンショットの例に示すように、次のコマンドを発行します。

pkg which /path/to/executable

18. システムにパッケージをインストールせずに、ポート リポジトリからパッケージをローカルにダウンロードするには、 を指定して pkg コマンド を実行します。フェッチスイッチ。

ダウンロードされたパッケージ バイナリは、圧縮された .txz ファイルであり、/var/cache/pkg/ システム パスにあります。

pkg fetch package_name
ls /var/cache/pkg/ | grep package_name

19. インストールされたパッケージが一般的な脆弱性やバグにさらされているかどうかを確認するには、以下のコマンドを実行します。

pkg audit -F

以前のバージョンのソフトウェア パッケージに影響を与える古い脆弱性のリストを表示するには、以下のコマンドを実行します。

pkg audit package_name

以下は、FreeBSD 用にコンパイルされたNginx Web サーバーで見つかったすべての既知の脆弱性の抜粋です。

pkg audit nginx
nginx is vulnerable:
Affected versions:
<= 0.8.41 : > 1.4.4,1
nginx -- Request line parsing vulnerability
CVE: CVE-2013-4547
WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html

nginx is vulnerable:
Affected versions:
< 1.0.15
nginx -- Buffer overflow in the ngx_http_mp4_module
CVE: CVE-2012-2089
WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html

nginx is vulnerable:
Affected versions:
< 1.4.7
nginx -- SPDY heap buffer overflow
CVE: CVE-2014-0133
WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html
...

FreeBSD でパッケージ管理ユーティリティを保守する

20. ソフトウェア リポジトリとインストールされているすべてのパッケージが最新バージョンまたはセキュリティ パッチで最新であることを確認するには、次のコマンドを実行します。

pkg update
pkg upgrade

21. システムにインストールされているパッケージの数や、インストールされているソフトウェアによって占有されているディスク容量など、リモート リポジトリとローカル パッケージの統計を表示するには、次のコマンドを実行します。

pkg stats

22. システムにインストールされたパッケージによって残されたすべての依存関係を削除するには、以下のコマンドを実行します。

pkg autoremove

23. リモートでダウンロードしたパッケージのパッケージ管理ローカル キャッシュ ディレクトリを自動的に消去するには、以下のコマンドを実行します。まず、ローカルにダウンロードされたバイナリ パッケージのリストを確認する必要があります。

pkg clean -a -n  
pkg clean -a -y

それだけです!ご覧のとおり、FreeBSD には、Yum、RPM、APT などの Linux ディストリビューションで使用されるパッケージ管理ツールと同様の、優れたパッケージ コレクション システムがあり、事前にコンパイルされた膨大な数のソフトウェア バイナリと、シンプルでシンプルな効果的なコマンドライン pkg を使用すると、ソフトウェアを適切な方法で管理できます。