ArchLinuxパッケージ管理の使用方法
入門
Arch Linuxは、他の最新のLinuxディストリビューションに見られるものと同様のパッケージ管理機能を提供します。 これは、一般的なパッケージ管理操作のガイドです。
先に進む前に、パッケージデータベースが最新のものであることを確認してください。
sudo pacman -Sy
検索
直感性よりも簡潔さを優先して、ArchLinuxのほとんどのパッケージ管理操作は次の形式で表示されます。
pacman -<a-z><a-z>.
たとえば、pacmanリポジトリを検索するための通常のコマンドは次のとおりです。
pacman -Ss <package>
ほとんどのpacmanコマンドのように、それは特に明白ではありません。 pacmanには、pacsearchユーティリティも付属しています。 同様に機能しますが、pacman-Ssよりもいくつかの機能強化があります。
- カラーハイライト
- インストールされたパッケージカテゴリ(「ローカル」)
キーワード「linux」を使用してすべての標準パッケージを一覧表示する方法は次のとおりです。
pacsearch linux
検索条件に一致するパッケージがたくさんある場合があります。 これは、ヨーグルトのようなAURヘルパーを使用する場合に特に当てはまります。 正規表現は、リストを絞り込むのに役立ちます。 たとえば、「ack」ツールに関連するものを見つけようとしているとします。 ackを定期的に検索すると、「パッケージ」、「ハック」、「再生」などの単語が原因で、必然的に多くの結果が返され、ふるいにかけられます。
pacsearch ack
ただし、ackで開始する単語は多くありません。 検索語に^を追加すると、それらの文字で始まる結果のみが含まれます。 これは、少なくともpacsearch、pacman、およびyaourtで機能します。
pacsearch ^ack
正規表現が意図したとおりに機能することを保証するには、正規表現を引用符で囲みます。
pacsearch 'c\+\+'
検索に一致するインストール済みパッケージのリストを取得する場合は、結果を「greplocal」にパイプします。 「-A1」オプションは、一致するたびに1行を含めるようにgrepに指示します(この場合はパッケージの説明)。
pacsearch linux | grep local -A 1
または、色の強調表示がないという欠点のあるpacman-Qを使用することもできます。
pacman -Qs linux
pacman -Ssを使用して色を強調表示する場合は、/ etc/pacman.confからColorのコメントを解除できます。 ただし、pacsearchとは異なる点が強調表示されるため、両方を試して、どちらが良いかを確認することをお勧めします。
sudo vi /etc/pacman.conf ... # Misc options #UseSyslog Color #TotalDownload CheckSpace #VerbosePkgLists ...
情報を教えてもらう
pacman -Qi インストールされているパッケージに関する基本情報を表示します。
pacman -Qi linux Name : linux Version : 3.8.4-1 Description : The linux kernel and modules Architecture : x86_64 URL : http://www.kernel.org/ Licenses : GPL2 Groups : base Provides : kernel26=3.8.4 Depends On : coreutils linux-firmware kmod mkinitcpio>=0.7 Optional Deps : crda: to set the correct wireless channels of your country Required By : None Optional For : None Conflicts With : kernel26 Replaces : kernel26 Installed Size : 64728.00 KiB Packager : Tobias Powalowski <[email protected]> Build Date : Wed Mar 20 21:16:17 2013 Install Date : Fri Mar 29 01:02:14 2013 Install Reason : Explicitly installed Install Script : Yes Validated By : Unknown
pacman -Qiに引数が渡されない場合、システム内のすべてのパッケージが返されます。 この出力を検索して、インストールされているパッケージに関する専門的な情報を取得できます。
たとえば、各パッケージとそのサイズを取得する場合は、次のようになります。
pacman -Qi | grep -e "Name" -e "Installed Size" Name : a52dec Installed Size : 244.00 KiB Name : aalib Installed Size : 768.00 KiB ...
pacman -Qiはインストールされたパッケージに関する情報を提供しますが、pacman -Siは、パッケージに関する最後に取得された情報をデータベースに照会します。
pacman -Si linux Repository : core Name : linux Version : 3.11.6-1 Description : The Linux kernel and modules Architecture : x86_64 URL : http://www.kernel.org/ Licenses : GPL2 Groups : base Provides : kernel26=3.11.6 Depends On : coreutils linux-firmware kmod mkinitcpio>=0.7 Optional Deps : crda: to set the correct wireless channels of your country Conflicts With : kernel26 Replaces : kernel26 Download Size : 47855.98 KiB Installed Size : 64493.00 KiB Packager : Thomas Bächler <[email protected]> Build Date : Fri 18 Oct 2013 05:25:12 PM EDT Validated By : MD5 Sum SHA256 Sum Signature
pacman -Ql パッケージに関連付けられているすべてのファイルを一覧表示します。
pacman -Ql vi vi /usr/ vi /usr/bin/ vi /usr/bin/edit vi /usr/bin/ex vi /usr/bin/vedit vi /usr/bin/vi ...
各行のパッケージ名により、スクリプトでの出力の使用がより困難になる可能性があります。 pacman -Qlq(すなわち 「pacmanquerylist、quiet」)はパッケージ名を出力しません。
pacman -Qlq vi /usr/ /usr/bin/ /usr/bin/edit /usr/bin/ex /usr/bin/vedit /usr/bin/vi ...
pacman-Qlqを使用できます | grep binを使用して、binフォルダーにあるそのパッケージ内のすべてのファイル(したがって、実行可能ファイルである可能性が高い)を検索します。 これは、パッケージに関連付けられているコマンドがパッケージ名と異なる場合に便利です。
pacman -Qql pacman | grep bin /usr/bin/ /usr/bin/bacman /usr/bin/checkupdates /usr/bin/cleanupdelta /usr/bin/makepkg /usr/bin/paccache /usr/bin/pacdiff /usr/bin/paclist /usr/bin/paclog-pkglist /usr/bin/pacman /usr/bin/pacman-db-upgrade /usr/bin/pacman-key /usr/bin/pacman-optimize /usr/bin/pacscripts /usr/bin/pacsearch /usr/bin/pacsort /usr/bin/pacsysclean /usr/bin/pactree /usr/bin/pkgdelta /usr/bin/rankmirrors /usr/bin/repo-add /usr/bin/repo-elephant /usr/bin/repo-remove /usr/bin/testdb /usr/bin/testpkg /usr/bin/updpkgsums /usr/bin/vercmp
ストレージ消費
システム上で最も多くのスペースを使用しているパッケージを確認する最も簡単な方法は、pacmanに付属しているpacsyscleanです。
pacsysclean
もう少し複雑なものが必要な場合は、pacgraphユーティリティを使用して、SVGおよびPNG形式の最大のパッケージの依存ワードクラウドを作成できます。
pacgraphはコミュニティリポジトリにあります。
sudo pacman -S pacgraph
pacgraph -cは、pacsyscleanのようにコンソールに出力されます。 パッケージがたくさんある場合、pacsyscleanとは異なり、pacgraphの出力は最大から最小にソートされるため、扱いにくくなる可能性があります。 あなたはそれを頭にパイプして最大のパッケージを見ることができます。
pacgraph -c | head Autodetected Arch. Loading package info Total size: 730MB 114MB linux 103MB libtool 84MB pacgraph 40MB imagemagick 25784kB ppl 22264kB nmap 17295kB pkgfile
私がテストしたArchLinuxドロップレットでは、この出力の前にいくつかのエラーが発生しました。 エラーを削除するには、デフォルトの「C」からロケール設定を修正する必要があります。
export LANG=en_US.UTF-8
引数なしで実行すると、pacgraphはSVGと、可能であればPNGファイルを生成します。 仮想サーバーでファイル共有システムを設定していない場合、pacgraphによって生成された画像にアクセスする最も簡単な方法は、セキュアコピーを使用することです。
scp <user>@<addr>:<remote_path> <local_path>
注:pacgraphは、imagemagickとlibpngのインストール後にPNGファイルをレンダリングすると主張しますが、この記事の執筆時点では、実際には、かなりの数の依存関係があるinkscapeなしでPNGを生成しません。
ダウンロード/インストール
標準パッケージをインストールまたはアップグレードする一般的な方法は、pacman-Sです。
sudo pacman -S <package>
多くの場合、パッケージの名前には同様のパターンがあります。 ブラケットはショートカットとして使用できます。
sudo pacman -S lua-{sec,socket,zlib}
インストールせずに、アーカイブ目的でパッケージをダウンロードしたい場合があります。 pacman -Swは、パッケージをキャッシュフォルダーにダウンロードします。
sudo pacman -Sw <package>
パッケージがダウンロードされている場合、またはURLがわかっている場合は、直接インストールできます。
sudo pacman -U <package_path>
アップグレード
pacmanは、パッケージをリモートリポジトリと「同期」するという考え方を中心に展開しているため、pacman -Sは、パッケージがすでにインストールされている場合はアップグレードします。
Pacmanは、古くなったパッケージを一覧表示できます。
pacman -Qu
残念ながら、リポジトリ内のパッケージのバージョンは表示されないため、各パッケージがどれだけ古くなっているかを知ることはできません。 これが重要な場合は、サードパーティのパッケージマネージャーを調べるか、pacman-Qiとpacman-Siから取得したパッケージバージョンを結び付けるスクリプトを作成することをお勧めします。
正規表現を使用して、pacman-Qiまたはpacman-Siからバージョンを取得できます。
pacman -Qi linux | grep "Version" | sed 's/^Version\s*:\s//' 3.8.4-1
次に、バージョンを並べて表示するスクリプトを作成します。
for i in $(pacman -Qqu) do printf "$i: " printf "$(pacman -Qi "$i" | grep 'Version' | sed 's/^Version\s*:\s//') " echo "$(pacman -Si "$i" | grep 'Version' | sed 's/^Version\s*:\s//')" done
Pacmanは、すべてのパッケージを一度にアップグレードする方法を提供しますが、Archはローリングリリースディストリビューションであるため、お勧めしません。 問題が発生した場合、原因を特定するのに時間がかかる場合があります。
sudo pacman -Syu
ダウングレード
ArchLinuxは非推奨のパッケージを公式に維持していません。 代わりに、パッケージキャッシュやArchRollbackMachineなどの場所に依存する必要があります。
キャッシュ
pacmanでダウンロードされたすべてのパッケージは、/ var / cache / pacman/pkgに保存されます。
ls /var/cache/pacman/pkg | grep linux linux-3.11.6-1-x86_64.pkg.tar.xz linux-3.9.7-1-x86_64.pkg.tar.xz ...
キャッシュ内のパッケージに戻したい場合は、直接インストールしてください。
pacman -U <path_to_cached_file>
アーチロールバックマシン
Arch Rollback Machine は、公式のArchLinuxミラーのスナップショットのコレクションです。 この記事を書いている時点で、4か月前にさかのぼります。 ARMは現在http://seblu.net/a/armでホストされていますが、将来変更される可能性があります。
ARMパッケージは、pacman-Uを使用してリモートでインストールできます 。
pacman -U http://seblu.net/a/arm/2013/08/31/extra/os/x86_64/apache-2.2.25-1-x86_64.pkg.tar.xz
ARMを参照して古いパッケージを探すのは必ずしも便利ではありません。 幸い、これを簡単にするツールがあります。
キャッシュとARMで古いバージョンを検索します。 それらの使用法はあなたが期待するものです。
downgrade <package> downgrader <package>
どちらのツールもAURに含まれているため、ツールをインストールする最も簡単な方法は、yaourtなどのヘルパーを使用することです。
注:ARMは非公式のプロジェクトであり、過去に閉鎖されたため、ARMがダウンしたり、場所が再び変更されたりした場合に備えて、キャッシュをクリアしないことをお勧めします。 独自のARMをロールしたい場合は、githubにNodeJSプロジェクトがあるようです。
除去
パッケージに依存するものがない場合は、パッケージを削除します。 依存関係をインストールしたままにします。
sudo pacman -R <package>
パッケージに依存するものがない場合は、パッケージを削除します。 他に必要のない依存関係を削除します。
sudo pacman -Rs <package>
パッケージを強制的に削除します。 これは、システムからパッケージをワイプし、再インストールだけでは不十分な場合に再インストールするために使用するコマンドです。
sudo pacman -Rdd <package>
非公式パッケージ
Arch Linuxパッケージの大部分は、Archユーザーリポジトリにあります。 AURからパッケージを検索してダウンロードする最良の方法は、ヘルパーツールを使用することです。
AURとヨーグルトツールに関するデジタルオーシャンの記事はすでにあります。