GNU/Linux >> Linux の 問題 >  >> Arch Linux

ArchLinuxでPacmanを使用する方法

パッケージマネージャーは、さまざまなLinuxオペレーティングシステムディストリビューションの重要な差別化要因です。パックマンはその1つです。 ArchLinuxOSディストリビューションの下でパッケージ管理の役割を果たします。 Pacmanの主な機能目標は、シンプルでわかりやすいものです。

これは、ArchLinuxユーザーがあまり多くの技術を必要とせずにOSパッケージを管理するのに役立ちます。これらのパッケージは、ユーザー自身のビルドまたはOSの公式リポジトリにあります。

ソースに記載されているArchLinuxのパッケージには、セカンダリマスターサーバーと同期されたパッケージリスト構成があります。このパッケージリストは、ArchLinuxユーザーがランダムなシステムアップデートクエリを実行するときにマスターサーバーによって参照されます。つまり、ユーザーは、パッケージのインストールまたはダウンロードが必要なときにマスターサーバーと通信するクライアントです。

Pacmanパッケージマネージャーは、これらのインストールとダウンロードを可能にする簡単なコマンドを開始します。ただし、使用されるコマンドシーケンスでは、Archユーザーが他の必須のパッケージ依存関係を指定する必要がある場合があります。興味深いことに、Cプログラミング言語はPacmanのメインソースコードを提供しました。

ArchLinuxでのPacmanの使用

この記事は、ArchLinuxOSでのPacmanパッケージマネージャーの使用法と実装の基本的な概要と理解を提供することを目的としています。パックマンの使用法と実装を理解するには、それに関連する操作をカテゴリ別に表示する必要があります。したがって、私たちはあなたが精通しているかもしれない基本的なパックマン操作から始めて、あなたがまだ探求していないはるかに複雑な操作に進みます。

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

パッケージのインストールを行う前に、パッケージの基本的な属性を理解する必要があります。アーカイブはパッケージを一般化するため、次のものが含まれている必要があります。

  • アプリケーションのコンパイル済みファイル
  • アプリケーションのメタデータ。アプリのバージョン、名前、さらには依存関係の可能性もあります。
  • パッケージマネージャー(Pacman)ディレクティブとそのインストールファイル。
  • 開始/停止スクリプトなどの追加ファイルのオプションのインクルード。これらのファイルにより、ArchLinuxユーザーの生活がはるかに楽になります。

Pacmanパッケージマネージャーを使用すると、Arch Linuxユーザーは、コンピューターからさまざまなLinux OSパッケージをインストール、更新、および削除することができます。パッケージは、通常のOSプログラムの自己再コンパイルおよび自己インストールの完全な代替手段です。プログラムを直接インストールする代わりにOSパッケージを扱う場合、次の利点があります。

  • パッケージは簡単に更新できます。システムアップデートを実行するたびに、パッケージのインストールが公式リポジトリにリンクされていれば、OSはパッケージもアップデートします。
  • 依存関係のチェックが利用可能です。 Pacmanを使用すると、パッケージが壊れていてもOSパッケージのインストールが失敗することはありません。 Pacmanは、対象となるプログラムの名前のみを必要とし、依存関係のニーズを整理します。
  • クリーンパッケージの取り外し。 Pacmanは、OSが作成するパッケージリストを参照することにより、インストールされているすべてのパッケージに直接アクセスします。したがって、システムからパッケージを完全にアンインストールする場合、問題に直面することはありません。

特定のパッケージの取り扱い

Arch Linuxでは、特定のパッケージをそれらの依存関係とともにインストールできます。複数のパッケージをインストールすることもできます。次のPacmanコマンドは、インストール方法に光を当てるはずです。

# pacman -S package_1 package_2

このコマンドで、package_1とpackage_2は、インストールを開始するために入力するパッケージ名を表します。

正規表現を使用して、一度に複数のパッケージをインストールすることもできます。

# pacman -S $(pacman -Ssq package_regex)

この実装について詳しくは、こちらをご覧ください。

Arch Linuxでパッケージのインストールを行うと、リポジトリが異なるため、一部のパッケージが複数のバージョンで存在することがわかります。たとえば、テストの場合があります リポジトリまたは追加 リポジトリ。テストリポジトリの下のパッケージに関心があるとしましょう。これをインストールするには、最初に実際のパッケージ名の前にこのリポジトリの名前を指定する必要があります。このルールの次の実装を検討してください。

# pacman -S testing/package_name

インストールしたいパッケージがいくつかあり、それらすべてが同じような名前のパターンを持っている場合は、中括弧の拡張を使用するのが理想的です。たとえば、次のユースケースの実装について考えてみます。

# pacman -S plasma-{nm, desktop, mediacenter}

これらのカーリーブレース拡張の使用は、次のユースケースで示されているように、複雑なパッケージインストールルーチンでさらに実装できます。

# pacman -S plasma-{workspace{, -wallpapers}, pa}

上記の例は、Arch Linuxパッケージのインストールを処理するときに、中括弧をさまざまなレベルに拡張する方法を示しています。

仮想パッケージの処理

仮想的なものはすべて、他の何かの存在に依存しています。仮想パッケージの場合も同じです。それらは独立していないため、それらの存在は他のパッケージと結びついています。仮想パッケージはこれらの特定のパッケージに関連付けられているため、他のパッケージの依存関係を持つことはできません。

これらの仮想パッケージをインストールするにはパッケージ名だけでは不十分であるため、この仮想パッケージに関連付けられているプラ​​イマリパッケージの名前を知っているだけで済みます。仮想パッケージをホストするパッケージ名を知ることにより、通常のPacmanパッケージインストールコマンドでインストールします。

# pacman -S primary_package_name

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

経験豊富なArchLinuxユーザーにとって、パッケージグループで定義されたパッケージを扱うことはニュースではありません。これらのパッケージのインストールは通常同時に行われます。次のコマンドの使用例を考えてみましょう。

# pacman -S gnome

このコマンドを発行すると、アクティブなgnomeグループから必要なパッケージを選択するように求められます。パッケージグループには、あまりにも多くのパッケージが含まれる場合と含まれない場合があります。パッケージが多すぎて、インストールする必要があるのが少数の場合は、理想的なコマンド構文が必要です。通常の状況では、特定のパッケージのインストールを除外するには、あまりにも多くの数字を入力しなければならない場合があります。

次の構文を使用すると、範囲を介してインストールする必要のないパッケージを簡単に除外できます。

Enter a selection (default=all): 1-12 16

上記のコマンド構文への応答により、インストールするパッケージ1〜12および16が選択されます。残りのパッケージは無視されます。

上記のコマンド構文は、パッケージグループをインストールするための包括的なアプローチに従います。ただし、除外アプローチを使用する場合は、次の構文を検討する必要があります。

Enter a selection (default=all): ^4-9 ^3

上記の場合、パッケージ4〜9および3を除き、すべてのパッケージがインストール対象として選択されています。

上記のユースケースは「gnome」と呼ばれるパッケージグループを参照しているため、パッケージを正常にインストールした後で、このグループに関連付けられているパッケージをプレビューすることをお勧めします。この場合、次のコマンド構文を使用します。

# pacman -Sg gnome

Arch Linuxパッケージグループの詳細については、このリンクを参照してください。

Pacmanにパッケージのインストールを要求し、そのパッケージがシステムにすでに存在すると、インストールされているバージョンが最新であっても、このパッケージマネージャーはそのパッケージを再インストールします。一方、インストールコマンドで追加の引数として「–needed」を使用すると、そのパッケージの再インストールが見落とされます。

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

Arch Linuxシステムからパッケージをアンインストールまたは削除する場合は、次のコマンド構文を参照する必要があります。

# pacman -R name_of_package

上記のアンインストールは、システムからパッケージを削除するだけで、それに関連する依存関係は削除しません。パッケージとそれに関連する依存関係の両方を削除する場合は、次のコマンド構文を検討してください。

# pacman -Rs name_of_package

上記のコマンドの代わりに、課題になりがちなパッケージグループを取り除くことができます。

# pacman -Rsu name_of_package

次のコマンドは、特定のパッケージ、その依存関係、およびこのターゲットパッケージに依存する他のすべてのパッケージを削除します。

# pacman -Rsc name_of _package

後で必要になる可能性のあるパッケージを削除しないように、このコマンドの使用には注意してください。

別のパッケージの機能に必要なパッケージを、それに依存するパッケージを削除せずに削除するには、次のコマンド構文を参照できます。このコマンドを使用すると、Archシステムが破損する可能性があります。このコマンドは、自分が何をしているのかがはっきりしている場合にのみ使用してください。

# pacman -Rdd name_of_package

Archアプリケーションに関連付けられている特定のパッケージを削除すると、重要な構成ファイルがPacmanによって「.pacsave」拡張子で保存されます。ただし、アンインストールコマンドに-nオプションを含めると、これらのバックアップ構成ファイルは作成されません。たとえば、次のユースケースを考えてみましょう。

# pacman -Rn name_of_package

例外は、アプリ自体が構成を作成した場合、Pacmanはそれらを削除しないことです。

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

たった1つのPacmanコマンドで、Archシステム上のすべてのパッケージを更新およびアップグレードできるはずです。システムの更新にどれだけ最近取り組んだかによっては、更新とアップグレードのプロセスに時間がかかる場合があります。アップグレードプロセスでは、構成されたリポジトリーにあるパッケージが考慮されます。この場合、ローカルパッケージは除外されます。次のコマンドを使用します:

# pacman -Syu

パッケージデータベースのクエリ

Archシステムのパッケージデータベースにクエリを実行する場合は、次のコマンドの使用を検討してください。

# pacman -Q --help

上記のコマンドは、システムのローカルパッケージデータベースにクエリを実行します。

# pacman -S --help

上記のコマンドは、システムの同期データベースにクエリを実行します。

# pacman -F --help

上記のコマンドは、システムのファイルデータベースにクエリを実行します。

フラグ-Q、-S、および-Fは重要であり、決して省略しないでください。

パッケージの名前と説明を照会して、システムのデータベースで既存のパッケージを検索することもできます。

# pacman -Ss string1 string2 …

-sオプションは、組み込みのERE(拡張正規表現)に関連付けられています。その使用法は、望ましくない端子出力につながる可能性があります。その機能的な使用法は、パッケージ名のみに焦点を当て、パッケージの説明などの他のフィールドを無視するように制限できます。 vimエディターについてクエリを実行するときは、次の使用法を考慮してください。

# pacman -Ss '^vim-'

システムにすでにインストールされているパッケージを検索する場合は、次のコマンドアプローチを使用してください。

# pacman -Qs string1 string2 …

リモートパッケージで特定のパッケージファイル名を検索または参照する場合は、次のコマンド構文を使用します。

# pacman -F string1 string2 …

名前に基づいてターゲットパッケージに関する詳細情報が必要な場合は、次のコマンドアプローチを検討してください。

# pacman -Si name_of_package

Archシステムにローカルにインストールされているパッケージに関する情報を照会する場合は、次のコマンド構文を検討してください。

# pacman -Qi name_of_package

ローカルにインストールされたパッケージは、バックアップファイルに関連付けられている場合があります。これらのファイルを関連する変更状態と一緒に表示するには、追加の-iフラグを使用します。

# pacman -Qii name_of_package

インストールしたパッケージが他のファイルもインストールする場合があります。これらのファイルを表示するには、次のPacmanコマンド構文を検討してください。

# pacman -Ql name_of_package

リモートパッケージのインストールは、他のパッケージ関連ファイルのインストールも開始する傾向があります。これらのリモートでインストールされたファイルを表示するには、次のPacmanコマンド構文を参照してください。

# pacman -Fl name_of_package

パッケージにインストールされたファイルが存在することを確認するために、ファイルの検証が必要になる場合があります。次のコマンド構文を使用します。

# pacman -Qk name_of_package

徹底的な検証手順が必要な場合は、-kフラグを2回渡します。

# pacman -Qkk name_of_package

インストールされたファイルをArchシステムのパッケージインストーラーに関連付ける必要がある場合もあります。これを行うには、次のコマンドで示すように、そのファイルへのパスを指定する必要があります。

# pacman -Qo /path/to/name/of/file

インストールされたファイルをリモートパッケージインストーラーに関連付けるには、次のコマンド構文を参照してください。

# pacman -F /path/to/name/of/file

また、システムにパッケージの依存関係があり、不要になった場合もあります。これらの分離された依存関係は、孤立と呼ばれることもあります。それらを一覧表示するには、次のコマンド構文を参照してください。

# pacman -Qdt

Archシステムには、他のパッケージに依存しているが不要になったパッケージもインストールされている可能性があります。それらを一覧表示するには、次のコマンド構文を使用します。

# pacman -Qet

パックツリー

インストールされているほとんどのパッケージは、依存関係ツリーにも関連付けられています。このツリーを表示するには、次のコマンドの使用法を参照してください。

# pactree name_of_package

データベース構造

ArchLinuxシステムパス「/var/ lib / pacman / sync」は、Pacmanデータベースのプライマリロケーションを指します。また、Archのすべてのリポジトリは、ファイル「/etc/pacman.conf」につながるパスで指定されます。指定されたリポジトリごとに、対応するデータベースファイルも指定されたファイルへのパスに作成されます。

パッケージキャッシュのクリーニング

Archシステムパス「/var/ cache / pacman / pkg /」は、Pacmanがダウンロードしたパッケージの保存場所です。古いまたはアンインストールされたパッケージバージョンは、Archシステムによって自動的に削除されません。このシステム機能にはいくつかの利点があります。

  • インストールされているパッケージをバージョン番号に基づいてダウングレードする方がはるかに簡単です。
  • このシステムキャッシュフォルダにはアンインストールされたパッケージが保持されるため、アクティブなリポジトリから新たにダウンロードする代わりに、必要に応じて同じパッケージを柔軟に再インストールできます。

一方、このキャッシュフォルダをオフのままにすると、無期限に大きくなる可能性があります。したがって、慎重にそれをきれいにする努力をする必要があります。次のコマンドは、Archシステムの最新の3つのパッケージエントリを除いて、アンインストールおよびインストールされたパッケージのバージョンのシステムキャッシュを効率的にクリーンアップします。

# paccache -r

「paccache.timer」を有効にして開始すると、未使用のシステムパッケージを破棄する週ごとのスケジュールが作成されます。

これらのパッケージバージョンをシステムからキャッシュアウトするときは、保持したいものを具体的に指定できます。たとえば、過去のバージョンを1つ残したい場合は、次のコマンド構文を検討してください。

# paccache -rk1

バージョンに関係なくアンインストールされたパッケージを削除するには、次のコマンド構文を使用します。

# paccache -ruk0

paccacheの使用に関するその他のオプションは、端末で次のコマンドを実行することで見つけることができます。

# paccache -h

未使用の同期データベースとまだインストールされていないキャッシュパッケージを削除するには、次のコマンドを実行します。

# pacman -Sc

システムキャッシュを完全にクリーンアップする場合は、より積極的なコマンドが必要になる場合があります。たとえば、次のコマンドはArchシステムのキャッシュフォルダを空にします。

# pacman -Scc

その他の便利なコマンド

最初にインストールせずにArchLinuxパッケージのみをダウンロードする場合は、次のコマンド構文を使用します。

# pacman -Sw name_of_package

インストールするローカルパッケージがリモートリポジトリにない場合は、次のパッケージインストール方法を検討する必要があります。

# pacman -U /path/to/name/of/package-version.pkg.tar.zst

ローカルパッケージのコピーをPacmanのシステムキャッシュに配置することをお勧めします。次のコマンド構文を参照してください。

# pacman -U file:///path/to/name/of/package-version.pkg.tar.zst

リモートシステムパッケージまたは定義されたリポジトリに存在しないパッケージのインストールは、次のコマンド構文を使用して実行できます。

# pacman -U http://www.example_link.com/repo/example.pkg.tar.zst

Pacmanは、対象のシステムパッケージをインストールまたはリモート化する前に、まずArchシステムユーザーにインストールまたはアンインストールの確認を求めます。

最後のメモ

ファイル「/etc/pacman.conf」へのArchシステムパスには、Pacmanのプライマリ設定が含まれています。 Archシステムユーザーは、このファイルにアクセスして、インストールしたプログラムのパフォーマンスを特定の設定にカスタマイズできます。この設定の詳細については、pacman.conf(5)の公式ドキュメントを参照してください。

要約すると、Pacmanパッケージマネージャーには、Archパッケージのインストール、更新、削除以外に提供できるものがたくさんあります。これを使用して、変更ログ、インストールされているアプリケーション、グループパッケージ、および明示的にインストールされているパッケージを表示できます。このリストは続きます。 ArchシステムでPacmanを使用して操作すればするほど、その無限の可能性を探求し、発見することができます。

Pacmanパッケージマネージャーのその他の操作例と実装は、ArchLinuxの公式サイトで入手できます。


Arch Linux
  1. LinuxでBusyBoxを使用する方法

  2. Linuxでcronを使用する方法

  3. ArchLinuxでのアップグレードからパッケージを無視する方法

  1. LinuxでSuコマンドを使用する方法

  2. Arch Linuxでソフトウェアをインストール、削除、更新する方法

  3. ArchLinuxで脆弱なパッケージを見つける方法

  1. Linuxでpkgsrcを使用する方法

  2. ArchLinuxをインストールする方法

  3. Linux – Arch LinuxでPacmanによってインストールされた古いパッケージを削除する方法は?