apt-getを使用してローカルの.debパッケージをインストールする方法


144

apt-getを使用してHDにパッケージストアをインストールする方法はありますapt-get install ./package.debか?

そうでない場合、非常に簡単な方法で依存関係を処理する方法は?


これで動作します。 まだSuperUserを使用している場合、受け入れられた回答を更新できますか?下記参照。
ミケマッカナ

回答:


121

通常はdpkg -i <deb file>、依存関係が必要だと言って失敗します。その後apt-get update、最後に「依存関係をインストールする準備ができました」などのメッセージが表示されますapt-get install -f。使用することをお勧めします。

それが終わったら、dpkg -i再び使用します。

過去数年間、私にとってはうまくいきました。

編集:もう少し見てみると、どうやらと呼ばれるツールgdebiがこれを行うことができますgdebi [deb file]


1
おかげで私は「エラー」dpkgで同じことをし、apt-get install -fを実行しました。
ルイス

2
gdebi私のために働いており、これまで見てきた中で最も簡単です。
ctrl-alt-delor

55

Sirexは多かれ少なかれそれを持っていますが、彼の答えは明確ではありません。私はちょうどこれを解決したので、ここで私がやったことです:

sudo dpkg -i /path/to/filename.deb

インストールされていないものに応じてパッケージに関するメッセージが表示されて失敗する場合は、実行するとおそらく修正できます

sudo apt-get -f install

これにより、依存関係がインストールされます(システムが認識しているリポジトリで利用可能であると仮定します)およびインストールを最初に要求していたパッケージ(「f」は「修正」オプション、「y」は「プロンプトに対してyesと想定」です)または「大丈夫かどうか尋ねないで、インストールするだけ」オプション-スクリプト化されたサイレントインストールに非常に便利です)。私が稼働していたシステムでは、dpkgを再度実行する必要はありませんでした(Ubuntu lucid 10.04)。

実行時に-fを省略するとsudo apt-get install、依存関係が未解決であるためパッケージが構成されていないとしてリストされ、有益な提案が表示されるのは興味深いことです。Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

編集:

すべての質問に「y」と答えずにインストールする場合は、y最初に含めたように修飾子を追加できますsudo apt-get -fy install。しかし、コメント者は、aptがデスクトップ環境全体をアンインストールすることを提案する場合があると指摘しました。私はVMでこの作業を行っていましたが、その懸念はありませんでしたが、この投稿は少し慎重になったことを反映するように更新されました。


すべてのパッケージファイルが既にディレクトリにある場合、これが新しいリポジトリであることをaptに伝える方法はあるので、依存関係なしで何かを強制的にインストールする必要はありませんか?
ベリーツァカラ

2
申し訳ありませんが、わかりません。別のトップレベルの質問としてそれを尋ねることをお勧めします。
-Akrikos

これが必要なのは奇妙なことです。raspianで、これは(dpkgのとapt-getの両方のための)sudoを必要とします:sudo dpkg -i mypackages.debなど
ブレント・ファウスト

@Rubistro rootアクセスは、すべてのシステムで必要です。私は答えがコマンドがルートによって実行されると仮定したと思います(例えば、インタラクティブなルートシェル、またはルートとして実行するスクリプトから)。
アモスシャピラ14年

2
あなた自身のために、-yオプションを追加しないでください。たとえば、(少なくともDebianでは)間違ったパッケージで間違ったパッケージを試してみた場合、デスクトップ環境全体をアンインストールするなど、aptが提案することは非常に一般的です。
-oseiskar

45

gdebiを使用して.debファイルをインストールすることもできます。以下のコマンドを実行してgdebiをインストールします。

sudo apt-get install gdebi-core

gdebiで.debパッケージをインストールします。

sudo gdebi /path/to/filename.deb

また、依存関係も修正します。


4
gdebiは1つの引数のみを取り、残りを静かに床に落とすことに注意してください。これは、複数のdebを同時にインストールする場合(おそらくそれらが互いに依存しているため)gdebi、それらをインストールできるコマンドを慎重に作成する必要があることを意味します。IMOこの半分はのgdebiの目的に反し、あなたはまだ単一のファイルについて、それが役に立つかもしれません
アンソニーSottile

@アンソニーその後find -name *.deb -exec gdebi {} \;
jjmontes

3
相互依存関係は、私は賭けたいアルファベット順になっている場合にのみ動作します@jjmontesはかなり稀である
アンソニーSottile

私はこのfreesoftwaremagazine.com/articles / ...をフォローしました(ローカルリポジトリは/ var / www / html / debsにある必要がありました)、シナプスはインターネットなしでもリモートからダウンロードしようとし続けたので、gdebiはローカルリポジトリでうまく機能しました!また、.debファイルはchmod +r *.deb
Aquarius Powerである

34

はい、提案したコマンドは正しいです。

sudo apt-get install ./package.deb

または

sudo apt install ./package.deb

APT以外のソースから取得したパッケージをインストールし、同時にAPT機能を使用して依存関係を自動的に解決します。残念ながら、このapt-get機能はマニュアルページに記載されていません。

詳細については、https://askubuntu.com/a/769542/250300およびhttps://askubuntu.com/a/795048/250300を参照してください。


8
これは受け入れられた答えであるべきでした。
ピーター

どのバージョンのapt-getがこの機能を追加しましたか?
カートフィッツナー

@KurtFitzner リリース発表ごとにAPT 1.1に追加されましたaskubuntu.com/a/795048/250300で発見)。
メレビウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.