<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E3%81%BD%E3%82%88%E3%81%9F%E3%82%93%E3%81%B4</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E3%81%BD%E3%82%88%E3%81%9F%E3%82%93%E3%81%B4"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/%E3%81%BD%E3%82%88%E3%81%9F%E3%82%93%E3%81%B4"/>
	<updated>2026-04-12T00:39:38Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Pacman&amp;diff=40623</id>
		<title>Pacman</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Pacman&amp;diff=40623"/>
		<updated>2025-07-31T06:19:57Z</updated>

		<summary type="html">&lt;p&gt;ぽよたんぴ: タイポ: 「シないように」→「しないように」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:Arch プロジェクト]]&lt;br /&gt;
[[Category:パッケージマネージャー]]&lt;br /&gt;
[[de:Pacman]]&lt;br /&gt;
[[en:Pacman]]&lt;br /&gt;
[[es:Pacman]]&lt;br /&gt;
[[fi:Pacman]]&lt;br /&gt;
[[fr:Pacman]]&lt;br /&gt;
[[it:Pacman]]&lt;br /&gt;
[[pl:Pacman]]&lt;br /&gt;
[[pt:Pacman]]&lt;br /&gt;
[[ru:Pacman]]&lt;br /&gt;
[[sv:Pacman]]&lt;br /&gt;
[[zh-hans:Pacman]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|pacman/パッケージの署名}}&lt;br /&gt;
{{Related|pacman/Pacnew と Pacsave}}&lt;br /&gt;
{{Related|pacman/ローカルデータベースの復元}}&lt;br /&gt;
{{Related|pacman/比較表}}&lt;br /&gt;
{{Related|pacman/ヒントとテクニック}}&lt;br /&gt;
{{Related|Arch User Repository}}&lt;br /&gt;
{{Related|パッケージの作成}}&lt;br /&gt;
{{Related|パッケージのダウングレード}}&lt;br /&gt;
{{Related|namcap}}&lt;br /&gt;
{{Related|FAQ#パッケージ管理}}&lt;br /&gt;
{{Related|システムメンテナンス}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://pacman.archlinux.page/ pacman] [[Wikipedia:ja:パッケージ管理システム|パッケージマネージャ]]は [[Arch Linux]] の主要な機能のひとつです。pacman はシンプルなバイナリのパッケージ形式と簡単に利用できる [[Arch build system]] から成っています。pacman のゴールはパッケージ管理を楽にすることであり、[[公式リポジトリ]]にあるパッケージや、ユーザー自身が作成したパッケージを容易に管理することができます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; はマスターサーバーと同期してシステムを最新に保ちます。このサーバー・クライアントモデルによって、シンプルなコマンドだけで必要な依存性を解決してパッケージのダウンロード・インストールをすることができます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; は [[C]] 言語で書かれており、パッケージングに {{man|1|bsdtar}} [[Wikipedia:ja:tar|tar]] フォーマットを使用します。&lt;br /&gt;
&lt;br /&gt;
{{Tip|1={{Pkg|pacman}} パッケージには [[makepkg]] や {{man|8|vercmp}} などのツールが含まれています。[[#Pactree|pactree]] や [[checkupdates]] など、他の有用なツールは {{Pkg|pacman-contrib}} パッケージに含まれています ([https://gitlab.archlinux.org/pacman/pacman/commit/0c99eabd50752310f42ec808c8734a338122ec86 以前]は &#039;&#039;pacman&#039;&#039; パッケージに含まれていました)。ツールの一覧を見るには {{ic|pacman -Ql pacman pacman-contrib {{!}} grep -E &#039;bin/.+&#039;}} を実行してください。}}&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
pacman で何ができるかをちゃんと学びたい場合、{{man|8|pacman}} を参照してください。以下にあるのは pacman でできることのほんの一例です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|他の Linux ディストリビューションを使ったことがある場合、[[Pacman/比較表]]の記事が役に立つでしょう。}}&lt;br /&gt;
&lt;br /&gt;
=== パッケージのインストール ===&lt;br /&gt;
&lt;br /&gt;
パッケージとは、以下を含むアーカイブです:&lt;br /&gt;
&lt;br /&gt;
* アプリケーションの (コンパイルされた) 全ファイル&lt;br /&gt;
* アプリケーションのメタデータ (アプリケーション名、バージョン、依存関係など)&lt;br /&gt;
* &#039;&#039;pacman&#039;&#039; によって使用されるインストールファイル及びディレクティブ&lt;br /&gt;
&lt;br /&gt;
Arch のパッケージマネージャである &#039;&#039;pacman&#039;&#039; は、このようなパッケージをインストール、アップデート、そして削除することができます。プログラムを自分でコンパイルしてインストールする代わりにパッケージを使用することには、様々な利点があります:&lt;br /&gt;
&lt;br /&gt;
* 簡単なアップデート: &#039;&#039;pacman&#039;&#039; は、アップデートが利用可能になるとすぐに既存のパッケージを更新します。&lt;br /&gt;
* 依存関係のチェック: &#039;&#039;pacman&#039;&#039; は依存関係を処理してくれます。あなたがすべきことは、インストールしたいプログラムを指定することだけです。&#039;&#039;pacman&#039;&#039; はそのプログラムと一緒に他の必要なプログラムもインストールします。&lt;br /&gt;
* 綺麗にアンインストール: &#039;&#039;pacman&#039;&#039; は、パッケージに含まれる全ファイルのリストを保持します。これにより、パッケージを削除する際に意図せずファイルが残留することはありません。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* パッケージには、[[PKGBUILD#optdepends|任意の依存パッケージ]]が設定されていることがあります。必ずインストールする必要はありませんが、インストールすることで機能が追加されます。&#039;&#039;pacman&#039;&#039; は、パッケージのインストール時に任意の依存パッケージのリストを表示しますが、そのリストは {{ic|pacman.log}} に残りません。[[#パッケージ・データベースに問い合わせる]] コマンドを使うことで、パッケージの任意の依存パッケージを見ることができます。&lt;br /&gt;
* 他のパッケージの (任意の) 依存パッケージとしてパッケージをインストールする場合 (つまり、そのパッケージ自体は必要としていない場合)、{{ic|--asdeps}} オプションを使用することを推奨します。詳しくは [[#インストール理由]] セクションを参照。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|1=Arch でパッケージのインストールをする際に、[[#パッケージのアップグレード|システムのアップグレード]]をせずにパッケージリストを更新することは避けてください (例えば、公式リポジトリで[[#インストール時にパッケージを取得できない|パッケージが見つからなくなった]]時など)。実際の場面でいうと、{{ic|pacman -Sy&#039;&#039;&#039;u&#039;&#039;&#039; &#039;&#039;パッケージ名&#039;&#039;}} の代わりに {{ic|pacman -Sy &#039;&#039;パッケージ名&#039;&#039;}} を実行しては&#039;&#039;&#039;いけない&#039;&#039;&#039;ということです。これを実行すると依存関係に問題が発生する可能性があります。[[システムメンテナンス#部分的なアップグレードはサポートされていません]] や [https://bbs.archlinux.org/viewtopic.php?id=89328 BBS#89328] を参照。}}&lt;br /&gt;
&lt;br /&gt;
==== 特定のパッケージのインストール ====&lt;br /&gt;
&lt;br /&gt;
ひとつ、あるいは複数のパッケージを、依存パッケージも含めてインストールするには、以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S &#039;&#039;パッケージ名1&#039;&#039; &#039;&#039;パッケージ名2&#039;&#039; ...&lt;br /&gt;
&lt;br /&gt;
正規表現を使ってパッケージをインストールするには ([https://bbs.archlinux.org/viewtopic.php?id=7179 このフォーラムスレッド] を参照):&lt;br /&gt;
&lt;br /&gt;
 # pacman -S $(pacman -Ssq &#039;&#039;パッケージのパターン&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
別々のリポジトリ (例: &#039;&#039;extra&#039;&#039; と &#039;&#039;testing&#039;&#039;) 内に同一のパッケージの複数のバージョンが存在していることがあります。この場合、パッケージ名の前にリポジトリ名を明示する必要があります。例えば &#039;&#039;extra&#039;&#039; リポジトリ内のバージョンをインストールするには:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S extra/&#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
名前に類似パターンが存在するパッケージをインストールしたい場合、波括弧を使ってパッケージ名を展開することができます。例えば:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S plasma-{desktop,mediacenter,nm}&lt;br /&gt;
&lt;br /&gt;
必要に応じて更に複雑なパターンを指定することもできます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S plasma-{workspace{,-wallpapers},pa}&lt;br /&gt;
&lt;br /&gt;
===== 仮想パッケージ =====&lt;br /&gt;
&lt;br /&gt;
仮想パッケージとは、それ自体は存在していないが、1つ以上のパッケージによって [[PKGBUILD#provides|provides (提供)]] 指定されている特殊なパッケージです。仮想パッケージが存在していることにより、あるパッケージの依存関係として複数の候補が存在している場合に、パッケージは特定のパッケージを依存関係として指定する必要がなくなります。仮想パッケージはその名前を使ってインストールすることはできません。仮想パッケージを &#039;&#039;provide (提供)&#039;&#039; するパッケージをインストールすると、その仮想パッケージがシステムにインストールされたことになります。例としては [[D-Bus#実装|dbus-units]] パッケージがあります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|複数の候補が存在する場合、候補のリストは、{{ic|pacman.conf}} 内に現れる[[リポジトリ]]の順番でソートされ、そして同一のリポジトリ内にも複数の候補が存在する場合はさらにアルファベット順にソートされます。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージグループのインストール ====&lt;br /&gt;
&lt;br /&gt;
[[パッケージグループ]]に属しているパッケージをすべて同時にインストールすることができます。例えば:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S gnome&lt;br /&gt;
&lt;br /&gt;
を実行すると {{Grp|gnome}} グループからインストールしたいパッケージを選択するように表示されます。&lt;br /&gt;
&lt;br /&gt;
パッケージグループには大量のパッケージが含まれており、しばしばインストールしたいパッケージはそのうちの少しだけということがあるかもしれません。インストールするパッケージの番号を全て入力するという方法でもよいですが、以下のような構文を使うことで簡単にパッケージを選択することが可能です:&lt;br /&gt;
&lt;br /&gt;
 Enter a selection (default=all): 1-10 15&lt;br /&gt;
&lt;br /&gt;
以上で1番から10番までと15番のパッケージがインストールされます。&lt;br /&gt;
&lt;br /&gt;
 Enter a selection (default=all): ^5-8 ^2&lt;br /&gt;
&lt;br /&gt;
以上で5番から8番までと2番のパッケージ以外の全てのパッケージをインストールします。&lt;br /&gt;
&lt;br /&gt;
どのパッケージが gnome グループに属しているか見るには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Sg gnome&lt;br /&gt;
&lt;br /&gt;
どのようなパッケージグループがあるかは https://www.archlinux.jp/groups/ を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Note|グループの中にインストール済みのパッケージがある場合でも、グループにあわせて再インストールされます。{{ic|--needed}} オプションを使うことで無視できます。}}&lt;br /&gt;
&lt;br /&gt;
=== パッケージの削除 ===&lt;br /&gt;
&lt;br /&gt;
依存パッケージをすべて残したままパッケージを削除するには:&lt;br /&gt;
&lt;br /&gt;
 # pacman -R &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
削除したいパッケージと、そのパッケージだけが必要としている依存パッケージを一緒に削除するには:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rs &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Warning|グループ (例えば &#039;&#039;gnome&#039;&#039;) を削除する場合、このコマンドはそのグループ内のパッケージのインストール理由を無視します。グループを指定した場合、そのグループ内のパッケージを分けて指定したかのように振る舞うからです。依存関係のインストール理由は依然として考慮されます。}}&lt;br /&gt;
&lt;br /&gt;
上記のコマンドは、必要とされているパッケージを含んでいるグループを削除する際に、実行を拒否する場合があります。そのような場合は、以下を試してください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rsu &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
削除したいパッケージと、そのパッケージの依存パッケージ、さらに削除したいパッケージに依存しているパッケージを削除するには:&lt;br /&gt;
&lt;br /&gt;
{{Warning|この操作は再帰的です。潜在的に必要とされているパッケージも削除してしまう可能性があるので、注意して使用しなければなりません。}}&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rsc &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
他のパッケージによって必要とされているパッケージを、必要としているパッケージを削除せずに削除するには:&lt;br /&gt;
&lt;br /&gt;
{{Warning|以下の操作はシステムを破壊する可能性があり、使用は避けるべきです。[[システムメンテナンス#特定の pacman コマンドを避けてください]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rdd &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; は、特定のアプリケーションを削除する際に、重要な設定ファイルを削除せずに &#039;&#039;.pacsave&#039;&#039; 拡張子を付けてバックアップします。これらのバックアップファイルの作成を行わないようにするには、{{ic|-n}} オプションを付けてください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Rn &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;Pacman&#039;&#039; は、アプリケーション自身が作成した設定ファイルを削除しません (例えば、ホームディレクトリ内の &amp;quot;ドットファイル&amp;quot;)。}}&lt;br /&gt;
&lt;br /&gt;
=== パッケージのアップグレード ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|&lt;br /&gt;
* Arch ユーザーは、[[システムメンテナンス#システムのアップグレード]] セクションのガイダンスに従ってシステムを定期的にアップグレードすることが期待されます。以下のコマンドを闇雲に実行するべきではありません。&lt;br /&gt;
* Arch Linux は完全なシステムアップグレードのみをサポートしています。詳細は [[システムメンテナンス#部分的なアップグレードはサポートされていません]] と [[#パッケージのインストール]] を参照してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; はコマンド一つでシステム上の全パッケージをアップデートできます。この処理に掛かる時間は、システムがどれだけ新しいかによります。以下のコマンドは、リポジトリデータベースを同期し、&#039;&#039;かつ&#039;&#039;、システム内のパッケージをアップデートします (ただし、リポジトリに無い&amp;quot;ローカル&amp;quot;のパッケージを除く):&lt;br /&gt;
&lt;br /&gt;
 # pacman -Syu&lt;br /&gt;
&lt;br /&gt;
=== パッケージ・データベースに問い合わせる ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; からローカルデータベースに問い合わせるときは {{ic|-Q}} フラグを、同期データベースに問い合わせるときは {{ic|-S}} フラグを、ファイルデータベースに問い合わせるときは {{ic|-F}} フラグを使います。それぞれのフラグのサブオプションについては {{ic|pacman -Q --help}}、{{ic|pacman -S --help}}、{{ic|pacman -F --help}} を見てください。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; はデータベースからパッケージを検索することができます。パッケージ名と説明の両方を検索するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Ss &#039;&#039;検索ワード1&#039;&#039; &#039;&#039;検索ワード2&#039;&#039; ...&lt;br /&gt;
&lt;br /&gt;
場合によっては、{{Ic|-s}} の組み込みの ERE (拡張正規表現) によって、余計な検索結果が大量に出てきてしまうことがあるでしょう。そのようなときは検索対象をパッケージ名だけに絞ってみてください:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Ss &#039;^vim-&#039;&lt;br /&gt;
&lt;br /&gt;
既にインストール済みのパッケージから検索するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qs &#039;&#039;検索ワード1&#039;&#039; &#039;&#039;検索ワード2&#039;&#039; ...&lt;br /&gt;
&lt;br /&gt;
リモートパッケージからパッケージファイルの名前で検索するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -F &#039;&#039;検索ワード1&#039;&#039; &#039;&#039;検索ワード2&#039;&#039; ...&lt;br /&gt;
&lt;br /&gt;
パッケージ名を指定して詳細な情報を得るには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Si &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ローカルにインストールされているパッケージの詳細な情報を得るには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qi &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|-i}} フラグを2つ付けることで、バックファイルのリストとバックアップファイルの変更状態も同時に表示できます:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qii &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
あるパッケージによってインストールされたファイルの一覧を得るには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Ql &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
リモートパッケージによってインストールされるファイルのリストを得るには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Fl &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
あるパッケージによってインストールされたファイルが存在しているか確認するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qk &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|k}} フラグを2つ付けると、より徹底したチェックが行われます。&lt;br /&gt;
&lt;br /&gt;
データベースを検索して、あるファイルがどのパッケージに属しているかを調べるには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qo &#039;&#039;/パス/ファイル名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
あるファイルがどのリモートパッケージに属しているかデータベースに問い合わせるには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -F &#039;&#039;/パス/ファイル名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
他のパッケージに必要とされていないパッケージ (孤児) の一覧を得るには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qdt&lt;br /&gt;
&lt;br /&gt;
明示的にインストールしたパッケージで、依存関係として必要とされていないパッケージを全て表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Qet&lt;br /&gt;
&lt;br /&gt;
その他の例については [[pacman/ヒントとテクニック]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== Pactree ====&lt;br /&gt;
&lt;br /&gt;
{{Note|{{man|8|pactree}} は {{Pkg|pacman}} パッケージの一部ではなくなりました。代わりに、{{Pkg|pacman-contrib}} でインストールできます。}}&lt;br /&gt;
&lt;br /&gt;
あるパッケージの依存関係ツリー (dependency tree、つまり、そのパッケージ&#039;&#039;&#039;が&#039;&#039;&#039;必要としているパッケージの木) を表示するには:&lt;br /&gt;
&lt;br /&gt;
 $ pactree &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
あるパッケージの被依存ツリー (dependant tree、つまり、そのパッケージ&#039;&#039;&#039;を&#039;&#039;&#039;必要としているパッケージの木) を表示するには、逆フラグ {{ic|-r}} を &#039;&#039;pactree&#039;&#039; に渡てください。&lt;br /&gt;
&lt;br /&gt;
==== データベースの構造 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacman&#039;&#039; データベースは通常、{{ic|/var/lib/pacman/sync}} にあります。{{ic|/etc/pacman.conf}} で指定された各リポジトリに対して、対応するデータベースファイルがこのディレクトリ内に存在します。データベースファイルは、パッケージごとに 1 つのディレクトリを含む gzip 圧縮された tar アーカイブです。たとえば、{{Pkg|which}} パッケージの場合は次のようになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ tree which-2.21-5|&lt;br /&gt;
which-2.21-5&lt;br /&gt;
{{!}}-- desc&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|desc}} ファイルには、パッケージの説明、依存関係、ファイルサイズ、MD5 ハッシュなどのメタデータが含まれています。&lt;br /&gt;
&lt;br /&gt;
=== パッケージキャッシュの削除 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; は、ダウンロードしたファイルを {{ic|/var/cache/pacman/pkg/}} に保存しますが、これらは古くなってもアンインストールされても自動的に削除されません。これにはいくつかの利点があります:&lt;br /&gt;
&lt;br /&gt;
# パッケージを[[ダウングレード]]する際に、他の方法 ([[Arch Linux Archive]] など) によって以前のバージョンを入手する必要がない。&lt;br /&gt;
# アンインストールされたパッケージをキャッシュディレクトリから簡単に直接再インストールでき、リポジトリから新しくダウンロードする必要がない。&lt;br /&gt;
&lt;br /&gt;
しかし、ディレクトリのサイズが大きくなりすぎないようにするために、定期的にキャッシュを手動でクリーンアップする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|pacman-contrib}} パッケージで提供されている {{man|8|paccache}} スクリプトは、インストール済みパッケージとアンインストール済みパッケージのキャッシュ済みバージョンを、最も新しい3つを残して全て削除します (オプションを何も指定しなかった場合):&lt;br /&gt;
&lt;br /&gt;
 # paccache -r&lt;br /&gt;
&lt;br /&gt;
{{ic|paccache.timer}} を[[有効化]]し[[起動]]すれば、週に1度、未使用のパッケージキャッシュを削除してくれます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|1=&#039;&#039;pacman&#039;&#039; のトランザクションの度にこの操作を自動で実行する[[#フック|フック]]を作成することもできます。フックを導入する {{AUR|paccache-hook}} を[[インストール]]することもできます。[https://bbs.archlinux.org/viewtopic.php?pid=1694743#p1694743 フックの例]もあります。}}&lt;br /&gt;
&lt;br /&gt;
何個の新しいバージョンのキャッシュを保持するかを指定することも可能です。最も新しいバージョン1つだけを保持するには:&lt;br /&gt;
&lt;br /&gt;
 # paccache -rk1&lt;br /&gt;
&lt;br /&gt;
{{ic|-u}}/{{ic|--uninstalled}} スイッチを加えれば、アンインストールされたパッケージに対象を絞ることもできます。例えば、アンインストールされたパッケージのキャッシュを全て削除するには:&lt;br /&gt;
&lt;br /&gt;
 # paccache -ruk0&lt;br /&gt;
&lt;br /&gt;
その他のオプションは {{ic|paccache -h}} を見てください。&lt;br /&gt;
&lt;br /&gt;
また、&#039;&#039;Pacman&#039;&#039; にも、パッケージキャッシュと、{{ic|/etc/pacman.conf}} 設定ファイルにもはや存在しないリポジトリの残留データベースファイルをクリーンアップする組み込みコマンドが存在します。しかし、&#039;&#039;pacman&#039;&#039; では、パッケージキャッシュのバージョンをいくつ残すか指定することができないため、&#039;&#039;paccache&#039;&#039; のデフォルトオプションよりも強引です。&lt;br /&gt;
&lt;br /&gt;
現在インストールされていないパッケージのキャッシュと、未使用の同期データベースをを全て削除するには:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Sc&lt;br /&gt;
&lt;br /&gt;
全てのキャッシュファイルを削除するには、{{ic|c}} スイッチを2度使用してください。これは最も強引なアプローチであり、キャッシュディレクトリには何も残りません:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Scc&lt;br /&gt;
&lt;br /&gt;
{{Warning|ディスクの空き容量がどうしても必要でない限り、インストール済みパッケージとアンインストール済みパッケージのキャッシュを全て削除することは避けるべきです。さもないと、パッケージをダウングレードしたり再インストールしたりするためにファイルを再ダウンロードしなければならなくなってしまいます。}}&lt;br /&gt;
&lt;br /&gt;
さらに、キャッシュをクリーンアップするツールとして {{AUR|pkgcacheclean}} と {{AUR|pacleaner}} もあります。&lt;br /&gt;
&lt;br /&gt;
=== その他のコマンド ===&lt;br /&gt;
&lt;br /&gt;
パッケージをダウンロードするが、インストールはしない:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Sw &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
リモートリポジトリ以外の&#039;ローカル&#039;のパッケージをインストールする (例えば、[[AUR]] のパッケージ):&lt;br /&gt;
&lt;br /&gt;
 # pacman -U &#039;&#039;/path/to/package/package_name-version.pkg.tar.zst&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ローカルパッケージのコピーを &#039;&#039;pacman&#039;&#039; のキャッシュに保持するには:&lt;br /&gt;
&lt;br /&gt;
 # pacman -U file:///&#039;&#039;path/to/package/package_name-version.pkg.tar.zst&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;pacman&#039;&#039; の設定ファイルに記述されているリポジトリ以外の) &#039;リモート&#039;パッケージをインストールする:&lt;br /&gt;
&lt;br /&gt;
 # pacman -U &#039;&#039;&amp;lt;nowiki&amp;gt;http://www.example.com/repo/example.pkg.tar.zst&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== ドライラン ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; は&#039;&#039;&#039;常に&#039;&#039;&#039;、インストールされるパッケージと削除されるパッケージを一覧表示して、操作を行う前にユーザに許可を求めます。&lt;br /&gt;
&lt;br /&gt;
{{ic|--print}} (短いバージョンは {{ic|-p}}) を使用することで、{{ic|-S}}、{{ic|-U}}、{{ic|-R}} のアクションを行わずに、パッケージの一覧を処理可能な形式で表示できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|--print-format}} を追加すれば、このリストを様々な形にフォーマットできます。例えば、{{ic|--print-format %n}} は、パッケージのバージョン無しでパッケージの一覧を表示します。&lt;br /&gt;
&lt;br /&gt;
=== インストール理由 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacman&#039;&#039; データベースでは、インストールしたパッケージはインストール理由によって2つのグループに分別されます:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;明示的にインストール&#039;&#039;&#039;: &#039;&#039;pacman&#039;&#039; の {{ic|-S}} や {{ic|-U}} コマンドによって文字通り指定されたパッケージ。&lt;br /&gt;
*&#039;&#039;&#039;依存パッケージ&#039;&#039;&#039;: &#039;&#039;pacman&#039;&#039; のインストールコマンドにパッケージの名前は指定されず、明示的にインストールした他のパッケージから[[PKGBUILD#依存関係|必要]]とされたためにインストールされたパッケージ。&lt;br /&gt;
&lt;br /&gt;
パッケージのインストール時、以下のようにすることでインストール理由を&#039;&#039;依存パッケージ&#039;&#039;に強制的に変えることができます:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S --asdeps &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
明示的にインストールしたパッケージが、必須でない機能のための[[optdepends|任意の依存パッケージ]]を提供している場合があります。大抵、このコマンドはそのようなパッケージをインストールするために使用されます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|任意の依存パッケージを {{ic|--asdeps}} でインストールすると、[[pacman/ヒントとテクニック#使用していないパッケージ (孤立したパッケージ) の削除|孤立したパッケージを削除]]するときに &#039;&#039;pacman&#039;&#039; によって任意の依存パッケージも削除されるようになります。}}&lt;br /&gt;
&lt;br /&gt;
パッケージの&#039;&#039;&#039;再&#039;&#039;&#039;インストールを行っても、デフォルトではインストール理由は変更されません。&lt;br /&gt;
&lt;br /&gt;
明示的にインストールしたパッケージのリストは {{ic|pacman -Qe}} で表示でき、依存パッケージのリストは {{ic|pacman -Qd}} で表示できます。&lt;br /&gt;
&lt;br /&gt;
既にインストールしたパッケージのインストール理由を変更したい場合、以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -D --asdeps &#039;&#039;パッケージ名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use {{ic|--asexplicit}} to do the opposite operation.&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|pacman -Syu &#039;&#039;パッケージ名&#039;&#039; --asdeps}} のように、アップグレードをするときに {{ic|--asdeps}} や {{ic|--asexplicit}} オプションを使用するのは推奨されません。インストールされるパッケージだけでなく、アップグレードされるパッケージのインストール理由まで変更されてしまうためです。}}&lt;br /&gt;
&lt;br /&gt;
=== 特定のファイルが含まれているパッケージを検索 ===&lt;br /&gt;
&lt;br /&gt;
ファイルデータベースを同期してください:&lt;br /&gt;
&lt;br /&gt;
 # pacman -Fy&lt;br /&gt;
&lt;br /&gt;
ファイルが含まれているパッケージを検索するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ pacman -F pacman|&lt;br /&gt;
core/pacman 5.2.1-1 (base base-devel) [installed]&lt;br /&gt;
    usr/bin/pacman&lt;br /&gt;
    usr/share/bash-completion/completions/pacman&lt;br /&gt;
extra/xscreensaver 5.43-1&lt;br /&gt;
    usr/lib/xscreensaver/pacman&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|pacman-filesdb-refresh.timer}} ({{Pkg|pacman-contrib}} パッケージに同梱されています) を[[起動/有効化]]すれば、&#039;&#039;pacman&#039;&#039; ファイルデータベースを週ごとにリフレッシュできます。}}&lt;br /&gt;
&lt;br /&gt;
高度な使い方をしたい場合、全てのファイルと関連するパッケージのデータベースを使用する [[pkgfile]] をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
=== パッケージのインストール/アップグレード/アンインストール時に起こること ===&lt;br /&gt;
&lt;br /&gt;
成功時のトランザクションは、5つのステップと、トランザクション前と後のフックで構成されます:&lt;br /&gt;
&lt;br /&gt;
# データベースがロックされていない場合、トランザクションを初期化する。&lt;br /&gt;
# トランザクション中に追加/削除すべきパッケージを選択する。&lt;br /&gt;
# 同期データベース、パッケージ、及びパッケージ間の依存関係のサニティチェックを行い、コマンドラインフラグに基づいてトランザクションの準備をする。&lt;br /&gt;
# トランザクションを実行する:&lt;br /&gt;
## 必要に応じてパッケージをダウンロードする ({{ic|_alpm_sync_load}})。&lt;br /&gt;
## &#039;&#039;pacman&#039;&#039; の既存の {{ic|PreTransaction}} フックが適用される場合、それらのフックを実行する。&lt;br /&gt;
## 最終的に置き換えられるパッケージ、衝突するパッケージ、明示的に削除するように指定されたパッケージを削除する。&lt;br /&gt;
## 追加するべきパッケージが存在する場合、各パッケージに対して以下を実行する:&lt;br /&gt;
### パッケージにインストールスクリプトが存在する場合、そのスクリプトの {{ic|pre_install}} 関数を実行する (アップグレードする場合は {{ic|pre_upgrade}} が、削除される場合は {{ic|pre_remove}} が代わりに実行されます)。&lt;br /&gt;
### 以前のバージョンのパッケージのファイルを全て削除する (パッケージをアップグレードまたは削除する場合)。ただし、パッケージによって設定ファイルであると指定されたファイルに関しては、削除しない ([[pacman/Pacnew と Pacsave]] を参照)。&lt;br /&gt;
### パッケージを解凍し、含まれているファイルをファイルシステムに保存する (パッケージをインストールまたはアップグレードする場合)。新しいパッケージのファイルが、ファイルシステム上の手動で変更された設定ファイル (前のステップを参照) を上書きしてしまう場合、パッケージ側のファイルに別の名前 (&#039;&#039;.pacnew&#039;&#039;) を付けて保存する。&lt;br /&gt;
### パッケージにインストールスクリプトが存在する場合、{{ic|post_install}} 関数を実行する (アップグレードする場合は {{ic|post_upgrade}} が、削除される場合は {{ic|post_remove}} が代わりに実行されます)。&lt;br /&gt;
## トランザクションの終わりの時点で存在している {{ic|PostTransaction}} フックが適用される場合、それらのフックを実行する。&lt;br /&gt;
# トランザクション及びトランザクションリソース (つまり、データベースロック) を解放する。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Pacman&#039;&#039; の設定は {{ic|/etc/pacman.conf}} に記述します。ここで、pacman がどのように動作するかを設定することができます。この設定ファイルに関するより詳しい情報は {{man|5|pacman.conf}} にあります。&lt;br /&gt;
&lt;br /&gt;
=== 全般設定 ===&lt;br /&gt;
&lt;br /&gt;
全般的な設定は {{ic|[options]}} セクションにあります。ここで設定できる項目については {{man|5|pacman.conf}} を読むか、デフォルトの {{ic|pacman.conf}} ファイルを見てください。&lt;br /&gt;
&lt;br /&gt;
==== アップデートする前にバージョンを比較 ====&lt;br /&gt;
&lt;br /&gt;
利用可能なパッケージの新旧のバージョンを確認したい場合、{{ic|/etc/pacman.conf}} の &amp;quot;VerbosePkgLists&amp;quot; という行をアンコメントしてください。{{ic|pacman -Syu}} の出力が以下のようになります:&lt;br /&gt;
&lt;br /&gt;
 パッケージ (6)          古いバージョン  新しいバージョン  最終的な変化 ダウンロード容量&lt;br /&gt;
 &lt;br /&gt;
 extra/libmariadbclient  10.1.9-4        10.1.10-1             0.03 MiB         4.35 MiB&lt;br /&gt;
 extra/libpng            1.6.19-1        1.6.20-1              0.00 MiB         0.23 MiB&lt;br /&gt;
 extra/mariadb           10.1.9-4        10.1.10-1             0.26 MiB        13.80 MiB&lt;br /&gt;
&lt;br /&gt;
==== 並列ダウンロードを有効にする ====&lt;br /&gt;
&lt;br /&gt;
並列にダウンロードするパッケージの数は、{{ic|/etc/pacman.conf}} の {{ic|[options]}} セクション内の {{ic|ParallelDownloads}} オプションで設定できます。このオプションが設定されていない場合、パッケージは1つずつダウンロードされます。&lt;br /&gt;
&lt;br /&gt;
==== アップグレードさせないパッケージを設定 ====&lt;br /&gt;
&lt;br /&gt;
{{Warning|[[部分的なアップグレード]]はサポートされていないので、パッケージのアップグレードをスキップする際は気をつけてください。。}}&lt;br /&gt;
&lt;br /&gt;
システムを[[#パッケージのアップグレード|アップグレード]]する際に特定のパッケージをアップグレードしないようにするには、{{ic|[options]}} セクションに以下の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 IgnorePkg=linux&lt;br /&gt;
&lt;br /&gt;
複数のパッケージを指定する場合は、スペースで区切るか、{{ic|IgnorePkg}} 行を追加してください。また、[[Wikipedia:ja:グロブ|グロブ]]パターンも使用できます。一度に限ってパッケージをアップグレードしないようにするには、コマンドラインで {{ic|--ignore}} オプションを使用してください (複数のパッケージを指定する場合は、コンマで区切ってください)。&lt;br /&gt;
&lt;br /&gt;
{{ic|pacman -S}} を使えば、依然として対象のパッケージをアップグレードすることが可能です。この場合、&#039;&#039;pacman&#039;&#039; はパッケージが {{ic|IgnorePkg}} 文に含まれていることを知らせてくれます。&lt;br /&gt;
&lt;br /&gt;
==== アップグレードさせないパッケージグループを設定 ====&lt;br /&gt;
&lt;br /&gt;
{{Warning|[[部分的なアップグレード]]はサポートされていないので、パッケージグループのアップグレードをスキップする際は気をつけてください。。}}&lt;br /&gt;
&lt;br /&gt;
パッケージの場合と同様に、アップグレードさせないパッケージグループを指定することもできます:&lt;br /&gt;
&lt;br /&gt;
 IgnoreGroup=gnome&lt;br /&gt;
&lt;br /&gt;
==== アップグレードさせないファイルを設定 ====&lt;br /&gt;
&lt;br /&gt;
{{Ic|NoUpgrade}} ディレクティブで指定されたファイルは、パッケージのインストール/アップグレードの際に変更を加えられなくなり、代わりに新しいファイルは &#039;&#039;.pacnew&#039;&#039; 拡張子が付けられてインストールされます。&lt;br /&gt;
&lt;br /&gt;
 NoUpgrade=&#039;&#039;path/to/file&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
以下のようにして複数のファイルを指定することができます:&lt;br /&gt;
&lt;br /&gt;
 NoUpgrade=&#039;&#039;path/to/file1 path/to/file2&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|パスはパッケージアーカイブ内のファイルを示します。なので、一番最初にスラッシュを置かないでください。}}&lt;br /&gt;
&lt;br /&gt;
==== インストールさせないファイルを設定 ====&lt;br /&gt;
&lt;br /&gt;
特定のディレクトリまたはファイルをインストールさせないようにするには、{{Ic|NoExtract}} リストにそのディレクトリを加えてください。例えば、[[systemd]] ユニットをインストールさせないようにするには:&lt;br /&gt;
&lt;br /&gt;
 NoExtract=usr/lib/systemd/system/*&lt;br /&gt;
&lt;br /&gt;
後ろのルールは前のルールを上書きします。また、{{ic|!}} を前に付けることでルールを無効化できます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|Pacman は、&#039;&#039;localepurge&#039;&#039; や &#039;&#039;bleachbit&#039;&#039; によってロケールが削除されたパッケージをアップデートする際に、ロケールが存在しないという警告メッセージを表示します。警告を表示しないようにするには、{{ic|pacman.conf}} の {{ic|CheckSpace}} オプションをコメントアウトしてください。ただし、容量チェックの機能が全てのパッケージで無効化されることに注意してください。}}&lt;br /&gt;
&lt;br /&gt;
==== 複数の設定ファイルを使用 ====&lt;br /&gt;
&lt;br /&gt;
設定ファイルが複数あって (メインの設定と [[testing]] リポジトリを有効にした設定がある場合など)、設定ファイルのオプションを共有したい場合、設定ファイルで {{ic|Include}} オプションを宣言することができます。例:&lt;br /&gt;
&lt;br /&gt;
 Include = &#039;&#039;/path/to/common/settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;/path/to/common/settings&#039;&#039;}} は共有したいオプションが存在するファイルに置き換えてください。&lt;br /&gt;
&lt;br /&gt;
==== フック ====&lt;br /&gt;
&lt;br /&gt;
Pacman は {{ic|/usr/share/libalpm/hooks/}} ディレクトリ内に存在するフックをトランザクションの前後に実行することができます。その他のフックディレクトリを指定したい場合は、{{ic|pacman.conf}} 内で {{ic|HookDir}} オプションを使ってください (デフォルトは {{ic|/etc/pacman.d/hooks}} です)。フックファイルの名前には必ず &#039;&#039;.hook&#039;&#039; を後ろに付ける必要があります。Pacman フックはインタラクティブではありません。&lt;br /&gt;
&lt;br /&gt;
Pacman フックは様々なことに使われています。例えば、{{ic|systemd-sysusers}} と {{ic|systemd-tmpfiles}} を組み合わせてパッケージのインストール時に自動的にシステムユーザーを作成します。例として {{pkg|tomcat8}} パッケージでは {{ic|tomcat8}} という名前のシステムユーザーが必要だと指定されており、特定のディレクトリの所有者がこのユーザーになるように設定されています。&#039;&#039;pacman&#039;&#039; フックの {{ic|systemd-sysusers.hook}} と {{ic|systemd-tmpfiles.hook}} は、{{ic|tomcat8}} にユーザが指定されているファイルと一時ファイルが存在していることを認識し、{{ic|systemd-sysusers}} と {{ic|systemd-tmpfiles}} を実行します。&lt;br /&gt;
&lt;br /&gt;
alpm のフックに関する詳細は {{man|5|alpm-hooks}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== リポジトリとミラー ===&lt;br /&gt;
&lt;br /&gt;
特殊な [[#全般設定|[options]]] セクションを除いて、{{ic|pacman.conf}} 内の他の {{ic|[セクション]}} には、使用するパッケージリポジトリを定義します。&#039;&#039;リポジトリ&#039;&#039;とはパッケージの&#039;&#039;論理的な&#039;&#039;集合であり、それらのパッケージは1つ以上のサーバに&#039;&#039;物理的に&#039;&#039;保存されています。このような理由から、各サーバはリポジトリの&#039;&#039;ミラー&#039;&#039;と呼ばれます。&lt;br /&gt;
&lt;br /&gt;
リポジトリは[[公式リポジトリ|公式]]と[[非公式ユーザーリポジトリ|非公式]]に分けられています。設定ファイル内でのリポジトリの順番は重要です。2つのリポジトリに同じ名前のパッケージが存在する場合、それらのバージョン番号に関わらず、設定ファイル内で最初に来るリポジトリが、その後に来るリポジトリよりも優先されます。リポジトリを使用するには、そのリポジトリを追加した後に、まずシステム全体を[[#パッケージのアップグレード|アップグレード]]する必要があります。&lt;br /&gt;
&lt;br /&gt;
各リポジトリセクションではミラーのリストを定義します: ミラーのリストを直接記述することもできますし、{{ic|Include}} ディレクティブを使って外部の専用のファイルを使うこともできます。例えば、公式リポジトリのミラーは {{ic|/etc/pacman.d/mirrorlist}} からインクルードされます。ミラーの設定については記事 [[ミラー]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== パッケージのキャッシュディレクトリ ====&lt;br /&gt;
&lt;br /&gt;
Pacman は、ダウンロードしたパッケージファイルをキャッシュに保存します。キャッシュは、{{ic|pacman.conf}} の [[#全般設定|[options]]] セクション内の {{ic|CacheDir}} で示されるディレクトリ内です (設定されていない場合、{{ic|/var/cache/pacman/pkg/}} がデフォルトで使用されます)。&lt;br /&gt;
&lt;br /&gt;
キャッシュディレクトリは、(たとえ、インストールされているパッケージの最新のバージョンのみを保持しているとしても) 時間とともに肥大化する場合があります。&lt;br /&gt;
&lt;br /&gt;
キャッシュディレクトリを他のより好都合な場所に移動したい場合は、以下のどれかを行ってください:&lt;br /&gt;
&lt;br /&gt;
* {{ic|pacman.conf}} 内の {{ic|CacheDir}} オプションで新しいディレクトリを設定する。末尾のスラッシュを残しておくことを忘れないでください。&#039;&#039;&#039;これが推奨される方法です&#039;&#039;&#039;。&lt;br /&gt;
* {{ic|/var/cache/pacman/pkg/}} に専用のパーティションや [[Btrfs#サブボリューム|Btrfs サブボリューム]]をマウントする。&lt;br /&gt;
* 選択したディレクトリを {{ic|/var/cache/pacman/pkg/}} でバインドマウントする。&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|/var/cache/pacman/pkg/}} ディレクトリを他の場所への&#039;&#039;&#039;シンボリックリンクにしないでください&#039;&#039;&#039;。Pacman の誤動作の&#039;&#039;&#039;原因になります&#039;&#039;&#039;。特に、pacman が自分自身をアップデートしようとしている場合です。}}&lt;br /&gt;
{{Warning|{{ic|CacheDir}}を/tmp以下に設定する事は、あなたが早さやディスクスペース,ストレージの寿命に敏感な場合にのみ推奨されます。}}&lt;br /&gt;
&lt;br /&gt;
==== パッケージのセキュリティ ====&lt;br /&gt;
&lt;br /&gt;
Pacman はパッケージの署名をサポートしていて、パッケージにセキュリティレイヤーを加えています。デフォルトの設定では {{ic|1=SigLevel = Required DatabaseOptional}} によって全てのリポジトリで全てのパッケージの署名検証が有効にされています。リポジトリ毎に {{ic|SigLevel}} を使うことでこの設定を上書きすることができます。パッケージに署名する方法や署名の検証について詳しくは、[[pacman-key]] を見てください。&lt;br /&gt;
&lt;br /&gt;
==トラブルシューティング==&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Failed to commit transaction (conflicting files)&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
次のエラーが表示される場合: [https://bbs.archlinux.org/viewtopic.php?id=56373]&lt;br /&gt;
&lt;br /&gt;
 エラー: 処理を完了できませんでした (衝突しているファイル)&lt;br /&gt;
 &#039;&#039;package&#039;&#039;: &#039;&#039;/path/to/file&#039;&#039; がファイルシステムに存在しています&lt;br /&gt;
 エラーが発生したため、パッケージは更新されませんでした。&lt;br /&gt;
&lt;br /&gt;
これは、&#039;&#039;pacman&#039;&#039; がファイルの衝突を検出し、仕様によりファイルを上書きしないために発生します。これは仕様によるものであり、欠陥ではありません。&lt;br /&gt;
&lt;br /&gt;
通常、この問題の解決法は自明です (とはいえ、なぜこれらのファイルがそこに存在しているのかを念の為に調べてみるべきでしょう)。まず、他のパッケージがそのファイルを所有していないか調べるのが安全です ({{ic|pacman -Qo &#039;&#039;/path/to/file&#039;&#039;}})。そのファイルが他のパッケージによって所有されている場合、[[バグ報告ガイドライン|バグレポートを提出]]してください。そのファイルが他のパッケージのよって所有されていない場合、&amp;quot;ファイルシステムに存在している&amp;quot;方のファイルの名称を変更し、アップデートのコマンドを再度実行してください。問題がなければ、そのファイルは削除しても良いです。&lt;br /&gt;
&lt;br /&gt;
何らかのプログラムを &#039;&#039;pacman&#039;&#039; を使用せずに (例えば {{ic|make install}} などで) 手動でインストールしている場合、プログラム自体とそのプログラムに属するファイルを全て削除しなければなりません。[[pacman/ヒントとテクニック#どのパッケージにも所有されていないファイルを特定する]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
インストールされたパッケージは、そのパッケージに関するメタデータを含む {{ic|/var/lib/pacman/local/&#039;&#039;package-version&#039;&#039;/files}} ファイルを提供します。このファイルが破損している、空である、または存在しない場合、パッケージの更新時に {{ic|file exists in filesystem}} エラーが発生します。そのようなエラーは通常、1つのパッケージだけが原因です。原因のパッケージに属するファイルの名前を変えて後で削除する代わりに、{{ic|pacman -S --overwrite &#039;&#039;glob&#039;&#039; &#039;&#039;package&#039;&#039;}} を実行して {{ic|&#039;&#039;glob&#039;&#039;}} にマッチするファイルを上書きすることもできます。&lt;br /&gt;
&lt;br /&gt;
{{Warning|通常、{{ic|--overwrite}} スイッチの使用は避けてください。[[システムメンテナンス#特定の pacman コマンドを避けてください]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Failed to commit transaction (invalid or corrupted package)&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
{{ic|/var/cache/pacman/pkg/}} から &#039;&#039;.part&#039;&#039; ファイル (部分的にダウンロードされたパッケージ) を探し、そのファイルを削除してください (これは、{{ic|pacman.conf}} でカスタムの {{ic|XferCommand}} を使用した場合に起こりやすいです):&lt;br /&gt;
&lt;br /&gt;
 # find /var/cache/pacman/pkg/ -iname &amp;quot;*.part&amp;quot; -delete&lt;br /&gt;
&lt;br /&gt;
また、&#039;&#039;archlinux-keyring&#039;&#039; が古く、&#039;&#039;pacman&#039;&#039; が署名を検証できない場合にも、このエラーが発生することがあります。この問題を解決方法と防止方法は [[pacman/パッケージの署名#システムの定期的な更新]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Failed to init transaction (unable to lock database)&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacman&#039;&#039; がパッケージデータベースを変更する際に (パッケージのインストール時など)、&#039;&#039;pacman&#039;&#039; はロックファイル {{ic|/var/lib/pacman/db.lck}} を作成します。これにより、複数の &#039;&#039;pacman&#039;&#039; インスタンスが同時にパッケージデータベースを変更してしまうことを防ぎます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacman&#039;&#039; がデータベースの変更中に中断されてしまった場合、古いロックファイルが残ってしまう可能性があります。&#039;&#039;pacman&#039;&#039; インスタンスが実行中でないことが確実である場合は、ロックファイルを削除してください:&lt;br /&gt;
&lt;br /&gt;
 # rm /var/lib/pacman/db.lck&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|fuser /var/lib/pacman/db.lck}} を root として実行すれば、ロックファイルを使用しているプロセスが存在するか調べることができます。}}&lt;br /&gt;
&lt;br /&gt;
=== インストール時にパッケージを取得できない ===&lt;br /&gt;
&lt;br /&gt;
具体的には次のようなエラーです: {{ic|Not found in sync db}}、{{ic|対象が見つかりませんでした}}、{{ic|ファイルの取得に失敗しました}}。&lt;br /&gt;
&lt;br /&gt;
まず、パッケージが実際に存在することを確認してください。パッケージが存在することが確実であるならば、パッケージデータベースが古いのかもしれません。{{ic|pacman -Syu}} を実行して、パッケージデータベースを更新してシステムをアップグレードしてみてください。また、[[ミラー]]が最新であり、[[#リポジトリとミラー|リポジトリ]]が正しく設定されていることも確認してください。&lt;br /&gt;
&lt;br /&gt;
また、インストールしたいパッケージが含まれているリポジトリがシステムで有効化されていない可能性もあります。例えば、パッケージが [[multilib]] リポジトリにあるが、{{ic|pacman.conf}} で &#039;&#039;multilib&#039;&#039; が有効化されていない場合、このエラーが発生します。&lt;br /&gt;
&lt;br /&gt;
[[FAQ#公式リポジトリにある共用ライブラリはそれぞれどうして一つのバージョンしか用意されてないんですか？]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== アップグレードの中断によって起動できなくなったシステムを修復する ===&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|これには複数の潜在的な問題があります。[[:en:Talk:pacman#More details in pacman crashes during an update]] を参照。}}&lt;br /&gt;
&lt;br /&gt;
電源断やカーネルパニック、ハードウェア障害によって、アップデートが中断されてしまうことがあります。ほとんどの場合、システムが大きなダメージを負うことはありませんが、起動できなくなってしまうことはあります。&lt;br /&gt;
&lt;br /&gt;
# [[USB インストールメディア]] を用意して、それを起動してください。&lt;br /&gt;
# ルートファイルシステムを[[マウント]]してください。&lt;br /&gt;
# マウントしたルートファイルシステムに {{ic|arch-chroot}} してください。&lt;br /&gt;
# 次に、アップデートを完全にやり直します。{{ic|/var/log/pacman.log}} を確認し、中断されたトランザクション中にアップグレードされていたパッケージ&#039;&#039;全ての&#039;&#039;リストを {{ic|pacman -S}} に渡して、再インストールを許可してください。例:&lt;br /&gt;
&lt;br /&gt;
 # pacman -S linux linux-headers systemd systemd-libs systemd-sysvcompat firefox texlive-basic texlive-fontsextra texlive-latex texlive-latexextra texlive-latexrecommended texlive-pictures&lt;br /&gt;
&lt;br /&gt;
アップグレードを&#039;&#039;完全に&#039;&#039;やり直すのは、適切なスクリプトレットとフックが実行されるようにするために必要だからです。&lt;br /&gt;
&lt;br /&gt;
=== アップグレード中に pacman がクラッシュしてしまった ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacman&#039;&#039; が &amp;quot;database write&amp;quot; (データベース書き込み) エラーが発生してクラッシュし、その後、パッケージのアンインストール/再インストール/アップグレードができなくなってしまった場合、以下を行ってください:&lt;br /&gt;
&lt;br /&gt;
# Arch Linux の [[USB インストールメディア]]を起動してください。システム上の &#039;&#039;pacman&#039;&#039; と同じバージョンかより新しいものを使うために、最近のメディアを使うことが望ましいです。&lt;br /&gt;
# システムのルートファイルシステムをマウントしてください (例えば、{{ic|mount /dev/sdaX /mnt}} を root として実行してください)。そして、{{ic|df -h}} を実行してファイルシステムに十分な空き領域が存在することを確認してください。&lt;br /&gt;
# ファイルシステム proc、sys、dev もマウントしてください: {{ic|mount -t proc proc /mnt/proc; mount --rbind /sys /mnt/sys; mount --rbind /dev /mnt/dev}}&lt;br /&gt;
# システムにおいてデータベースの場所とディレクトリの場所がデフォルトである場合、{{ic|1=pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -Syu}} を root として実行すればシステムの &#039;&#039;pacman&#039;&#039; データベースを更新してシステムをアップグレードすることができます。&lt;br /&gt;
#* アップデート/アップグレードができない場合、[[pacman/ヒントとテクニック#全てのパッケージの再インストール]] を参照してください。&lt;br /&gt;
# アップグレードしたら、アップグレードされていない壊れているパッケージがないかチェックしてください: {{ic|find /mnt/usr/lib -size 0}}&lt;br /&gt;
# そのようなパッケージが依然として存在する場合は、そのパッケージを再インストールしてください: {{ic|1=pacman --root /mnt --cachedir=/mnt/var/cache/pacman/pkg -S &#039;&#039;package&#039;&#039;}}。&lt;br /&gt;
&lt;br /&gt;
==== pacman: command not found ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/var/cache/pacman/pkg}} がシンボリックリンクである場合、&#039;&#039;pacman&#039;&#039; は自己アップデート時に同じディレクトリを作成しようとするため、このシンボリックリンクは削除されます。これにより、アップデートが失敗します。その結果、{{ic|/usr/bin/pacman}} と {{Pkg|pacman}} パッケージに含まれる他のコンテンツが消えてしまいます (訳注: [[#パッケージのインストール/アップグレード/アンインストール時に起こること]] の 4.2 を参照)。&lt;br /&gt;
&lt;br /&gt;
{{ic|/var/cache/pacman/pkg}} は &#039;&#039;pacman&#039;&#039; によって管理されているため、シンボリックリンクにしないでください。代わりに {{ic|CacheDir}} オプションを使うか、このディレクトリをバインドマウントしてください ([[#パッケージのキャッシュディレクトリ]] を参照)。&lt;br /&gt;
&lt;br /&gt;
この問題が既に発生していて、システムが壊れてしまっている場合、&#039;&#039;pacman&#039;&#039; パッケージに含まれる {{ic|/usr}} 内のコンテンツを手動で展開して &#039;&#039;pacman&#039;&#039; を復元し、その後、適切に &#039;&#039;pacman&#039;&#039; を再インストールしてください。詳細は {{Bug|73306}} や[https://bbs.archlinux.org/viewtopic.php?id=241213 関連するフォーラムのスレッド]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Pacman の手動再インストール ===&lt;br /&gt;
&lt;br /&gt;
==== pacman-static を使う ====&lt;br /&gt;
&lt;br /&gt;
{{AUR|pacman-static}} は &#039;&#039;pacman&#039;&#039; を静的にコンパイルしたものなので、システム上のライブラリが機能していなくても実行できます。これは、[[部分的なアップグレード]]によって &#039;&#039;pacman&#039;&#039; が実行できなくなってしまった場合にも便利です。&lt;br /&gt;
&lt;br /&gt;
{{AUR|pacman-static}} パッケージのページにある固定コメントと PKGBUILD には、バイナリを直接ダウンロードする方法が記されています。&#039;&#039;pacman&#039;&#039; を再インストールしたり、部分的なアップグレードが起こった際にシステム全体をアップグレードしたりする際にこの方法が使えます。&lt;br /&gt;
&lt;br /&gt;
==== 外部の pacman を使う ====&lt;br /&gt;
&lt;br /&gt;
{{ic|pacman-static}} でさえも動作しない場合は、外部の &#039;&#039;pacman&#039;&#039; を使用してリカバリできます。最も簡単な方法の一つは、[[archiso]] を使い、{{ic|--sysroot}} か {{ic|--root}} で、操作を行うシステム上のマウントポイントを指定することです。{{ic|--sysroot}} に必要なファイルシステムをマウントする方法については、[[Chroot#chroot を使う]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 手動で抽出する ====&lt;br /&gt;
&lt;br /&gt;
{{Warning|この方法では、一歩間違うとシステムの状態をさらに悪化させてしまいます。[[#アップグレード中に pacman がクラッシュしてしまった]] に書かれてある方法を使えない場合の最後の手段としてのみ、以下を行ってください。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacman&#039;&#039; がどうしようもなく破壊されたとしても、最新のパッケージを手動でダウンロードして適切な場所に展開することで修復が可能です。以下のような手順で行います:&lt;br /&gt;
&lt;br /&gt;
# インストールすべき {{Pkg|pacman}} の依存関係を調べる。&lt;br /&gt;
# それぞれの依存パッケージを[[ミラー]]からダウンロードする。&lt;br /&gt;
# 各パッケージをルートディレクトリに展開する。&lt;br /&gt;
# {{ic|pacman -S --overwrite}} を実行してパッケージデータベースを更新することで、パッケージを再インストールする。&lt;br /&gt;
# システムの完全なアップグレードを行う。&lt;br /&gt;
&lt;br /&gt;
正常に動作している Arch システムがあれば、以下のコマンドで &#039;&#039;pacman&#039;&#039; の依存関係リストを見ることができます:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Q $(pactree -u pacman)&lt;br /&gt;
&lt;br /&gt;
しかし、発生している問題によっては、それらの依存パッケージのうち数個だけをアップデートすれば良い場合もあります。パッケージは以下のようにして展開します:&lt;br /&gt;
&lt;br /&gt;
 # tar -xvpwf &#039;&#039;package.tar.zst&#039;&#039; -C / --exclude .PKGINFO --exclude .INSTALL --exclude .MTREE --exclude .BUILDINFO&lt;br /&gt;
&lt;br /&gt;
注意点として、{{ic|w}} フラグを使用してインタラクティブモードにしてください。非インタラクティブモードでは、重要なファイルが問答無用で上書きされてしまうかもしれないので、非常に危険です。また、パッケージを展開する順番には注意を払ってください (つまり、依存パッケージを先に展開してください)。[https://bbs.archlinux.org/viewtopic.php?id=95007 このフォーラムの投稿]には、&#039;&#039;pacman&#039;&#039; のいくつかの依存関係だけが壊れてしまった場合のこの手順の例が書かれてあります。&lt;br /&gt;
&lt;br /&gt;
=== 再起動後に &amp;quot;Unable to find root device&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
[[カーネル]]の更新中に [[initramfs]] が破損してしまった可能性が高いです (&#039;&#039;pacman&#039;&#039; の {{ic|--overwrite}} オプションを不適切に使用すると、起こることがあります)。この状況から抜け出す方法は2つあります。1つ目は、&#039;&#039;fallback&#039;&#039; エントリです。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&#039;&#039;Fallback&#039;&#039; エントリを削除してしまった場合、ブートローダのパラメータを変えれば &#039;&#039;Fallback&#039;&#039; イメージを起動できます。ブートローダのメニューが表示されたときに、Syslinux の場合は {{ic|Tab}} を、GRUB と systemd-boot の場合は {{ic|e}} を押してエントリの編集画面を開き、&#039;&#039;initramfs&#039;&#039; イメージ名を {{ic|initramfs-linux-fallback.img}} に変更して {{ic|Enter}} か {{ic|b}} (キーは[[ブートローダー]]に依ります) を押してください。}}&lt;br /&gt;
&lt;br /&gt;
システムが起動したら、コンソールかターミナルから以下のコマンドを実行して initramfs イメージを再ビルドしてください (以下のコマンドは標準の {{Pkg|linux}} カーネルの場合です):&lt;br /&gt;
&lt;br /&gt;
 # mkinitcpio -p linux&lt;br /&gt;
&lt;br /&gt;
これでうまく行かなかった場合、最新の Arch リリース (CD/DVD あるいは USB スティック) を起動し、ルートパーティションとブートパーティションをそれぞれ {{ic|/mnt}} と {{ic|/mnt/boot}} に[[マウント]]してください。そして、&#039;&#039;arch-chroot&#039;&#039; を使ってルートパーティションに [[chroot]] してください:&lt;br /&gt;
&lt;br /&gt;
 # arch-chroot /mnt&lt;br /&gt;
 # pacman -Syu mkinitcpio systemd linux&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 最新の Arch リリースを持っていない場合や、Arch 以外の &amp;quot;ライブ&amp;quot; Linux ディストリビューションしかない場合、昔ながらの方法で [[chroot]] することができます。当然、{{ic|arch-chroot}} スクリプトを実行する場合よりも、たくさん入力しなければなりません。&lt;br /&gt;
* &#039;&#039;pacman&#039;&#039; が {{ic|Could not resolve host}} というエラーで失敗してしまう場合、[[ネットワーク設定#接続の確認|インターネット接続を確認してください]]。&lt;br /&gt;
* パッケージを再インストールする必要があるが、arch-chroot や chroot の環境に入れない場合、コマンド {{ic|pacman --sysroot /mnt -Syu foo bar}} を使えば、別のルートパーティションから &#039;&#039;pacman&#039;&#039; を使うことができます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
カーネル ({{Pkg|linux}} パッケージ) を再インストールすれば、{{ic|mkinitcpio -p linux}} が実行されて initramfs イメージが再生成されます。イメージの再生成を別途行う必要はありません。&lt;br /&gt;
&lt;br /&gt;
その後、{{ic|exit}}、{{ic|umount /mnt/{boot,} }}、そして {{ic|reboot}} を実行することが推奨されます。&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Warning: current locale is invalid; using default &amp;quot;C&amp;quot; locale&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
このエラーメッセージが言っている通り、ロケールが正しく設定されていません。[[ロケール]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Pacman がプロキシの設定に従わない ===&lt;br /&gt;
&lt;br /&gt;
関連する環境変数 ({{ic|$http_proxy}}、{{ic|$ftp_proxy}} など) が設定されていることを確認してください。&#039;&#039;pacman&#039;&#039; を [[sudo]] で実行する場合、[[sudo#環境変数|環境変数を pacman に渡す]]ように sudo を設定する必要があります。また、[[GnuPG#鍵サーバー|dirmngr]] の設定ファイル {{ic|/etc/pacman.d/gnupg/dirmngr.conf}} で、鍵をリフレッシュする際にプロキシの設定に従うようにする {{ic|honor-http-proxy}} オプションが存在していることも確認してください。&lt;br /&gt;
&lt;br /&gt;
=== パッケージが明示的にインストールされたか依存関係としてインストールされたかの情報を保持しつつ、全パッケージを再インストールするには? ===&lt;br /&gt;
&lt;br /&gt;
ネイティブなパッケージ (つまり、同期データベース内に存在するパッケージ) を全て再インストールするには、{{ic|pacman -Qnq {{!}} pacman -S -}} か {{ic|pacman -S $(pacman -Qnq)}} を実行してください ({{ic|-S}} オプションはデフォルトでインストール理由を維持します)。&lt;br /&gt;
&lt;br /&gt;
次に、外部のパッケージを全て再インストールする必要があります。これらのパッケージの一覧は {{ic|pacman -Qmq}} で得られます。&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Cannot open shared object file&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
どうやら、以前の &#039;&#039;pacman&#039;&#039; トランザクションで、&#039;&#039;pacman&#039;&#039; 自体が必要とする共有ライブラリが削除されたか破損したようです。&lt;br /&gt;
&lt;br /&gt;
この問題を解決するには、必要なライブラリをファイルシステム上に手動で展開する必要があります。まず、必要なライブラリを含むパッケージを調べ、&#039;&#039;pacman&#039;&#039; キャッシュ ({{ic|/var/cache/pacman/pkg/}}) からそのパッケージを見つけてください。そして、その共有ライブラリをファイルシステム上へ展開してください。これで &#039;&#039;pacman&#039;&#039; が実行できるようになりました。&lt;br /&gt;
&lt;br /&gt;
その後、壊れたパッケージを[[#特定のパッケージのインストール|再インストール]]する必要があります。注意点として、システムファイルがファイルシステム上に展開されたことを &#039;&#039;pacman&#039;&#039; は知らないため、{{ic|--overwrite}} フラグを使用する必要があります。Pacman は、先程の共有ライブラリファイルをパッケージのものに適切に置き換えてくれます。&lt;br /&gt;
&lt;br /&gt;
やるべきことは以上です。あとはシステムの残りも更新してください。&lt;br /&gt;
&lt;br /&gt;
===パッケージのダウンロード時にフリーズする===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pacman&#039;&#039; がリポジトリのアップデートや同期をできないというネットワークの問題がいくつか報告されています [https://bbs.archlinux.org/viewtopic.php?id&amp;amp;#61;68944] [https://bbs.archlinux.org/viewtopic.php?id&amp;amp;#61;65728]。Arch Linux のインストール時にこの問題が発生する場合、&#039;&#039;pacman&#039;&#039; のデフォルトのファイルダウンローダを置き換えることで解決します (詳しくは [[pacman のパフォーマンスの向上]]を参照)。[[VirtualBox]] で Arch Linux をゲスト OS としてインストールする時にこの問題が起こる場合、マシンのプロパティで &#039;&#039;NAT&#039;&#039; の代わりに &#039;&#039;Host interface&#039;&#039; を使うことで解決します。&lt;br /&gt;
&lt;br /&gt;
=== Failed retrieving file &#039;core.db&#039; from mirror ===&lt;br /&gt;
&lt;br /&gt;
[[ミラー]]を正しく設定しているにも関わらずこのエラーが発生する場合、別の[[Resolv.conf|ネームサーバー]]を設定してみてください。&lt;br /&gt;
&lt;br /&gt;
=== error: &#039;local-package.pkg.tar&#039;: permission denied ===&lt;br /&gt;
&lt;br /&gt;
{{ic|pacman -U}} を使用して sshfs のマウントポイント上にパッケージをインストールしようとしてこのエラーが発生する場合、インストールしたいパッケージをローカルのディレクトリに移動し、もう一度インストールしてみてください。&lt;br /&gt;
&lt;br /&gt;
=== error: could not determine cachedir mount point /var/cache/pacman/pkg ===&lt;br /&gt;
&lt;br /&gt;
Chroot 環境内で {{ic|pacman -Syu}} などを実行した際に以下のエラーが発生する場合:&lt;br /&gt;
&lt;br /&gt;
 エラー: キャッシュディレクトリ /var/cache/pacman/pkg のマウントポイントを決定できませんでした&lt;br /&gt;
 エラー: 処理を完了できませんでした (空き容量が足りません)&lt;br /&gt;
&lt;br /&gt;
このエラーのよくある原因は、chroot したディレクトリがマウントポイントでないことです。解決策は、[[既存の Linux からインストール#基本ツールをダウンロード]] に書かれてあるノートを見てください。また、{{man|8|arch-chroot}} には、バインとマウントを使って chroot ディレクトリをマウントポイント化する方法について例と共に説明されています。&lt;br /&gt;
&lt;br /&gt;
=== error: GPGME error: No data ===&lt;br /&gt;
&lt;br /&gt;
パッケージを更新できず、このエラーが発生する場合は、更新する前に {{ic|rm -r /var/lib/pacman/sync/}} を実行してみてください。&lt;br /&gt;
&lt;br /&gt;
Sync ファイルを削除しても問題が解決しない場合は、更新する前に {{ic|file /var/lib/pacman/sync/*}} を実行して sync ファイルが {{ic|gzip compressed data}} であることを確認してください。ルーターかプロキシが、ダウンロードしたデータを破損させているのかもしれません。&lt;br /&gt;
&lt;br /&gt;
Sync ファイルが正しい種類であった場合、ミラーサーバー側に問題があるのかもしれません。{{ic|pacman-conf -r core}} と {{ic|pacman-conf -r extra}} でミラーサーバーを確認してください。表示された URL の一番最初のものをブラうさの URL 欄にペーストし、ファイルの一覧が表示されるか確かめてください。ミラーがエラーを返した場合、{{ic|/etc/pacman.d/mirrorlist}} 内のそのミラーをコメントアウトしてください。&lt;br /&gt;
&lt;br /&gt;
=== 壊れている、または同期されていないパッケージを再インストールする ===&lt;br /&gt;
&lt;br /&gt;
{{ic|pacman -Qk $pkg}} コマンドを使えば、{{ic|$pkg}} パッケージのインストールされたファイルがデータベースのバージョンに含まれているファイルと一致するかどうかを確認することができます。複数のパッケージに対しては、以下のようなループを使うことで、存在しないファイルがあるパッケージを再インストールすることができます:&lt;br /&gt;
&lt;br /&gt;
 $ LC_ALL=C.UTF-8 pacman -Qk 2&amp;gt;/dev/null | grep -v &#039; 0 missing files&#039; | cut -d: -f1 |&lt;br /&gt;
     while read -r package; do&lt;br /&gt;
         pacman -S &amp;quot;$package&amp;quot; --noconfirm&lt;br /&gt;
     done&lt;br /&gt;
&lt;br /&gt;
(部分的なダウングレードなどにより) {{ic|/var/lib/pacman}} のローカルデータベースが {{ic|/}} ファイルシステムにインストールされているパッケージよりも新しい場合、これはルートファイルシステムをローカルデータベースと再同期させる最適な方法です。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* {{man|3|libalpm}}&lt;br /&gt;
* {{man|8|pacman}}&lt;br /&gt;
* {{man|5|pacman.conf}}&lt;br /&gt;
* {{man|8|repo-add}}&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|pacman|2024-09-15|816454}}&lt;/div&gt;</summary>
		<author><name>ぽよたんぴ</name></author>
	</entry>
</feed>