質問: .debパッケージとすべての依存関係をダウンロードする方法は? このトピックについて見つけたすべての答えについて、解決策は、パッケージをインストールする必要がある特定のコンピューターaに、必要なすべての依存関係を含むファイルを作成し、それを別のコンピューターにダウンロードして、bと呼ぶことにしました。問題は、デスクトップをフォーマットしなければならない場合に備えて、後でオフラインでインストールできるようにするために必要な特定の重要なソフトウェアのストレージが欲しいことです。私は自分のコンピューターに冗長な.debファイルがたくさんあることについては本当に気にかけていません。また、10mbのソフトウェアをインストールするために1gbのファイルを保存するのであれば、本当に気にかけません。だから、私は可能な依存関係をダウンロードしてもらいたいのです。どういうわけか私はこれを行うことができますか?
回答: 次のpython3プログラムを実行します。import subprocess olemas_olevad_pakid=set() def r(pakk): t=subprocess.run(["apt-get", "download", pakk]) if t.stderr or t.returncode: #print("could not load package: status: {p.returncode}, stdout: {p.stdout}, stderr: {p.stderr}".format(p=t), "paki nimi:", pakk) return false olemas_olevad_pakid.add(pakk) t=subprocess.run(["apt-cache", "depends", "-i", pakk], stdout=subprocess.pipe) if t.stderr or t.returncode: print(t.stdout) exit(t.stderr) #print(":", t.stdout) needed_pacages=t.stdout.split(b"depends: ")[1:] #print(pakk, "needs packages:", needed_pacages) for choices in needed_pacages: one_choice_made=false for needed_package in choices.split(b"\n"): needed_package=needed_package.strip(b"\n ") if needed_package in olemas_olevad_pakid or r(needed_package): one_choice_made=true break if not one_choice_made: print("problem: could not download any of", choices) return false return true #for pakk in packages_to_download: # print("pakk:",pakk) # r(pakk) r(input("package name:")) 直接の依存関係だけでなく、すべての依存関係のすべての依存関係をダウンロードします。しかし、dpkg -i *.debを使用したインストールは失敗しました。多分apt-cache depends -i packageが誤った情報を与えるか、いくつかの.debファイルがまだインストールするためにインターネット接続を必要とするためです。