ArchベースのLinuxディストリビューションでのPacmanコマンド入門

簡単な説明:この初心者向けガイドでは、Linuxでpacmanコマンドを使用して実行できること、それらを使用して新しいパッケージを検索する方法、新しいパッケージをインストールおよびアップグレードする方法、システムをクリーンアップする方法について説明します。

The パックマン パッケージマネージャーは、 Arch Linux およびRedHatやUbuntu / Debianなどの他の主要なディストリビューション。 シンプルなバイナリパッケージ形式と使いやすい組み合わせです ビルドシステム。 pacmanの目的は、パッケージを簡単に管理することです。 公式リポジトリ またはユーザー自身のビルド。

UbuntuまたはDebianベースのディストリビューションを使用したことがある場合は、apt-getまたはaptコマンドを使用したことがあるかもしれません。 PacmanはArchLinuxで同等です。 Arch Linuxをインストールしたばかりの場合、Arch Linuxをインストールした後に最初に行うことの1つは、pacmanコマンドの使用方法を学ぶことです。

この初心者向けガイドでは、Archベースのシステムを管理するために知っておくべきpacmandコマンドの基本的な使用法について説明します。

ArchLinuxユーザーが知っておくべき重要なpacmanコマンド

他のパッケージマネージャーと同様に、pacmanはパッケージリストをソフトウェアリポジトリと同期して、ユーザーが必要なすべての依存関係を解決することにより、簡単なコマンドでパッケージをダウンロードしてインストールできるようにします。

pacmanでパッケージをインストールする

この方法でpacmanコマンドを使用して、単一のパッケージまたは複数のパッケージをインストールできます。

pacman -S _package_name1_ _package_name2_ ...

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

-Sは同期を表します。 これは、pacmanが最初に同期することを意味します

pacmanデータベースは、インストールされたパッケージを、インストールされた理由に応じて2つのグループに分類します。

  • 明示的にインストール:一般的なpacman-Sまたは-Uコマンドによってインストールされたパッケージ
  • 依存関係:暗黙的にインストールされたパッケージ 必要 明示的にインストールされた別のパッケージによって。

インストールされたパッケージを削除します

単一のパッケージを削除し、そのすべての依存関係をインストールしたままにするには:

pacman -R package_name_

パッケージの削除

インストールされている他のパッケージには必要のないパッケージとその依存関係を削除するには、次の手順に従います。

pacman -Rs _package_name_

不要になった依存関係を削除します。 にとって example、依存関係が必要なパッケージが削除されました。

pacman -Qdtq | pacman -Rs -

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

Pacmanは、ArchLinuxを更新する簡単な方法を提供します。 インストールされているすべてのパッケージを1つのコマンドで更新できます。 システムがどの程度最新であるかによっては、これにはしばらく時間がかかる場合があります。

次のコマンドは、リポジトリデータベースを同期し、システムのパッケージを更新します。ただし、構成されたリポジトリにない「ローカル」パッケージは除きます。

pacman -Syu
  • Sは同期を表します
  • yは更新用です(ローカルキャッシュ)
  • uはシステムアップデート用です

基本的には、中央リポジトリ(マスターパッケージデータベース)に同期し、マスターパッケージデータベースのローカルコピーを更新してから、システム更新を実行することを意味します(新しいバージョンが利用可能なすべてのパッケージを更新することによって)。

システムアップデート

注意!

アップグレードする前にArchLinuxを使用している場合は、 ArchLinuxホームページ 異常な更新がないか最新ニュースを確認します。 手動による介入が必要な場合は、適切なニュース投稿が行われます。 または、サブスクライブすることもできます RSSフィード または arch-メーリングリストを発表

適切なものを見渡すことにも注意してください フォーラム 報告された問題については、基本的なソフトウェア(kernel、xorg、systemd、glibcなど)をアップグレードする前。

部分的なアップグレードはサポートされていません ArchやManjaroなどのローリングリリースディストリビューションで。 つまり、新しいライブラリバージョンがリポジトリにプッシュされると、リポジトリ内のすべてのパッケージをライブラリに対して再構築する必要があります。 にとって example、2つのパッケージが同じライブラリに依存している場合、一方のパッケージのみをアップグレードすると、古いバージョンのライブラリに依存しているもう一方のパッケージが破損する可能性があります。

pacmanを使用してパッケージを検索する

Pacmanは、-Qフラグを使用してローカルパッケージデータベース、-Sフラグを使用して同期データベース、および-Fフラグを使用してファイルデータベースにクエリを実行します。

Pacmanは、パッケージの名前と説明の両方で、データベース内のパッケージを検索できます。

pacman -Ss _string1_ _string2_ ...

パッケージを検索する

すでにインストールされているパッケージを検索するには:

pacman -Qs _string1_ _string2_ ...

リモートパッケージでパッケージファイル名を検索するには:

pacman -F _string1_ _string2_ ...

パッケージの依存関係ツリーを表示するには:

pactree _package_naenter code hereme_

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

Pacmanはダウンロードしたパッケージを/ var / cache / pacman / pkg /に保存し、古いバージョンやアンインストールされたバージョンを自動的に削除しません。 これにはいくつかの利点があります。

  1. それはすることができます ダウングレード 他のソースから以前のバージョンを取得する必要のないパッケージ。
  2. アンインストールされたパッケージは、キャッシュフォルダから直接簡単に再インストールできます。

ただし、フォルダのサイズが大きくならないように、定期的にキャッシュをクリーンアップする必要があります。

The paccache(8) スクリプト、内で提供 pacman-投稿 packageは、デフォルトで最新の3つを除いて、インストールおよびアンインストールされたパッケージのすべてのキャッシュバージョンを削除します。

paccache -r

キャッシュの消去

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

pacman -Sc

キャッシュからすべてのファイルを削除するには、クリーンスイッチを2回使用します。これは最も積極的なアプローチであり、キャッシュフォルダーには何も残されません。

pacman -Scc

ローカルまたはサードパーティのパッケージのインストール

リモートリポジトリからではない「ローカル」パッケージをインストールします。

pacman -U _/path/to/package/package_name-version.pkg.tar.xz_

公式リポジトリに含まれていない「リモート」パッケージをインストールします。

pacman -U https://www.example.com/repo/example.pkg.tar.xz

ボーナス:pacmanでの一般的なエラーのトラブルシューティング

pacmanでパッケージを管理しているときに発生する可能性のある一般的なエラーを次に示します。

トランザクションのコミットに失敗しました(ファイルの競合)

次のエラーが表示された場合:

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
package: /path/to/file exists in filesystem
Errors occurred, no packages were upgraded.

これは、pacmanがファイルの競合を検出し、ファイルを上書きしないために発生しています。

これを解決する安全な方法は、最初に別のパッケージがファイルを所有しているかどうかを確認することです(pacman -Qo / path / to / file)。 ファイルが別のパッケージによって所有されている場合は、バグレポートを提出してください。 ファイルが別のパッケージによって所有されていない場合は、「ファイルシステムに存在する」ファイルの名前を変更して、更新コマンドを再発行してください。 すべてがうまくいけば、ファイルは削除される可能性があります。

問題のパッケージに属するすべてのファイルを手動で名前変更して後で削除する代わりに、明示的に実行することができます pacman -S –globパッケージを上書きする pacmanにglobに一致するファイルを上書きさせる。

トランザクションのコミットに失敗しました(無効または破損したパッケージ)

/ var / cache / pacman / pkg /で.partファイル(部分的にダウンロードされたパッケージ)を探して削除します。 多くの場合、pacman.confでカスタムXferCommandを使用することが原因です。

トランザクションの初期化に失敗しました(データベースをロックできません)

pacmanがパッケージデータベースを変更しようとしているとき、 example パッケージをインストールすると、/ var / lib / pacman /db.lckにロックファイルが作成されます。 これにより、pacmanの別のインスタンスが同時にパッケージデータベースを変更しようとするのを防ぎます。

データベースの変更中にpacmanが中断された場合、この古いロックファイルが残る可能性があります。 pacmanのインスタンスが実行されていないことが確実な場合は、ロックファイルを削除します。

プロセスがロックファイルを保持しているかどうかを確認します。

lsof /var/lib/pacman/db.lck

上記のコマンドで何も返されない場合は、ロックファイルを削除できます。

rm /var/lib/pacman/db.lck

lsofコマンド出力でロックファイルを保持しているプロセスのPIDを見つけた場合は、最初にそれを強制終了してから、ロックファイルを削除します。

基本的なpacmanコマンドを説明するための私の謙虚な努力を気に入っていただければ幸いです。 以下にコメントを残してください、そして私たちのソーシャルメディアで購読することを忘れないでください。 おげんきで!