當前位置: 首頁>>技術教程>>正文


‘apt-get’已被棄用嗎?

, , , ,

問題描述

最近,我見過很多人使用

sudo apt

代替

sudo apt-get

另外,Ubuntu一直告訴我安裝sudo apt的東西

The program 'foo' is currently not installed. You can install it by typing:
sudo apt install foo

(記住,foo是占位符,而不是app)

因此,在社區中使用apt代替apt-get後,我開始認為apt-get已被棄用,不能再用於我的bash程序。

在我的bash程序中,

  • 我是否必須用apt替換所有apt-get命令?

  • apt-get危險嗎?

  • 我的課程還能運作嗎?

最佳解決方法

apt-get較低級別且向後兼容。 apt對於end-users更好,並且不需要或包含apt-get中存在的一些額外特征。

兩者都很好。 apt-get不推薦使用,但您的15.10安裝是:)

編輯:從apt的手冊頁(8)

The apt command is meant to be pleasant for end users and does not need to be backward compatible like apt-get(8).

Edit2:apt旨在修複apt-get中的一些基本依賴缺陷。由於它是一個包裝器,因此apt更高級別,並且還失去了一些向後兼容性和腳本功能。

次佳解決方法

不,apt-get不推薦使用。 apt的手冊對此有用aptapt-get(和apt-cache):

SCRIPT USAGE AND DIFFERENCES FROM OTHER APT TOOLS

The apt(8) commandline is designed as an end-user tool and it may change behavior between versions. While it tries not to break backward compatibility this is not guaranteed either if a change seems beneficial for interactive use.

All features of apt(8) are available in dedicated APT tools like apt-get(8) and apt-cache(8) as well. apt(8) just changes the default value of some options (see apt.conf(5) and specifically the Binary scope). So you should prefer using these commands (potentially with some additional options enabled) in your scripts as they keep backward compatibility as much as possible.

apt也發出警告說

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

如果它檢測到有管道。例如:

$ apt show python | grep Package

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Package: python
APT-Sources: http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

至於你的問題,

do i have to replace all apt-get commands with apt?

不,您不必將apt-get替換為apt。相反,如果您在腳本中使用它,您應該堅持使用apt-get,因為它具有穩定的CLI API並保證向後兼容性。

is apt-get dangerous?

aptapt-get一樣危險:您隻應從您信任的來源安裝軟件。

can i use apt in Ubuntu 15.10?

是的,你可以。這裏的問題是你還在使用Ubuntu 15.10,現在不支持!請升級到16.04,這是一個LTS版本。

will my programs still work?

通過程序,我認為你的意思是腳本。是的,它們仍然有效,因為apt-get不被棄用。事實上,您應該更喜歡在腳本中使用apt-get以實現向後兼容性,如apt手冊頁所示。

第三種解決方法

aptapt-get基本上是相同的包管理器,它們所做的是相同的。

不同之處在於apt還包含來自例如apt-cache具有更好看的輸出。

但是,apt不應該在腳本中使用,至少如果要解析其輸出,因為它仍處於開發階段,其輸出格式可能仍會更改。 Bash的tab-autocomplete還沒有使用許多apt命令。

您可以使用兩者,無論您喜歡哪種。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/1635.html,未經允許,請勿轉載。