新しくインストールしたシステム(インターネット接続がない)にインストールするためにAURのドライバーをダウンロードしようとしていますが、入力すると
makepkg -s
他のパッケージをインストールする必要があります。このシステムにはインターネットがないので、インターネットに接続している別のPCからこれらのパッケージ(およびそのすべての依存関係)をダウンロードし、後で新しいシステムにインストールしたいと思います。パッケージをオフラインでインストールすることについてのチュートリアルをarchlinuxのWebサイトで見つけました。使用する
pacman -Sp <package_name> > /myPackages.list
package_name
で指定したすべてのパッケージのリストを作成します。ただし、すべての依存関係も必要です。だから私は知りたい:
pacman パッケージと一緒にインストールされる pactree というプログラムがあります。
指定されたパッケージの依存関係ツリーを表示するために使用されます。
次のように使用できます。
pactree -u <package_name>
ただし、pacman -Sp <package_name>
とは異なり、 pactree は1つのパッケージ名のみを受け入れます。
この問題を回避する方法はいくつかありますが、あなたの質問から判断すると、シェルスクリプトに精通しているとは思えないので(間違えたら申し訳ありません)、1つの解決策について詳しく説明します。
echo "package_name1 package_name2 ..." | xargs -n 1 pactree -u | sort -u | xargs -n 1 pacman -Sp > /myPackages.list
echo
-シェル組み込みコマンド:引数をstdout
に出力します(新しい行が追加されます)。
|
-パイプ:stdout
を左側のコマンドから右側のコマンドのstdin
にリダイレクトします。
xargs
-外部コマンド:stdin
を取得し、指定されたコマンドの引数リストに追加します。-n 1
--xargs
オプション:stdin
からの引数ごとに指定されたコマンドを1回実行します。
pactree
-外部コマンド:指定されたパッケージの依存関係ツリーを表示します。-u
--pactree
オプション:グラフの代わりに、各依存関係パッケージを別々の行に出力します。
sort
-外部コマンド:テキストをstdin
から並べ替えて、stdout
に書き込みます。-u
--sort
オプション:ソートされたstdin
から重複を削除します。
(一部のパッケージには同じ依存関係がある可能性があるため、これが必要です。)
あなたは残りの行に精通しています。
pacman -Sp
は、AURからパッケージを提供すると、エラーを報告します。
JdeBP で指摘されているように、pactree
は現在 pacman-contrib パッケージに入っています。