pacmanについて。

Manjaro Linux とか Arch Linux とか MSYS2 とかは、パッケージ管理に pacman を使用しています。pacman はもともとが Arch Linux のパッケージ管理のために開発されており、Arch Linux をベースとした Manjaro Linux や FreeBSD をベースとした PacBSD で採用されています。
その他のパッケージマネージャとしては RedHat Linux が開発した rpm(とそれをベースとした yum)、Debian Linux が開発した dpkg(とそれをベースとした aptなど)、NetBSD が開発した pkgsrc システムなどがあります。

で、ここでは最近 NetBSD と並行して使い始めた Manjaro Linux で採用している pacman について、簡単にまとめておきます。つまり自分用メモ。

動作 指定オプション 説明
インストール -S [パッケージ名] ひとつ、あるいは複数のパッケージをインストールする。
依存パッケージがあればそれもインストールされる。
パッケージ名の代わりにグループ名も指定できる。
インストール -Sg [グループ名] グループ名で指定されたグループに含まれるパッケージ名を表示する。
削除 -R [パッケージ名] 特定のパッケージのみ削除する。
削除 -Rs [パッケージ名] 特定のパッケージと、そのパッケージのみが依存しているパッケージを削除する。
アップグレード -Syu リポジトリデータベースと同期して、アップグレードがあるシステム内のパッケージをすべてアップグレードする。
部分的なアップグレードはサポートされていない。
検索 -Ss [検索ワード] 指定された検索ワードにマッチするものがリポジトリにあれば表示する。
検索 -Qs [検索ワード] インストール済みのパッケージから検索する。
検索 -Si [パッケージ名] パッケージに関する詳しい情報を表示する。
検索 -Qi [パッケージ名] インストール済みのパッケージに関する詳しい情報を表示する。
検索 -Ql [パッケージ名] パッケージによってインストールされたファイルの一覧を表示する。
検索 -Qo [/パス/ファイル名] どのパッケージがそのファイルをインストールしたかを表示する。
検索 -Qdt 依存関係のない孤立したパッケージの一覧を表示する。
キャッシュの削除 -Sc ダウンロードしたパッケージファイルをキャッシュから削除する。
警告が出た -Syuu ローカルの[パッケージ]のほうが最新です というメッセージが出たときに

あるパッケージを導入して、そのパッケージが依存するパッケージもいくつかインストールされたけど、不要になって依存関係ごと削除したくなったら "-Rs" を使えばいいわけですね。

pacman -Sh すると、"-S" 関連のオプションフラグ一覧を表示してくれます。

オプション 意味
-y サーバーから最新のパッケージデータベースをダウンロード
-u インストールしたパッケージのアップグレード
-uu でダウングレードを有効
とかなっていて、"-Syuu" は必要があればダウングレードも行うってことでしょうか。pacman の man page を見ると、
-u, --sysupgrade
Upgrades all packages that are out-of-date. Each currently-installed package will be examined and upgraded if a newer package exists. A report of all packages to upgrade will be presented, and the operation will not proceed without user confirmation. Dependencies are automatically resolved at this level and will be installed/upgraded if necessary.

Pass this option twice to enable package downgrades; in this case, pacman will select sync packages whose versions do not match with the local versions. This can be useful when the user switches from a testing repository to a stable one.

Additional targets can also be specified manually, so that -Su foo will do a system upgrade and install/upgrade the "foo" package in the same operation.
現在異ストールされているそれぞれのパッケージについて検査し、新しいものがあればアップグレードする。必要があれば依存関係についても自動的に解決されてインストール/アップグレードが行われる。
このオプションを二重("-uu")に指定するとダウングレードを可能にする。この場合、pacman はローカルのバージョンと一致しないパッケージを選択する。これは "testing" リポジトリから "stable" リポジトリに切り替える場合などに重宝する。
また追加のターゲットを手動で指定することもでき、"-Su foo" はシステムアップグレードを行ってかつ "foo" パッケージをインストール/アップグレードも同時に行う。

"-Syuu" を指定すると、どうやらリポジトリの最新バージョン(stable?)に同期するようにローカルにある「リポジトリよりも新しいパッケージ」をダウングレードするようです。おそらくは何らかの理由(バグなど?)によってパッケージがリポジトリから削除された場合などに、ローカルのほうがその削除パッケージをインストールしてしまっていたときには、一つ前のバージョンなどにダウングレードする、というような動作でしょうか。

0 件のコメント:

コメントを投稿

Vimの補完プラグインをインストール。その4

Vimの補完プラグインをインストール。その3 で、 ddc-tabnine が使えそうです、などと書いたのですが、早速やってみました。 まず、tabnineのバイナリを用意しないといけません。がどうにもTabNineのサイトがわかりにくいので、 tabnine-nvim にあるダ...