(2016.11.05 新規作成.)
LinuxとFreeBSD, 片方が分かっている人向けに、他方で同じことをするコマンド集。もっぱら Linux から FreeBSD の向き。
Fedora Linux では, rpmパッケージを管理する rpmコマンド, リモートリポジトリにアクセスする yum (または dnf) コマンドを組み合わせる。
Fedora 22 から, Yum から DNF へ移行した。互換機能が提供され, yum と打っても動く。
FreeBSD では, ローカルとリモートの両方を pkg コマンドで扱う。その分、サブコマンドがやや複雑になっている。
# dnf install udisks2
# pkg install xorg
新しいパッケージをリモートリポジトリから取得し, インストールする。
# dnf upgrade
# pkg upgrade
インストール済みのパッケージを更新 (バージョンアップ) する。dnfのサブコマンドは, 今のところ, update でも upgrade でも同じ。対象を表示するだけだと, dnf check-update.
FreeBSD では pkg upgrade と pkg update は全然違う意味。後者は、ローカル・カタログの更新。
FreeBSD でアップデート対象を表示するだけは, pkg version -l '<'
# rpm -e palapeli
# pkg delete gtk3
インストール済みパッケージのアンインストール. rpmコマンドは, 依存関係を調べ、ほかのパッケージから依存されている場合は、エラーで中止。
FreeBSD の場合は, 指定のパッケージに依存しているパッケージ一覧を表示し, 対話式に, すべてアンインストールするか確認してくる。
$ dnf list '*ibus*'
% pkg search ibus
部分文字列で, パッケージ名を検索する。yum/dnfコマンドはインストール済み (ローカル) とリモートの両方を表示する。
pkg search は、リモートのみを検索する。完全一致だけ表示したいときは, 正規表現が使えるので, 例えば次のようにする。あるいは --search name --exact オプションを付ける。
% pkg search '^ibus-[0-9]' ibus-1.5.11 Intelligent Input Bus for Linux / Unix OS
$ dnf info glibc-devel
% pkg search --search name --exact -f ibus
パッケージ名で検索し、パッケージ情報を表示する。dnfコマンドはインストール済みとリモートの両方を表示。
pkg search コマンドはリモートのみ。
$ rpm -qi kdelibs
% pkg info kdelibs
インストールされたパッケージ (ローカル) の情報.
FreeBSD は, pkg infoだと, ローカルのみを検索する。search と info がやや紛らわしい。
FreeBSD で, ローカルの検索は, pkg query も使える。だが、指定の仕方が難しい。
Linux.
指定のパッケージが依存しているパッケージ・共有ライブラリを一覧:
$ dnf repoquery --requires kdelibs
このコマンドは, yumと互換性がない。
指定のパッケージに依存しているものを表示:
$ rpm -e kdelibs --test
インストール済みのものは、一応これで目的のものは出るが, 何かうまくない。リモートを調べるのは、分からなかった。
指定の capability を提供するパッケージを探す。
$ dnf repoquery --whatprovides webserver
この例では, cherokee, httpd, lighttpd, nginx が表示される。
FreeBSD の場合::
指定のインストール済みのパッケージが依存するライブラリ:
$ pkg query "%do" xcalc
指定のインストール済みパッケージに依存しているパッケージ:
$ pkg query "%ro" xcalc
$ rpm -qf /bin/ls coreutils-8.25-6.fc24.x86_64
% pkg which /usr/local/bin/xsubpp /usr/local/bin/xsubpp was installed by package perl5-5.20.3_15 % pkg which /bin/ls /bin/ls was not found in the database
現にあるファイルを所有する, インストール済みのパッケージを表示. FreeBSDでは, OSの基本的なファイルについては not foundになる。
$ rpm -qa
% pkg info % pkg query "%n-%v %c"
インストールされたパッケージを、一覧表示する。
$ dnf clean all
# pkg clean
キャッシュをクリアする. FreeBSD の方は、実行前に聞いてくる。
$ package-cleanup --leaves # dnf autoremove
# pkg autoremove
package-cleanup --leaves は, インストール済みのライブラリ・パッケージのうち、何からも依存されていないものを表示。dnf autoremove は実際に削除する。
FreeBSD では、対話式に, 削除するか確認してくる。