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

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

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

pacmanパッケージマネージャーは、Arch Linuxと、RedHatやUbuntu/Debianなどの他の主要なディストリビューションとの主な違いの1つです。シンプルなバイナリパッケージ形式と使いやすいビルドシステムを組み合わせています。 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_

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

pacman -Qdtq | pacman -Rs -

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

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

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

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

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

注意!

アップグレードする前にArchLinuxを使用している場合は、Arch Linuxのホームページにアクセスして、最新のニュースで異常な更新がないかどうかを確認することをお勧めします。手動による介入が必要な場合は、適切なニュース投稿が行われます。または、RSSフィードまたはarch-announceメーリングリストに登録することもできます。

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

部分的なアップグレードはサポートされていません ArchやManjaroなどのローリングリリースディストリビューションで。つまり、新しいライブラリバージョンがリポジトリにプッシュされると、リポジトリ内のすべてのパッケージをライブラリに対して再構築する必要があります。たとえば、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. アンインストールされたパッケージは、キャッシュフォルダから直接簡単に再インストールできます。

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

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

paccache -r

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

pacman -Sc

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

pacman -Scc

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

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

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

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

pacman -U http://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 –overwrite glob packageを明示的に実行できます。 globに一致するファイルをpacmanに上書きさせる 。

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

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

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

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

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

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

lsof /var/lib/pacman/db.lck

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

rm /var/lib/pacman/db.lck

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

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



Linux
  1. Linuxtacコマンドの使用を開始する

  2. PiFlashの使用を開始する:LinuxでRaspberryPiを起動する

  3. Linuxcatコマンドの使用を開始する

  1. Linuxファイアウォールの使用を開始する

  2. LinuxでPostgreSQLを使い始める

  3. LinuxでSSHを使い始める

  1. Linux用のbtrfsの使用を開始する

  2. GNOMEを使い始めるためのアドバイス

  3. GNOMELinuxデスクトップの使用を開始する