Difference between revisions of "Pacman (日本語)"

From ArchWiki
Jump to: navigation, search
m
m
Line 30: Line 30:
 
{{Article summary heading|関連記事}}
 
{{Article summary heading|関連記事}}
 
{{Article summary wiki|Downgrading Packages (日本語)}}
 
{{Article summary wiki|Downgrading Packages (日本語)}}
{{Article summary wiki|Improve Pacman Performance}}
+
{{Article summary wiki|Improve Pacman Performance (日本語)}}
 
{{Article summary wiki|Pacman GUI Frontends (日本語)}}
 
{{Article summary wiki|Pacman GUI Frontends (日本語)}}
 
{{Article summary wiki|Pacman Rosetta (日本語)}}
 
{{Article summary wiki|Pacman Rosetta (日本語)}}

Revision as of 14:19, 13 October 2013

概括 help replacing me
Pacman は Arch Linux の パッケージマネージャです。パッケージマネージャはソフトウェアのインストール・アップグレード・削除に使われます。この記事では基本的な使い方とトラブルシューティングについて記述します。
概要
Template:Package management overview (日本語)
関連記事
Downgrading Packages (日本語)
Improve Pacman Performance (日本語)
Pacman GUI Frontends (日本語)
Pacman Rosetta (日本語)
Pacman Tips (日本語)
Pacman package signing
FAQ (日本語)#パッケージ管理
pacman-key (日本語)
Pacnew and Pacsave Files (日本語)
資料
libalpm(3) Manual Page
pacman(8) Manual Page
pacman.conf(5) Manual Page
repo-add(8) Manual Page

pacman パッケージマネージャは Arch Linux の主要な機能のひとつです。pacman はシンプルなバイナリのパッケージ形式と簡単に利用できるビルドシステムから成っています。pacman のゴールはパッケージ管理を楽にすることであり、公式 Arch レポジトリにあるパッケージや、ユーザー自身が作成したパッケージを容易に管理することができます。

Pacman はマスターサーバーと同期してシステムを最新に保ちます。このサーバー・クライアントモデルによって、シンプルなコマンドだけで必要な依存性を解決してパッケージのダウンロード・インストールをすることができます。

Pacman は C 言語で書かれており .pkg.tar.xz パッケージフォーマットを使います。

Tip: 公式の pacman パッケージには他にも有用なツールが含まれています。makepkg, pactree, vercmp など。ツールの一覧を見るには pacman -Ql pacman | grep bin を実行してください。

設定

pacman の設定は /etc/pacman.conf に記述されています。ここで pacman がどのように動作するかを決めることができます。より詳しい情報は man pacman.conf にあります。

全般設定

全般的な設定は [options] セクションにあります。ここで設定されている項目については man かデフォルトの pacman.conf を参照してください。

アップグレードさせないパッケージを設定

ある特定のパッケージをアップデートさせないようにするには:

IgnorePkg=linux

複数のパッケージを記述するときはスペースで区切るか、IgnorePkg 行を追加してください。

アップグレードさせないグループを設定

パッケージの場合と同様に、アップグレードさせないグループを指定することができます:

IgnoreGroup=gnome

インストールさせないファイルを設定

特定のディレクトリのインストールをさせないようにするには NoExtract リストにディレクトリを加えます。例えば、systemd ユニットのインストールを避けるには:

NoExtract=usr/lib/systemd/system/*

Repositories

/etc/pacman.conf に書かれているように、このセクションではどのレポジトリを使うか定義します。リポジトリはここで直接設定することもできますし、他のファイル (/etc/pacman.d/mirrorlist) から読み込ませることもできます。ただしどれかひとつのファイルを使うようにしてください。ミラーの設定はここを見て下さい。

/etc/pacman.conf
#[testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# もし x86_64 環境で 32 bit アプリケーションを動かしたい時は、
# ここで multilib レポジトリを有効にします。

#[multilib-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

#[multilib]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
Warning: [testing] リポジトリを使う場合には注意が必要です。このリポジトリにあるパッケージは活発に開発が進んでいるため、更新したら動かなくなるものもあります。testing リポジトリを使う場合は、最新情報が流れている arch-dev-public mailing list を購読するのをお薦めします。

パッケージのセキュリティ

Pacman 4 は署名済みのパッケージをサポートしていて、パッケージに追加のセキュリティレイヤーを加えています。SigLevel を使うことでリポジトリ毎に(もしくは全体的に)セキュリティレベルを設定することが可能です。デフォルトの設定では
/etc/pacman.conf
SigLevel = Required DatabaseOptional
によって全てのリポジトリで全てのパッケージの署名検証が有効にされています。上述したようにリポジトリ毎に SigLevel を使うことでこの設定を上書きすることができます。パッケージに署名する方法や署名の検証について詳しくは、ここを見て下さい。

使い方

pacman で何ができるかをちゃんと学びたい場合、man pacman を参照してください。以下にあるのは pacman でできることのほんの一例です。

パッケージのインストール

特定のパッケージのインストール

ひとつ、あるいは複数の(依存を含む)パッケージをインストールするときは:

# pacman -S パッケージ名1 パッケージ名2 ...

異なるリポジトリにそれぞれ同じ名前のパッケージが存在することがあります(例:[extra] リポジトリと [testing] リポジトリ)。このような場合、どちらをインストールするかを明示してください:

# pacman -S extra/パッケージ名

パッケージグループのインストール

パッケージグループに属しているパッケージを同時にインストールすることができます。例えば:

# pacman -S gnome

を実行すると gnome グループからインストールしたいパッケージを選択するように表示されます。

パッケージグループには大量のパッケージが含まれており、しばしばインストールしたいパッケージはそのうちの少しだけということがあるかもしれません。インストールするパッケージの番号を全て入力するという方法でもよいですが、以下のようにすることで簡単にパッケージを選択することが可能です:

Enter a selection (default=all): 1-10 15

以上で1番から10番までと15番のパッケージがインストールされます。

Enter a selection (default=all): ^5-8 ^2

以上で5番から8番までと2番のパッケージ以外の全てのパッケージをインストールします。

どのパッケージが gnome グループに属しているか見るには:

# pacman -Sg gnome

どのようなパッケージグループがあるかは https://www.archlinux.org/groups/ を見て下さい。

Note: グループの中にインストール済みのパッケージがある場合でも、グループにあわせて再インストールされます。--needed オプションを使うことで無視できます。
Warning: パッケージのインストールをする際に、アップグレードをせずにパッケージリストを更新しないでください (つまり pacman -Sy パッケージ名 をしてはいけない)。これをすると依存問題がおこる可能性があります。#部分的なアップグレードはサポートされていませんhttps://bbs.archlinux.org/viewtopic.php?id=89328 を参照。

パッケージの削除

あるパッケージを、そのパッケージが必要としていたものを残したまま削除するには:

# pacman -R パッケージ名

削除したいパッケージと、そのパッケージだけが必要としている他のパッケージを一緒に削除するには:

# pacman -Rs パッケージ名

削除したいパッケージと、そのパッケージが必要としている他のパッケージ、さらに削除したいパッケージに依存しているパッケージを削除するには:

Warning: この操作は再帰的です。必要なパッケージを削除してしまうこともあるので、気をつけて使って下さい。
# pacman -Rsc パッケージ名

他のパッケージから依存されているパッケージを、依存しているパッケージを削除しないで削除するには:

# pacman -Rdd パッケージ名

デフォルトでは、pacman は削除されたパッケージの設定ファイルを *.pacsave という拡張子をつけてバックアップします。もしこれらのファイルも一緒に削除したい場合:

# pacman -Rn パッケージ名
Note: Pacman はパッケージがインストールされた後に作成された設定ファイルを削除しません。$HOME ディレクトリ下の設定ファイルなどは手動で削除してください。

パッケージのアップグレード

Pacman は以下のコマンドひとつでシステムの全てのパッケージのアップデートができます。システムがどれだけ新しいかによってかかる時間が変わります。このコマンドはレポジトリデータベースと同期してそれからシステムのパッケージをアップデートします(レポジトリにない'ローカル'パッケージは別です):

# pacman -Syu
Warning: アップデートがきたらすぐにアップデートしようとする前に、Arch のローリングリリースのことを再確認してください、アップデートが思いがけない結果になることもあります。つまり、重要なプレゼンをやらなくちゃいけないからといってアップデートするのは賢いとは言えません。手の空いた時間に、何が起こっても対処できるように準備をしてからアップデートしましょう。

Pacman は強力なパッケージ管理ツールですが、全ての問題を解決できるわけではありません。混乱したのなら The Arch Way (日本語) を読んで下さい。ユーザーは用心深くなって、システムのメンテナンスの責任を自分でとらなくてはなりません。システムアップデートをしたときは、pacman からの表示を全て読み常識を働かせることが肝要です。もし(ユーザーによって作られた)設定ファイルを新しいパッケージのバージョンにあわせて変更する必要があるときは、ユーザーの設定を上書きするのを回避するために .pacnew ファイルが作られます。Pacman はユーザーにそれらをマージするよう表示します。これらのファイルはユーザーが手動で修正しなくてはなりません。パッケージのアップグレードや削除のあとチェックするのが良いでしょう。詳しくは Pacnew and Pacsave Files (日本語) を見て下さい。

Tip: Pacman からの出力は /var/log/pacman.log に記録されています。

アップグレードするまえに、Arch Linux home page の最新ニュースをチェックしておくとよいでしょう (もしくは RSS フィード, arch-announce mailing list を講読したり Twitter の @archlinux をフォローする): アップデートの際にいつもとは違うユーザーの操作が必要になった時 (pacman から与えられる指示だけでは不十分な場合など)、それに関してニュースが作られているはずです。

もし解決できない問題にあたったときは、フォーラムを検索してみましょう。他の人も同じ問題にぶつかり、解決法を投稿していることがあります。

パッケージ・データベースに問い合わせる

-Q フラグを使って Pacman からローカルデータベースを問い合わせます:

$ pacman -Q --help

同期しているデータベースに問い合わせるには -S フラグを使います:

$ pacman -S --help

Pacman を使ってパッケージ名と説明の両方をデータベースの検索にかけるには:

$ pacman -Ss 検索ワード1 検索ワード2 ...

既にインストールしたパッケージ内を検索するには:

$ pacman -Qs 検索ワード1 検索ワード2 ...

パッケージ名が分かっていれば、より詳しい情報を得ることができます:

$ pacman -Si パッケージ名

既にインストールしたパッケージの情報を得るには:

$ pacman -Qi パッケージ名

-i フラグをふたつ付けることでバックアップファイルの一覧と状態を表示できます:

$ pacman -Qii パッケージ名

あるパッケージによってインストールされたファイルの一覧を得るには:

$ pacman -Ql パッケージ名

インストールされていないパッケージには pkgfile を使って下さい。

あるファイルがどのパッケージによってインストールされたかを調べるには:

$ pacman -Qo /パス/ファイル名

孤立した、他のパッケージに必要とされていないパッケージの一覧を得るには:

$ pacman -Qdt

パッケージの依存のツリーを見るには:

$ pactree パッケージ名

あるパッケージを必要としている全てのパッケージを見るには pkgtoolswhoneeds を使います:

$ whoneeds パッケージ名

追加コマンド

システムのアップグレードとパッケージのインストール(ワンライナー):

# pacman -Syu パッケージ名1 パッケージ名2 ...

インストールをしないで、パッケージをダウンロードする:

# pacman -Sw パッケージ名

リポジトリに存在しない'ローカル'のパッケージ (例: AUR のパッケージ) をインストール:

# pacman -U /パス/パッケージ名-version.pkg.tar.xz

リポジトリにない、リモートのパッケージを URI を入力してインストール:

# pacman -U http://www.example.com/repo/example.pkg.tar.xz
Tip: pacman のキャッシュにローカルパッケージのコピーを残したいときは、次を使って下さい:
# pacman -U file://path/to/package/package_name-version.pkg.tar.xz

現在インストールされていない、パッケージのキャッシュ (/var/cache/pacman/pkg) を削除:

Warning: インストールしたパッケージが安定していて、ダウングレードが必要ないときだけ行なって下さい。この操作をするとキャッシュフォルダから全ての古いバージョンを削除するため、現在インストールされているバージョンのパッケージだけが残ります。将来のアップグレードでパッケージが破損した場合、今現在動作しているパッケージだけがインストールできます。
# pacman -Sc

パッケージのキャッシュを全て削除:

Warning: この操作は全てのキャッシュを掃除します。これはバッドノウハウであり、後でダウングレードしたいと思っても、キャッシュフォルダからはできなくなってしまいます。そうなった場合は Arch Rollback Machine を使わなくてはなりません。
# pacman -Scc
Tip: -Sc-Scc スイッチを使う代わりに、pacmanpaccache を使うことができます。どのキャッシュをどのように削除するかより細かく操作できます。詳しくは paccache -h をしてください。

部分的なアップグレードはサポートされていません

Arch Linux はローリングリリースであり、常に新しいバージョンのライブラリがレポジトリにプッシュされます。開発者や Trusted User はライブラリにあわせてレポジトリの全てのパッケージをリビルドします。ローカルでパッケージをインストールした場合 (AUR のパッケージなど)、ユーザーは必要に応じて共有ライブラリにあわせてリビルドしなくてはなりません。

つまり部分的なサポートはサポートされていませんpacman -Sy package や、それと同等の pacman -Sy からの pacman -S package などをしないでください。いつでも、パッケージをインストールする前にアップグレードしてください -- 特に pacman が同期レポジトリを更新する時は。同じ理由から、IgnorePkgIgnoreGroup は気をつけて扱って下さい。

一度部分的なアップグレードがなされると、リンクしていたライブラリが見つからなくなってバイナリが壊れてしまいます。シンボリックリンクを張ることでこの問題を"解決"しようとしてはいけません。ライブラリは後方互換性がないときには soname を受け取ります。単純に、正しくミラーと同期する pacman -Syu で pacman が壊れていないかぎり問題を修正します。

トラブルシューティング

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

Template:FAQ

関連項目