2020年01月05日更新
【Arch Linux】Pacmanコマンドについてくわしく解説!
Arch LinuxのPacmanコマンドとはどのようなコマンドなのか、詳しくご紹介をしていきます。Arch LinuxのPacmanの基本からパッケージの使い方やキャッシュ削除などの基本機能・便利機能・アップグレードの更新やダウングレードに至るまで解説!
目次
- 1Pacmanとは
- ・Arch Linux の主要な機能のひとつ
- 2Pacmanの基本のコマンドライン~パッケージの検索~
- ・-Ss
- ・-Si
- ・-Q
- ・-Qi
- 3Pacmanの基本のコマンドライン~パッケージのインストール~
- ・-S
- 4Pacmanの基本のコマンドライン~パッケージの削除~
- ・-R
- ・-Rs
- ・-Rns
- 5Pacmanの基本のコマンドライン~キャッシュの削除~
- ・-Sc
- ・-Scc
- 6Pacmanの基本のコマンドライン~パッケージのアップグレード~
- ・-Syu
- ・-Syua
- ・-Syyu/-Syyua
- ・--ignore
- ・部分的なアップグレードはできない
- 7Pacmanの基本のコマンドライン~パッケージのダウングレード~
- ・-U
- 8Pacmanの基本のコマンドライン~依存関係の表示~
- ・pactree
- 9Pacmanの基本のコマンドライン~孤児パッケージの表示~
- ・-Qdt
- 10Pacmanの便利なコマンドライン
- ・8個のオペレーションとその機能
- ・Pacmanでのヘルプの参照
- ・まとめ
- ・合わせて読みたい!Arch Linuxに関する記事一覧
Pacmanとは
PacmanはArch Linuxにインストールされたパッケージを追跡するための、パッケージ管理ユーティリティです。
Pacmanを使用することにより、依存関係を解決したり、パッケージグループを扱うことができます。
さらに、インストール・アンインストールスクリプトの実行や、リモートのリポジトリとローカルマシンを同期して自動的にパッケージをアップグレードすることが可能です。
PacmanはC言語で書かれており、パッケージフォーマットは「.pkg.tar.xz」を使用しています。Pacmanはバージョン3.0.0から、libalpm(3) ("Arch Linux Package Management" ライブラリ) のフロントエンドとなりました。
このライブラリのおかげで他のフロントエンドを書くことができるようになっています。Pacmanを呼び出すときは操作とオプション、次に操作の対象となるターゲットを指定します。
ターゲットはパッケージ名やファイル名、URL、あるいは検索文字列となります。ターゲットはコマンドライン引数として指定することができます。
さらに、ターミナルのコマンドライン入力しない場合はハイフンを引数として指定することで、ターゲットを標準入力から読み込むことが可能です。
Arch Linux の主要な機能のひとつ
PacmanパッケージマネージャはArch Linuxの主要な機能のひとつです。Pacmanはシンプルなバイナリのパッケージ形式と簡単に利用できるビルドシステムから成っています。
パッケージを容易に管理することができる
Pacmanを使用することで、Arch Linuxにてパッケージ管理を簡単に利用することができ、公式のArch Linuxにあるパッケージや、ユーザー自身が作成したパッケージを簡単に管理することができます。
コマンドを使って操作対象を指定する
Pacmanはマスターサーバーと自動同期をすることによりシステムを常に最新の状態に保ちます。このサーバー・クライアントモデルにより、シンプルなコマンドのみでパッケージのダウンロードやインストールをすることができます。
Pacmanの基本のコマンドライン~パッケージの検索~
ここまでは、Pacmanの概要について解説をしてきました。ここからは、Pacmanを使用したコマンドラインの使い方について解説をしていきます。まずは、パッケージの検索方法からご紹介をしていきます。
-Ss
まずは、Pacmanの基本的なコマンドラインである「-Ss」の用途と使用方法についてご紹介をしていきます。
リポジトリを検索する
Pacmanの基本的なコマンドラインである「-Ss」はリポジトリの検索をするためのコマンドラインです。使用方法は「 pacman -Ss [検索したいソフトウェアパッケージ名] 」と入力をすることで検索をすることができます。
-Si
続いて、Pacmanの基本的なコマンドラインである「-Si」の用途と使用方法についてご紹介をしていきます。
ピンポイントでリポジトリを検索する
Pacmanの基本的なコマンドラインである「-Si」はピンポイントでリポジトリの検索をするためのコマンドラインです。
使用方法は「 pacman -Si [検索したいソフトウェアパッケージ名] 」と入力をすることでリポジトリをピンポイント検索をすることができます。
-Q
続いて、Pacmanの基本的なコマンドラインである「-Q」の用途と使用方法についてご紹介をしていきます。
インストール済のパッケージを検索
Pacmanの基本的なコマンドラインである「-Q」はインストール済のパッケージを検索するためのコマンドラインです。インストール済みのパッケージを検索する時は「-Q」が使用できない場合は、「-Qs」とコマンドラインに入力をしてください。
使用方法は「 pacman -Qs [検索したいソフトウェアパッケージ名] 」と入力をすることでインストール済みのパッケージを検索することができます。
-Qi
最後に、Pacmanの基本的なコマンドラインである「-Qi」の用途と使用方法についてご紹介をしていきます。
ピンポイントでインストール済のパッケージを検索する
Pacmanの基本的なコマンドラインである「-Qi」はピンポイントでインストール済のパッケージを検索するためのコマンドラインです。
使用方法は「 pacman -Qi [検索したいソフトウェアパッケージ名] 」と入力をすることでインストールずみのパッケージをピンポイント検索をすることができます。
Pacmanの基本のコマンドライン~パッケージのインストール~
ここからは、Pacmanを使用した基本的なコマンドラインのパッケージのインストール方法をご紹介していきます。
-S
Pacmanの基本的なコマンドラインである「-S」は行いたい操作によって入力するコマンドラインが異なります。今回は二つのシーン別のインストール方法をご紹介していきます。
特定のパッケージをインストールする
まずは、Pacmanの「-S」コマンドを使用して、特定のパッケージをインストールする方法をご紹介します。具体的な使用方法は「 pacman -S [インストールしたいソフトウェアパッケージ名] 」と入力をすることでインストールすることができます。
グループパッケージをインストールする
Pacmanのパッケージのインストール方法の二つ目は、グループパッケージをインストールする方法です。使用方法は「 pacman -S gnome 」と入力をすることでグループパッケージのインストールをすることができます。
Pacmanの基本のコマンドライン~パッケージの削除~
ここからは、Pacmanを使用した基本的なコマンドラインの一つである、パッケージの削除方法をご紹介していきます。パッケージの削除方法は大きく分けて三点あります。
-R
Pacmanを使用したパッケージの削除方法の一つ目は「-R」を使用した削除です。「-R」を使用する削除は特定のパッケージと複数のパッケージの削除をすることができます。
特定のパッケージを削除する
まずは、Pacmanの「-R」を使用した特定のパッケージを削除する方法からご紹介をします。使用方法は「 pacman -R [削除したいパッケージ名] 」と入力をすることでグループパッケージの削除をすることができます。
複数のパッケージを同時に削除する
Pacmanの「-R」を使用した複数のパッケージを削除する方法は次の通りです。使用方法は「 pacman -R [削除したいパッケージ名①] [削除したいパッケージ名②] 」と、並べて入力をすることで複数のパッケージの削除をすることができます。
-Rs
続いて、Pacmanを使用したパッケージの削除方法の二つ目は「-Rs」を使用した削除です。「-Rs」の具体的な用途と使用方法は以下の通りです。
依存する他のパッケージを一緒に削除する
Pacmanの「-Rs」の用途は依存する他のパッケージを削除する際に利用するコマンドラインです。具体的な使用方法は「 pacman -Rs [削除したいパッケージ名] 」と入力することで利用することができます。
-Rns
Pacmanを使用したパッケージの削除方法の三つ目は「-Rns」を使用した削除です。「-Rns」の具体的な用途と使用方法は以下の通りです。
バックアップファイルを削除する
Pacmanの「-Rns」の用途はバックアップファイルを削除する際に利用するコマンドラインです。具体的な使用方法は「 pacman -Rns [削除したいバックアップファイル名] 」と入力することで利用することができます。
Pacmanの基本のコマンドライン~キャッシュの削除~
ここからは、Pacmanを使用した基本的なコマンドラインの一つである、キャッシュの削除方法をご紹介していきます。キャッシュの削除方法は大きく分けて二点あります。
-Sc
Pacmanを使用したキャッシュの削除方法の一つ目は「-Sc」を使用した削除です。「-Sc」の具体的な用途と使用方法は以下の通りです。
現在インストールされていないパッケージキャッシュを全て削除する
Pacmanの「-Sc」の用途は現在インストールされていないパッケージキャッシュを全て削除するコマンドラインです。具体的な使用方法は「 pacman -Sc 」と入力することで利用することができます。
-Scc
Pacmanを使用したキャッシュの削除方法の二つ目は「-Scc」を使用した削除です。「-Scc」の具体的な用途と使用方法は以下の通りです。
すべてのキャッシュを削除する
Pacmanの「-Scc」の用途はすべてのキャッシュを削除するコマンドラインです。具体的な使用方法は「 pacman -Scc 」と入力することで利用することができます。
Pacmanの基本のコマンドライン~パッケージのアップグレード~
ここからは、Pacmanを使用した基本的なコマンドラインのパッケージのアップグレード方法をご紹介していきます。パッケージのアップグレード方法は大きく分けて四点あります。一つずつご紹介をしていきます。
-Syu
Pacmanの基本的なコマンドラインのパッケージのアップグレードで、特に使用頻度の高いコマンドラインは「-Syu」となるかと思います。
Arch LinuxのPacmanに限ったものではありませんが、使用をするパッケージは基本的にはすべて最新の状態で使用することを推奨されます。
古いグレードで使用をすることもできますが、古いグレードの場合、提供元のサポートが終了しており問題が発生した場合でもすべて自己解決をするしかない場合もあります。
提供元のサポートを受け続けるという意味でも、この「-Syu」コマンドは覚えておきましょう。
更新可能なすべてをアップグレードする
具体的に、Pacmanの「-Syu」の用途は更新可能なすべてのパッケージをアップグレードするためのコマンドラインです。具体的な更新の使用方法は「 pacman -Syu 」と入力することで利用することができます。
-Syua
続いて、Pacmanの基本的なコマンドラインの一つである「-Syua」の用途と使用方法について解説をしていきます。
AURパッケージをアップグレードする
AUR (Arch User Repository)を利用するにはYaourtを使うことになります。 AURパッケージをアップグレードするためには、明示的に -a( --aur )の指定が必要となります。
具体的に使用するコマンドラインとしては「 yaourt -Syua 」と入力をし使用することとなります。
-Syyu/-Syyua
続いて、Pacmanの基本的なコマンドラインの一つである「-Syyu/-Syyua」の用途と使用方法について解説をしていきます。
強制更新する
このPacmanの「-Syyu/-Syyua」は、インストールしているパッケージの強制アップグレードの際に利用する、更新をするためのコマンドとなります。
-yオプションは2つ並べるとパッケージデータベースを強制的に更新をします。つまり「-Sy」よりも強力なのコマンドが「-Syy」コマンドということとなります。
具体的な使用方法は「 pacman -Syyu 」となり、これはパッケージリストを強制更新しつつパッケージをアップグレードをし、更新をします。
AURの場合は「yaourt -Sya」でリスト更新となるため、強制更新をする際は「-Syya」となります。強制更新しつつパッケージアップグレードするには、「 yaourt -Syyua 」とコマンドを実行することで更新をすることができます。
--ignore
続いて、Pacmanの基本的なコマンドラインの一つである「--ignore」についてご紹介をしていきます。
アップグレードを抑止する
Pacmanで使用するオプションの「--ignore」コマンドはアップグレードを抑止することができます。
「pacman -U」でダウングレードを実行する場合、「/var/cache/pacman/pkg」に格納されているキャッシュデータを使用し古いバージョンへダウングレードを行います。
「--ignore」を実行することにより、次回のアップグレードの際に指定したファイルをアップグレードの対象外にすることができます。
使用するコマンドラインは「 pacman -Syu --ignore []アップグレードを抑止したいパッケージ名] 」となります。
ですが、コマンドラインで都度指定する必要があるため、一時的な抑止にはなりますが、アップグレードの度に行うのは大変です。
そのような手間が発生しないように、あらかじめ設定ファイルに書き込んで指定することでそのような手間は発生しなくなります。設定ファイルは「 /etc/pacman.conf」に「IgnorePkg = [ファイル名]」 という行を追記しておきましょう。
部分的なアップグレードはできない
Arch Linuxは部分的なアップグレードはサポートされていません。基本的には使用しているファイルはすべて最新の状態で使用することを想定してパッケージの提供がなされています。
そのため、上記のようにアップグレード抑止のやダウングレードは仕様として行うことはできますが、その後の動作はArch Linuxのサポート外となるため、すべて自己責任での範疇で行う必要があります。
Pacmanの基本のコマンドライン~パッケージのダウングレード~
ここからは、Pacmanを使用した基本的なコマンドラインのパッケージのダウングレードの方法をご紹介していきます。
-U
Pacmanでのダウングレードで使用するオプションのコマンドは「-U」を使用します。具体的にどのようにダウングレードコマンドを使用をするのか下記にて解説をしていきます。
古いバージョンへダウングレードする
Pacman はインストールしたパッケージをキャッシュディレクトリの「 /var/cache/pacman/pkg 」に格納をしていきます。
そのため、アップグレードを実行して、もし動かなくなったとしても格納されているキャッシュに残された古いバージョンへダウングレードできます。
実際にダウングレードをする際に使用するコマンドラインは「 pacman -U [パッケージのファイルパス+ファイル名] 」となります。
具体的には「 pacman -U /var/cache/pacman/pkg/emacs-24.5-4-x86_64.pkg.tar.xz 」このように実行し、ダウングレードを行います。
Pacmanの基本のコマンドライン~依存関係の表示~
ここからは、Pacmanを使用した基本的なコマンドラインの依存関係の表示をするための方法をご紹介していきます。
pactree
Pacmanで依存関係の表示をするためのオプションのコマンドは「pactree」を使用します。具体的にどのように使用をするかは下記を参考にしてください。
パッケージの依存関係を出力する
Pacmanのパッケージの依存関係を出力するためには「 pactree [パッケージ名] 」といったコマンドラインを入力することでツリーを確認をすることができます。
お分かりかと思いますが、依存関係の出力をするためには「pacman」コマンドは使用しませんので注意が必要です。
必要なパッケージの確認
上記では依存関係のツリーを表示するためのコマンドラインをご紹介しました。その、使用しているパッケージを必要としているすべてのパッケージを一覧で確認をすることができます。
その具体的な方法は「 whoneeds [パッケージ名] 」というようにコマンドラインを実行することで確認をすることができます。
または、リバースフラグを使用し「 pactree -r [パッケージ名] 」というように実行をすることで、同様に使用しているパッケージを必要としているパッケージの確認をすることができます。
Pacmanの基本のコマンドライン~孤児パッケージの表示~
ここまで、Pacmanでのアップグレードやダウングレード、また、依存関係の表示をする方法などをご紹介をしてきました。
ここからはパッケージに依存をしていない、通称「孤児パッケージ」の表示する方法をご紹介をしていきます。
-Qdt
Pacmanにて孤児パッケージを表示させるためにはオプションの「-Qdt」コマンドを使用する必要があります。この「-Qdt」の具体的な利用方法は以下の通りです。
どのパッケージにも依存していないものを出力する
どのパッケージにも依存していないもの、通称「孤児パッケージ」を出力をするためには「 pacman -Qdt 」と実行することで表示させることができます。
プロジェクトによっては、パッケージに依存していない孤児パッケージは一切使用しない、といったこともあるかもしれません。
その時は孤児パッケージを削除することができます。その際に使用するコマンドは「 pacman -Rs $(pacman -Qdtq) 」となります。以上のコマンドを実行することで、孤児パッケージをすべて一括で削除をすることができます。
Pacmanの便利なコマンドライン
Pacmanコマンドは必ずオプションを使用しますが、このオプションの構成が若干複雑と感じる方も多いはず。
Pacmanの使用しはじめはその複雑さに抵抗を感じるとは思いますが、慣れると機能の豊富さを実感することができ、Pacmanなしでは作業ができないと感じるほどになることも多いです。
Pacmanを使いこなすコツとしては、Pacmanコマンドラインのオプション構成のほとんどは「オペレーション+オプション」という組み合わせだという点を認識することにあります。
さらにパッケージやファイル名などをターゲットとして指定することで細かい指定や情報をとることができるため、このような使い方をする時にPacmanの有能さを実感できるはずです。
8個のオペレーションとその機能
Pacmanのオペレーションは全部で8個あります。オペレーションの構成はハイフン(-)と大文字アルファベットを1文字連ねて表しています。
また、Pacmanはロング文字列オプションにも対応しており、キーストロークが増えるものの意味が判りやすい点も嬉しいポイントです。
以下からPacmanのオペレーションである8個の機能について一つずつ解説も交えてご紹介をしていきたいと思います。
-S / --sync
Pacmanの便利なオペレーションの一つ目は「-S / --sync」です。この機能としては、パッケージの同期(主に ダウンロード-インストール-依存解決 を意味する)といった便利な機能となります。
-Q / --query
Pacmanの便利なオペレーションの二つ目は「-Q / --query」です。この機能としては、ローカルパッケージ(インストール済みパッケージ)の問い合わせといった便利な機能となります。
-R / --remove
Pacmanの便利なオペレーションの三つ目は「-R / --remove」です。この機能としては、ローカルパッケージの削除をするといった便利な機能となります。
-U / --upgrade
Pacmanの便利なオペレーションの四つ目は「-U / --upgrade」です。この機能としては、パッケージの追加インストールやアップグレードと依存解決するといった便利な機能となります。
-T / --deptest
Pacmanの便利なオペレーションの五つ目は「-T / --deptest」です。この機能としては、依存のテストツールといった便利な機能となります。
-D / --database
Pacmanの便利なオペレーションの六つ目は「-D / --database」です。この機能としては、パッケージ属性編集やローカルデータベースのチェックをするといった便利な機能となります。
-F / --files
Pacmanの便利なオペレーションの七つ目は「-D / --database」です。この機能としては、ファイルデータベースの問い合わせをするといった便利な機能となります。
-V / --version
Pacmanの便利なオペレーションの八つ目は「-V / --version」です。この機能としては、Pacman のバージョン情報(伴うオプションは無視する)といった便利な機能となります。
Pacmanでのヘルプの参照
Pacmanではこれまでご紹介をしてきた八つの便利なオペレーション機能の他に九つ目の機能として「ヘルプ」を使用することができます。
Arch LinuxのPacmanでは、この八つの機能とヘルプを合わせて「OPERATIONS」として紹介がなされています。そんなヘルプの使用方法をご紹介します。
-H / --help
Pacmanの便利なオペレーションの九つ目は「-H / --help」です。この機能としては、Pacmanのヘルプを参照することができるといった便利な機能となります。
各オペレーションのヘルプの参照をしたい場合は「 pacman [参照したいオペレーション] --help 」とコマンドを実行することで参照することができます。
まとめ
ご紹介をしたPacmanの便利機能については、基本的には「 -S / --sync 」「 -Q / --query 」「 -R / --remove 」「 -U / --upgrade 」の四つを使用する頻度が多くなると思いますが、他のコマンドも覚えておいても損はないはずです。
また、これまでご紹介をしてきたPacmanの各機能はすべて基本的なものではありますが、この基本さえ身につけておけばPacmanをマスターしたといっても過言ではありません。
効率的で精度の高いプロジェクトにするために、ぜひこの多機能で便利ばPacmanを活用してみてください。