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 件のコメント:

コメントを投稿

Windowsでシンボリックリンクを試してみる。

きっかけは、1つのファイルを別の名前で起動したら違う動きになるようなスクリプトを書く、でした。  busybox なんかでは、同じ実行形式ファイルの名前を、lsにすればlsと同じ、cpとすればcpと同じ動作をするようにしてますが、Pythonスクリプトでそれと同じように argv...