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


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

ある[ポートのリポジトリは、その依存関係と一緒に、ソースコードからアプリケーションをコンパイルするために必要なツールを提供していますが、また、現在 24.000 パッケージ以上それは pkg コマンドでFreeBSDシステムにインストールすることができます。

  1. FreeBSD 11.x Installation

FreeBSDのportsツリーでアプリケーションを検索して探す

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

どのカテゴリで mailx ユーティリティのソフトウェアパッケージを見つけられるかを確認したい場合は、次のコマンドを実行できます。

# ls /usr/ports/*/*mailx

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

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

# /usr/libexec/locate.updatedb

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

# locate mailx

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

8. locateコマンドでパッケージを探すのと同じように、whereisコマンドを使ってアプリケーションのカテゴリを表示することもできます。

# whereis mailx

FreeBSDでPKGコマンドを使ってソフトウェアを検索する

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

# 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

ロック解除 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。