FreeBSDではWebサーバ、ブラウザ、メールソフトなどのソフトウェアのインストールはpkgコマンドで管理します。
pkgコマンドのhelpやmanコマンドによるマニュアルを見るにはちょっとしたコツが必要です。
この記事ではpkgコマンドのマニュアルを見るコツとpkgコマンドの基本的な操作(インストール、削除、アップデートなど)を紹介しています。
パッケージ管理のしくみ
[ざっくりしたイメージ]
リポジトリとは、貯蔵庫、保管場所といった意味があり、パッケージやパッケージ管理に必要なデータの保管場所のことを言います。
「pkg update」は、リモートパッケージリポジトリデータベースからリポジトリカタログのローカルコピーを更新するために使用されます。
通常、カタログの更新は、リモートパッケージリポジトリのマスターコピーがローカルコピーよりも新しい場合にのみダウンロードされます。
更新するリポジトリカタログは、pkg.conf(5)ファイルまたは/usr/local/etc/pkg/reposのエントリで定義されます。 詳細については、pkg.conf(5)を参照してください。
通常は、pkg updateを明示的に実行する必要は通常ありません。デフォルトでは、pkg.conf(5)でREPO_AUTOUPDATEをfalseに設定して無効にしない限り、pkg installまたはpkg upgradeのいずれかを呼び出すと、リポジトリカタログが自動的に更新されます。
FreeBSDのリリースアップデートを実施した際には、「pkg update」または「pkg update -f」で強制的にアップデートする必要が生じることがあります。
FreeBSDをメジャーアップグレードした際には、「pkg-static」でpkgバイナリツールを新しいものに置き換えることを勧めています。
pkgコマンドのマニュアルの見方
pkgコマンドのマニュアルは「pkg help」または「man pkg」で見る事ができます。
pkgコマンドのマニュアルは、このコマンドがどのような引数を指定するようになっているか理解しないと、ちょっと難解に感じます。
このコマンドの構文は大雑把にいうと次のようになっています。
pkg [OPTIONS] <command> <flags>
pkgコマンドの引数にはサブコマンドを指定する事ができます。[OPTIONS]で指定するオプションはpkgコマンドのオプションになります。
例えば、
# pkg -v
のように指定します。
<command>にはサブコマンドを指定します。<flags>にはサブコマンドのオプションを指定します。
例えば、
# pkg install firefox # pkg update -f
のように指定します。
「update」がサブコマンド、「-f」がサブコマンドのオプションになります。
各サブコマンドのマニュアルは「pkg help <command>」または「man pkg-<command>」で見る事ができます。
例えば、
# pkg help install # man pkg-install
のように指定します。
つまり、pkgコマンドの使い方を確認するにはpkgコマンドとサブコマンドのマニュアルを見る必要があります。
また、「pkg help」と「man pkg」で表示する内容には部分的に表現の違いがあります。
一例をあげると以下のようなものがります。
helpの表記 | manコマンドの表記 |
---|---|
Global options supported: | OPTIONS |
Commands supported: | COMMANDS |
<args> | <flags> |
Display pkg(8) version | Display the current version of pkg. |
Updates package repository catalogues | Update the available remote repositories as listed in pkg.conf(5). |
表現方法が違うだけで言いたいことは同じです。
見方が分かったところで次に、よく使いそうな基本的な使い方を紹介します。
pkgコマンドの基本的な使い方
リモートパッケージリポジトリで指定したパッケージを探す。
# pkg search php74 php74を含むパッケージの一覧が表示されます。
パッケージ名には正規表現が使えます。
# pkg search '^php74-[0-9]' php74-7.4.8 PHP Scripting Language
ソフトウェア(パッケージ)のインストール
# pkg install php74
ソフトウェア(パッケージ)の削除
# pkg delete php74
インストールされているパッケージ情報を調べる
# pkg info
パッケージ一覧から指定したパッケージを抽出する
# pkg info | grep firefox firefox-71.0_2,1 Web browser based on the browser portion of Mozilla firefox-i18n-65.0.2 Localized interface for Firefox
パッケージとそのコメントを表示する
# pkg info -I firefox firefox-79.0,1 Web browser based on the browser portion of Mozil
パッケージの各種情報を調べる
パッケージの詳しい情報を調べる
# pkg info -f ja-ibus-anthy ja-ibus-anthy-1.5.11 Name : ja-ibus-anthy Version : 1.5.11 Installed on : Sat Aug 1 03:01:06 2020 JST Origin : japanese/ibus-anthy Architecture : FreeBSD:12:amd64 Prefix : /usr/local Categories : japanese Licenses : GPLv2 Maintainer : ********@nifty.ne.jp WWW : https://github.com/ibus/ibus-anthy Comment : Anthy engine for IBus Shared Libs required: libanthy.so.1 libintl.so.8 libglib-2.0.so.0 libgobject-2.0.so.0 libanthydic.so.1 Shared Libs provided: libanthygobject-1.0.so.5 Annotations : FreeBSD_version: 1201000 repo_type : binary repository : FreeBSD Flat size : 8.85MiB Description : Anthy engine for IBus. WWW: https://github.com/ibus/ibus-anthy
パッケージのファイルサイズを調べる
# pkg info -s firefox firefox-71.0_2,1 207MiB
指定したパッケージが依存しているパッケージのリストを表示する
# pkg info -d ja-ibus-anthy ja-ibus-anthy-1.5.11: pango-1.42.4_4 ibus-1.5.22 python37-3.7.8 ja-anthy-0.4_2,1 gtk-update-icon-cache-3.24.20 gdk-pixbuf2-2.40.0 py37-gobject3-3.28.3_1 glib-2.56.3_8,1 gettext-runtime-0.20.2 atk-2.36.0
指定したパッケージを必要とするパッケージのリストを表示する
# pkg info -r ibus ibus-1.5.22: ja-ibus-anthy-1.5.11 gnome-control-center-3.28.2_6
指定したパッケージで提供されるすべての共有ライブラリを表示する
# pkg info -b ja-ibus-anthy ja-ibus-anthy-1.5.11: libanthygobject-1.0.so.5
指定したパッケージで使用されるすべての共有ライブラリを表示する
# pkg info -B ja-ibus-anthy ja-ibus-anthy-1.5.11: libanthy.so.1 libintl.so.8 libglib-2.0.so.0 libgobject-2.0.so.0 libanthydic.so.1
指定したパッケージのインストール先(パス、ファイル名)を表示する
# pkg info -l firefox firefox-79.0,1: /usr/local/bin/firefox /usr/local/lib/firefox/application.ini /usr/local/lib/firefox/browser/chrome/icons/default/default128.png /usr/local/lib/firefox/browser/chrome/icons/default/default16.png /usr/local/lib/firefox/browser/chrome/icons/default/default32.png /usr/local/lib/firefox/browser/chrome/icons/default/default48.png /usr/local/lib/firefox/browser/chrome/icons/default/default64.png /usr/local/lib/firefox/browser/features/doh-rollout@mozilla.org.xpi /usr/local/lib/firefox/browser/features/formautofill@mozilla.org.xpi /usr/local/lib/firefox/browser/features/screenshots@mozilla.org.xpi /usr/local/lib/firefox/browser/features/webcompat-reporter@mozilla.org.xpi /usr/local/lib/firefox/browser/features/webcompat@mozilla.org.xpi /usr/local/lib/firefox/browser/omni.ja /usr/local/lib/firefox/defaults/pref/channel-prefs.js /usr/local/lib/firefox/dependentlibs.list /usr/local/lib/firefox/firefox /usr/local/lib/firefox/firefox-bin /usr/local/lib/firefox/fonts/TwemojiMozilla.ttf /usr/local/lib/firefox/gmp-clearkey/0.1/libclearkey.so /usr/local/lib/firefox/gmp-clearkey/0.1/manifest.json /usr/local/lib/firefox/gtk2/libmozgtk.so /usr/local/lib/firefox/liblgpllibs.so /usr/local/lib/firefox/libmozavcodec.so /usr/local/lib/firefox/libmozavutil.so /usr/local/lib/firefox/libmozgtk.so /usr/local/lib/firefox/libmozsqlite3.so /usr/local/lib/firefox/libmozwayland.so /usr/local/lib/firefox/libxul.so /usr/local/lib/firefox/omni.ja /usr/local/lib/firefox/pingsender /usr/local/lib/firefox/platform.ini /usr/local/lib/firefox/plugin-container /usr/local/lib/firefox/removed-files /usr/local/share/applications/firefox.desktop /usr/local/share/pixmaps/firefox.png
指定したパッケージの説明を表示する
# pkg info -D ja-ibus-anthy ja-ibus-anthy-1.5.11: On install: ibus-anthy installation finished. To use ibus-anthy, please do the following: If you are using bash, please add following lines to your $HOME/.bashrc: export XIM=ibus export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XMODIFIERS=@im=ibus export XIM_PROGRAM="ibus-daemon" export XIM_ARGS="--daemonize --xim" If you are using tcsh, please add following lines to your $HOME/.cshrc: setenv XIM ibus setenv GTK_IM_MODULE ibus setenv QT_IM_MODULE ibus setenv XMODIFIERS @im=ibus setenv XIM_PROGRAM ibus-daemon setenv XIM_ARGS "--daemonize --xim" If you are using KDE4, you may create a shell script in $HOME/.kde4/env, and add following lines: #!/bin/sh export XIM=ibus export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XMODIFIERS=@im=ibus export XIM_PROGRAM="ibus-daemon" export XIM_ARGS="--daemonize --xim" ------------- If you cannot launch the IM selection panel by hitting "Super+space" (usually "Win+space"), run the "ibus-setup" command and add "Japanese - Anthy" via the Imput Method tab. You may also add "ibus-daemon --daemonize --xim" to your ~/.xinitrc or ~/.xsession .
パッケージの説明にはインストール後に必要な設定や操作が表示されている事があります。インストール後やアップデート後に問題が発生した場合は、このメッセージを確認する事で問題を解決できる事があります。
パッケージのバージョンを調べる
インストールされているパッケージのパージョンを調べる
# pkg version accerciser-3.22.0 = accountsservice-0.6.42 = adwaita-icon-theme-3.28.0 = . . . xrdb-1.2.0 = xrefresh-1.0.6 = xset-1.2.4_3 = xsetmode-1.0.0 ? xsetroot-1.1.2 = xterm-351 < xtrans-1.4.0 = xvid-1.3.5,1 <
[フラグの意味]
フラグ | 意味 |
---|---|
= | 最新のパッケージ |
< | インストールされているパッケージのバージョンがcurrentバージョンより古い。 |
> | インストールされているパッケージのバージョンがcurrentバージョンより新しい。 |
? | インストールされたパッケージはインデックスに表示されません。 これは、期限切れのインデックスや、まだコミットされていないPRから取られたパッケージが原因である可能性があります。 |
! | インストールされたパッケージはインデックスに存在します。 しかし、何らかの理由で インストールされたパッケージのバージョン番号とインデックスの対応するエントリを比較することができませんでした。 |
パッケージを指定してバージョンを調べる
# pkg version -n firefox -v firefox-71.0_2,1 < needs updating (remote has 78.0.2,1)
-n 指定したパッケージ名と一致するパッケージを表示する。
-v 冗長な表記。アップデート可能なバージョンを表示する。
アップデート可能なパッケージを調べる
# pkg version -l '<' -v
-l 指定したステータスフラグと一致するパッケージを表示する。
-v 冗長な表記。
パッケージの更新
インストールされているパッケージをアップグレードする
# pkg update -f # pkg upgrade -y
-y 確認を求められたらy(yes)で応答する。
上のコマンドは、まずサブコマンドの「update -f」でリモートリポジトリからローカルカタログを強制的に更新しています。
次に「upgrade -y」でインストールされているパッケージソフトウェアを更新します。
FreeBSDをメジャーアップグレードした際の操作
# pkg-static install -fy pkg # pkg upgrade -y # freebsd-update install # shutdown -r now
FreeBSDをメジャーアップグレードした際には、パッケージソフトウェアをインストールする時の将来の問題を防ぐ為にpkgバイナリツールを新しいものに置き換えることを勧めています。
その他の操作
依存関係のなくなった不要なパッケージを削除する
# pkg autoremove
古いバージョンのパッケージを削除する
# pkg clean # pkg clean -a
-a キャッシュ全体を削除。
「pkg clean」はリモートリポジトリからダウンロードされたパッケージのローカルキャッシュをクリンアップ(掃除)します。ローカルキャッシュには新しいバージョンに置き換えられた古いパッケージ及び提供されなくなったパッケージが保存されています。
コメント