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を使用できます
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とヨーグルトツールに関するデジタルオーシャンの記事はすでにあります。