FreeBSD 12でPkg Package Managerを使用する方法

前書き

FreeBSDは、オープンソースのUnixライクなオペレーティングシステムであり、最新のサーバー、デスクトップ、および組み込みプラットフォームを強化するために使用されます。Netflix、Yahoo!、WhatsApp、BBC、Sonyなどの巨人は、何らかの形でFreeBSDを使用しています。Linuxはデスクトップに長年焦点を合わせており、FreeBSDプロジェクトはよりサーバーベースになる傾向があるため、FreeBSDシステムはLinuxほど広く知られていません。

このガイドでは、FreeBSD 12でのパッケージ管理について学びます。

ポートとパッケージ

FreeBSDでは、アドオンソフトウェアをインストールする方法が2つあります。Ports CollectionまたはPortsを使用する方法と、ソフトウェアをインストールおよび管理するための事前設定されたパッケージを使用する方法です。

Portsは、FreeBSDで追加のソフトウェアを構築するためのシステムです。Portsを使用すると、ソフトウェアベンダーが提供する未加工のソースコードから始めて、必要な方法でソフトウェアをビルドし、必要に応じて機能を有効または無効にすることができます。

パッケージは事前にコンパイルされたソフトウェアであり、ポートを構築した結果であり、ポートのメンテナーが最も多様な人々にとって最も有用であると考えるオプションを使用し、それらをパッケージにまとめて簡単にインストールできるようにします。パッケージを使用すると、アドオンソフトウェアをすばやくインストール、アンインストール、およびアップグレードできます。FreeBSDのパッケージシステムは、packageまたはと呼ばれますpkg。パッケージ情報はSQLiteデータベースに格納され、パッケージデータについてクエリを実行できます。

FreeBSDパッケージ管理に関するもう1つの重要なことは、パッケージバイナリの場所です。パッケージはの下/usr/localにバイナリをインストールし、ほとんどの設定ファイルはで/usr/local/etcはなくになり/etcます。Linuxの世界から来ている場合、これは非常に珍しいことがあります。

FreeBSDパッケージマネージャー pkg

従来のFreeBSDパッケージ管理ツールの次世代の代替品はpkgです。バイナリパッケージの処理をより速く、より簡単にする多くの機能を提供pkgすることは、FreeBSDのベースシステムにまだ含まれていないソフトウェアをインストールする最も簡単な方法です。これは、パッケージのインストール、削除、調査など、パッケージに関するほぼすべての操作に使用する多くのサブコマンドを含む単一のプログラムです。すべてのパッケージ操作と変更は、rootまたはを介して実行する必要がありますsudo

以下はcurl、FreeBSDにパッケージをインストールする方法です。

pkg install curl

ソフトウェアをインストールするとき-yProceed with this action? [y/N]:質問を回避するためにコマンドをフィードするか、構成ファイルでpkg常に想定-yするように構成できます。

パッケージを削除するには、次を使用しますdelete

pkg delete curl

ご覧のとおり、非常にシンプルで直感的です。

使用pkg help可能なサブコマンドのクイックリファレンス、またはpkg help <subcommand>特定のサブコマンドのマニュアルページを表示するために使用します。

pkg help
pkg help install
pkg help delete

取り付け pkg

FreeBSDのストックバージョンは、pkgパッケージマネージャーがインストールされた状態で出荷されません。初めてパッケージをインストールしようとするとpkg、パッケージ管理ツールをインストールするように求められます。たとえば、新しいFreeBSDにインストールする最初のパッケージがwgetであるとすると、ターミナルに次のプロンプトが表示されます。

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

あなたはヒットするYENTER、パッケージ管理ツールのインストールが開始されます。インストールwgetが完了すると、インストールしたい最初のソフトウェアパッケージ()がインストールされます。

を実行して、他のパッケージを追加せずに、パッケージングシステムを単独でインストールすることもできますpkg bootstrap。さらに、pkg自分自身と他のパッケージをインストールおよび更新する方法を知っています。

注: Vultrインスタンスはpkgデフォルトでインストールされているため、インストールする必要はありません。

構成 pkg

pkgプログラムは、多くのオプションを有する各サブコマンドで、非常に柔軟であるように設計されています。あなたは、カスタマイズされたが、確立できるため、システム全体の設定ファイルとほとんどのプログラムで一貫性のある行動pkgであり、/usr/local/etc/pkg.conf

ファイルには、のコメント化されたデフォルトが含まれていますpkg。そのファイルを読むだけで、pkg動作の詳細を学ぶことができます。構成はユニバーサル構成言語(UCL)で記述されており、コメントアウトされた構成オプションが多数あり、エイリアスがかなりあります。変数は、整数、文字列、またはブール値に設定できます。

#PKG_DBDIR = "/var/db/pkg";
#PKG_CACHEDIR = "/var/cache/pkg";
#PORTSDIR = "/usr/ports";
#INDEXDIR = "";
#INDEXFILE = "INDEX-10";        # Autogenerated
#HANDLE_RC_SCRIPTS = false;
#DEFAULT_ALWAYS_YES = false;
#ASSUME_ALWAYS_YES = false;
. . .

pkgサブコマンドのエイリアスを定義できますpkg.conf。の下部にpkg.conf、というラベルの付いたセクションがありますALIAS。複雑なコマンドを繰り返し実行している場合は、エイリアスを追加する必要があります。

ファイル形式とオプションの詳細については、pkg.conf(5)manページを参照してください。

man pkg.conf

パッケージを見つける

パッケージマネージャーがインストールされたので、パッケージをインストールできます。システム管理者であれば、オペレーティングシステムが異なれば、同じソフトウェアのパッケージバージョンに異なる名前が割り当てられることをよく知っています。たとえば、FreeBSDのApache Webサーバー用のパッケージは、異なるLinuxディストリビューションのパッケージ化されたApacheとは完全に異なる名前になります。したがって、何かをインストールする前に、インストールするパッケージの名前が何であるかを理解する必要があります。

FreeBSDプロジェクトは、パブリックリポジトリでいくつかのパッケージセットを提供しており、それらは数日ごとに更新されます。現在25,000以上のパッケージがあります。

たとえば、Apache Webサーバーを検索してみましょう。

pkg search apache
# apache24-2.4.38                Version 2.4.x of Apache web server

apache名前にが含まれるすべてのパッケージが検索されます。これは長いリストを返しますが、探しているのはapache24パッケージです。すべてのパッケージの短い説明があります。これは、インストールするパッケージを決定するときに役立ちますが、常に簡単であるとは限りません。

一部の検索では、何百もの結果が生成される可能性があります。検索結果をトリミングまたは調整するには、さまざまなコマンドラインオプションを使用する必要があります。一般的な検索オプションの詳細については、pkg-searchmanページまたはヘルプページpkg help searchを参照してください。

パッケージが本当に欲しいものかどうかわからない場合は、次のコマンドを使用してパッケージの詳細を検索できます。

pkg search -R apache24

# name: "apache24"
# origin: "www/apache24"
# version: "2.4.38"
# comment: "Version 2.4.x of Apache web server"
# maintainer: "[email protected]"
# www: "https://httpd.apache.org/"
# abi: "FreeBSD:12:amd64"
# arch: "freebsd:12:x86:64"
# prefix: "/usr/local"
# . . .
# . . .

このコマンドは、パッケージに関する多くの有用な情報を提供します。

パッケージのインストール

ソフトウェアをインストールするには、インストールするinstallサブコマンドとパッケージの名前を使用します。

pkg install apache24

を使用してパッケージをインストールする場合pkg installpkgはローカルパッケージカタログを調べ、要求されたパッケージをのリポジトリからダウンロードしますpkg.FreeBSD.org。パッケージがインストールされると、に保持されているSQLiteデータベースに登録されます/var/db/pkg/local.sqlite。このファイルを削除しないように注意してください。削除しない場合、システムはどのパッケージがインストールされたかを追跡できなくなります。ソフトウェアに依存関係がある場合は、pkgそれらを把握し、基本パッケージと一緒にインストールします。依存関係としてインストールされたパッケージは、自動パッケージと呼ばれます。

パッケージマネージャには、インターネット経由でパッケージをダウンロードして、ディスク上の1つの場所に保存する機能があります。これにより、別の機会にそれらをインストールできます。pkg fetch次のコマンドを使用して、パッケージをインストールせずにダウンロードできます。

pkg fetch nginx

このコマンドは、依存関係なしでNginxのみをフェッチします。-dフラグを使用して、すべての依存関係と名前付きパッケージを取得できます。

pkg fetch -d nginx

パッケージは、パッケージキャッシュディレクトリにダウンロードされます/var/cache/pkg。パッケージを取得したら、pkgがこのディレクトリに追加します。ファイルを一覧表示して、ファイルの内容を確認できます。

ls /var/cache/pkg

これで、ダウンロードしたパッケージをフェッチ後にインストールするために、pkg install通常どおり実行できます。インストールプロセスでは、ダウンロードされたファイルではなく、キャッシュされたファイルが使用されます。

時間の経過とともに、パッケージキャッシュディレクトリは大きくなる可能性があります。このpkg cleanコマンドは、新しいバージョンに置き換えられたキャッシュパッケージと、リポジトリに存在しないパッケージファイルを削除します。

pkg clean

キャッシュされたパッケージをすべて削除する場合は、-aフラグを使用します。

pkg clean -a

各パッケージのインストールまたはアップグレード後にパッケージキャッシュを自動的にクリーンアップする場合は、pkg.confオプションAUTOCLEANをに設定しますtrue

インストールされているパッケージに関する情報の入手

システムにインストールしたパッケージを忘れた場合pkg infoは、インストール済みソフトウェアの完全なリストを取得するために使用できます。

pkg info
# atk-2.28.1                     GNOME accessibility toolkit (ATK)
# avahi-app-0.7_2                Service discovery on a local network
# ca_root_nss-3.42.1             Root certificate bundle from the Mozilla Project
# . . .
# . . .

インストールされているパッケージの詳細が必要な場合は、pkg infoおよびパッケージ名を使用してください。これは、人にわかりやすいレポートでパッケージのインストールの詳細を示しています。

pkg info nginx
# nginx-1.14.2_3,2
# Name           : nginx
# Version        : 1.14.2_3,2
# . . .
# . . .

ソフトウェアのバージョン、ソフトウェアのインストール時間、ソフトウェアライセンス、コンパイル時のフラグなど、多くの役立つ情報を確認できます。pkg-info詳細については、manページを確認してください。

パッケージの削除

バイナリパッケージをアンインストールするには、pkg deleteサブコマンドを使用します。それはまた利用できますpkg remove

pkg delete nginx
# or
pkg remove nginx

削除するパッケージのリストと、これによって解放されるスペースの量が表示されます。

他のパッケージが依存しているパッケージをpkg削除すると、依存するパッケージも削除されます。

パッケージのロック

サーバー上のパッケージを決してアップグレードしない場合があります。パッケージをロックしても、pkgアップグレード、ダウングレード、アンインストール、再インストールは行われません。パッケージの依存関係と依存するプログラムに同じルールを適用します。

pkg lockパッケージをロックするために使用します。

pkg lock openssl

このopensslパッケージはロックされています。

システムで現在ロックされているすべてのパッケージを一覧表示するには、次の-lフラグを使用します。

pkg lock -l

ロックを解除するには、pkg unlock次のコマンドを使用します。

pkg unlock openssl

システム上のすべてのパッケージを一度にロックまたはロック解除するには、-aフラグを使用します。

pkg lock -a
pkg unlock -a

パッケージリポジトリ

パッケージリポジトリはpkg、パッケージのコレクションと呼ばれるによってサポートされています。リポジトリを追加、削除、有効化、および無効化できます。UCL形式を使用して、各リポジトリを独自のファイルに構成する必要があります。公式のFreeBSDリポジトリはこの/etc/pkgディレクトリに属しています。FreeBSDは、リポジトリ「FreeBSD」を有効にして出荷されます。その構成ファイルは/etc/pkg/FreeBSD.conf次の場所にあります。

FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}

必要に応じて、リポジトリを追加および削除できます。/etc/pkgFreeBSDの公式リポジトリ用に予約されて、あなたは別のディレクトリが必要になります。伝統的な場所は/usr/local/etc/pkg/reposです。別のディレクトリを使用する場合はpkg.confREPO_DIRSオプションを使用して場所を設定する必要があります。ローカルリポジトリディレクトリはデフォルトでは存在しないため、で作成する必要がありますmkdir -p /usr/local/etc/pkg/repos。独自のリポジトリ設定をそのディレクトリに置きます。

pkgサブコマンドの例

このセクションでは、FreeBSDサーバーの管理時に使用する可能性が最も高い、最も頻繁に使用されるサブコマンドのいくつかをリストします。

# Installs a package without asking any questions
pkg install -y package

# Makes a backup of the local package database
pkg backup

# Lists all installed packages
pkg info

# Shows extended information for a package
pkg info package

# Searches package repository
pkg search -i package

# Shows packages with known security vulnerabilities
pkg audit -F

# Shows which package owns the named file
pkg which file

# Removes unused packages
pkg autoremove

# Uninstalls a package
pkg delete package

# Removes cached packages from /var/cache/pkg 
pkg clean -ay

# Updates local copy of the package catalog
pkg update

# Upgrades installed packages to their latest version
pkg upgrade

# Checks the integrity of all your packages
pkg check -saq

# Verifies that a package's files are unaltered
pkg check -s nginx

# Shows what files came with the package
pkg info -l nginx

# Lists non-automatic packages
pkg prime-list

重要なファイルとディレクトリ

  • pkg設定ファイル-/usr/local/etc/pkg.conf
  • FreeBSDの公式リポジトリ用に予約されたディレクトリ- /etc/pkg
  • FreeBSDリポジトリファイル- /etc/pkg/FreeBSD.conf
  • カスタムリポジトリの従来の場所- /usr/local/etc/pkg/repos
  • パッケージキャッシュディレクトリ- /var/cache/pkg
  • SQLiteデータベース- /var/db/pkg/local.sqlite

概要

FreeBSDは、サードパーティソフトウェアをインストールするための2つの補完的なテクノロジーを提供しています。ソースとパッケージからインストールするためのFreeBSD Ports Collection、事前に構築されたバイナリからインストールするためです。FreeBSDがシステムをユニバーサルパッケージ管理に向けて決定的にシフトしているpkgので、可能な限りサードパーティソフトウェアを管理するようにしてください。必要なソフトウェアにパッケージバージョンがない場合、またはコンパイル時のオプションをカスタマイズする必要がある場合を除き、ポートの使用は避けてください。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。