題 如何使用apt-get安裝本地.deb軟件包


有沒有辦法用apt-get在你的HD上安裝包存儲,就像 apt-get install ./package.deb

如果沒有,如何以非常簡單的方式處理依賴項?


129
2017-10-07 08:02


起源




答案:


通常我這樣做 dpkg -i <deb file>,它會失敗說它需要依賴。在那之後你做了一個 apt-get update 最後會說“依賴已準備好安裝”,我認為它會建議使用 apt-get install -f

一旦完成,我就用了 dpkg -i 再次。

最近幾年為我工作得很好。

編輯:看得更遠,顯然是一個叫做的工具 gdebi 可以做到這一點 gdebi [deb file]


111
2017-10-07 08:19



謝謝我做了相同的“錯誤”dpkg然後apt-get install -f並且它工作。 - Louis
gdebi 對我有用,到目前為止我看到的最簡單。 - ctrl-alt-delor


Sirex或多或少都是正確的,但他的回答並不清楚。我剛剛解決了這個問題,所以這就是我所做的:

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

如果失敗並顯示有關包的消息,具體取決於未安裝的內容,則可以在運行時修復它

sudo apt-get -f install

這將安裝依賴項(假設它們在您的系統知道的存儲庫中可用)和您最初請求安裝的包('f'是'fix'選項,'y'是'假設是提示'或者“不要問我是否可以,只需安裝它”選項 - 對腳本化靜默安裝非常有用)。在我使用的系統上,沒有必要再次運行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中做這項工作並沒有那麼擔心,但這篇文章已經更新,以反映更加小心。


54
2018-01-16 20:21



如果我已經將所有包文件放在目錄中,是否有辦法告訴apt這是一個新的存儲庫,那麼我不必強迫它安裝任何沒有依賴項的東西? - Berry Tsakala
對不起,但我不知道。我建議將其作為另一個頂級問題。 - Akrikos
瘋狂奇怪,這是必需的。在raspian上,這將需要sudo(對於dpkg和apt-get): sudo dpkg -i mypackages.deb等 - Brent Faust
@Rubistro root訪問它在所有系統上都需要。我猜答案假設這些命令是由root執行的(例如來自交互式root shell或以root身份執行的腳本)。 - Amos Shapira
為了你自己的利益,做 不 添加 -y 選項。例如,如果您在錯誤的時間(至少在Debian上)嘗試使用錯誤的軟件包,那麼很容易建議卸載整個桌面環境。 - oseiskar


您也可以使用gdebi安裝.deb文件。運行以下命令安裝gdebi,

sudo apt-get install gdebi-core

用gdebi安裝.deb包,

sudo gdebi /path/to/filename.deb

它還修復了依賴關係。


46
2018-01-07 17:58



請注意,gdebi只接受一個參數和 默默 把剩下的放在地板上。這意味著如果您同時安裝多個deb(也許是因為它們相互依賴),您需要仔細製作 gdebi 允許他們安裝的命令。 imo這一半擊敗了gdebi的目的,但你仍然可以發現它對單個文件很有用 - Anthony Sottile
@Anthony然後 find -name *.deb -exec gdebi {} \; - jjmontes
@jjmontes只有在相互依賴性按照字母順序排列時才會起作用,這是我很少見的 - Anthony Sottile
我跟著這個 freesoftwaremagazine.com/articles/... (本地回購必須在/ var / www / html / debs上的bug)並且synaptic一直試圖從遠程甚至沒有互聯網下載,所以gdebi與當地的回購工作很好!另外,.deb文件必須是 chmod +r *.deb - Aquarius Power


是的,你提出的命令是正確的。

sudo apt-get install ./package.deb

將安裝從APT以外的其他源獲得的軟件包,同時使用APT功能自動解決其依賴關係。不幸的是,這個 apt-get 功能沒有記錄在 手冊頁

看到 https://askubuntu.com/a/769542/250300 詳情。


15
2017-08-26 07:13



這應該是公認的答案。 - Peter