Ist "apt-get" veraltet?

54

In letzter Zeit habe ich viele Leute gesehen

sudo apt

Anstatt von

sudo apt-get

Außerdem fordert Ubuntu mich immer wieder auf, die Dinge von zu installieren sudo apt

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

(Denken Sie daran, foo ist Platzhalter, keine App)

Nach dieser Beliebtheit in der Community in Bezug auf die Verwendung von aptanstelle von apt-getdenke ich, dass apt-get veraltet ist und nicht mehr in meinen Bash-Programmen verwendet werden kann.

In meinen Bash-Programmen

  • muss ich alle apt-getBefehle durch ersetzen apt?
  • ist apt-getgefährlich?
  • funktionieren meine programme noch
Skybbles
quelle
7
Siehe dazu den entsprechenden Beitrag: askubuntu.com/q/445384/295286
Sergiy Kolodyazhnyy
Apt ist schöner als apt-get
WinEunuuchs2Unix
2
Der Grund, warum einige Benutzer (wie ich) verwenden, aptist, weil es kürzer ist als apt-get. Weniger Tastenanschläge, weniger Zeitaufwand. Ich benutze apt-getfür Dinge wie check.
Gallifreyan

Antworten:

36

apt-getist niedriger und abwärtskompatibel. aptist besser für Endbenutzer und erfordert oder enthält keine zusätzlichen Funktionen in apt-get.

Beides ist vollkommen in Ordnung. apt-getist nicht veraltet, aber Ihre 15.10-Installation ist :)

Bearbeiten: Aus der Manpage von apt (8)

Der Befehl apt soll für Endbenutzer angenehm sein und muss nicht wie apt-get (8) abwärtskompatibel sein.

Edit2: aptwurde entwickelt, um einige der grundlegenden Abhängigkeitsfehler in zu beheben apt-get. Da es sich um einen Wrapper handelt, apthandelt es sich daher um eine höhere Ebene, und es gehen einige Abwärtskompatibilitäts- und Skriptfunktionen verloren.

negusp
quelle
19
Welche Funktionen gibt es in apt-get nicht in apt? Und wie passend ist es für Endbenutzer?
Anwar
4
Wieder ist apt-get nicht niedriger als apt. Dies ist eine irreführende Information. Apt ist auf dem gleichen Niveau wie Apt-Get und Apt ist nichts anderes als ein Wrapper um Apt-Get und Apt-Cache
Anwar
@ Anwar: Es gibt Unterschiede. Ein Beispiel: apt upgradeapt-get upgrade, da das erstere neue Pakete installiert, das letztere jedoch nicht.
Gunnar Hjalmarsson
26
@Anwar Wenn aptes ein Wrapper ist, apt-getdann ist es definitiv ein höheres Level.
Tavian Barnes
2
@Anwar Das ist eigentlich die Definition von "höherem Level" oder "niedrigerem Level". apt ist höher, weil es apt-get umschließt. Eine Art Test ist, dass, wenn Ihre Wohnung beschädigt wurde, apt-get immer noch funktioniert - aber nicht umgekehrt.
Sir Robert
47

Nein, apt-getist nicht veraltet. Der Mann Seite apthat dies zu sagen aptvs. apt-get(und apt-cache):

SCRIPT-NUTZUNG UND UNTERSCHIEDE ZU ANDEREN APT-WERKZEUGEN

Die apt (8) -Befehlszeile ist als Endbenutzertool konzipiert und kann das Verhalten zwischen den Versionen ändern. Obwohl versucht wird, die Abwärtskompatibilität nicht zu unterbrechen, ist dies auch nicht garantiert, wenn eine Änderung für die interaktive Verwendung vorteilhaft erscheint.

Alle Funktionen von apt (8) sind auch in dedizierten APT-Tools wie apt-get (8) und apt-cache (8) verfügbar. apt (8) ändert lediglich den Standardwert einiger Optionen (siehe apt.conf (5) und insbesondere den Binärbereich). Daher sollten Sie diese Befehle (möglicherweise mit einigen aktivierten zusätzlichen Optionen) in Ihren Skripten bevorzugen, da sie die Abwärtskompatibilität so weit wie möglich gewährleisten.

apt gibt auch eine Warnung, die besagt

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

Wenn es erkennt, gibt es eine Leitung. Zum Beispiel:

$ 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

Wie für Ihre Fragen,

Muss ich alle apt-get-Befehle durch ersetzen apt?

Nein, Sie müssen nicht ersetzen apt-getmit apt. Wenn Sie es in Skripten verwenden, sollten Sie sich lieber daran halten, apt-getda es eine stabile CLI-API und eine garantierte Abwärtskompatibilität aufweist.

ist apt-getgefährlich?

aptist so gefährlich wie apt-get: Sie sollten nur Software von Quellen installieren, denen Sie vertrauen.

kann ich aptin Ubuntu 15.10 verwenden?

Ja, du kannst. Das Problem hierbei ist, dass Sie immer noch Ubuntu 15.10 verwenden, das jetzt nicht mehr unterstützt wird! Bitte aktualisieren Sie auf 16.04, eine LTS-Version.

funktionieren meine programme noch

Unter Programmen verstehe ich Skripte. Ja, sie funktionieren weiterhin, da sie apt-getnicht veraltet sind. In der Tat sollten Sie es vorziehen, apt-getin Skripten zu verwenden, um die Abwärtskompatibilität zu gewährleisten, wie in der aptManpage von empfohlen .

edwinksl
quelle
7

aptund apt-getsind im Grunde der gleiche Paketmanager, was sie tun, ist das gleiche.

Ein Unterschied ist, dass es aptauch Funktionen von zB enthält apt-cacheund eine besser aussehende Ausgabe hat.

Sollte aptjedoch noch nicht in Skripten verwendet werden, zumindest wenn Sie die Ausgabe analysieren möchten, da es sich noch in der Entwicklung befindet und sich das Ausgabeformat möglicherweise noch ändert. Bashs Tab-Autocomplete funktioniert auch noch nicht mit vielen aptBefehlen.

Sie können beide verwenden, je nachdem, was Sie bevorzugen.

Byte Commander
quelle
apt bietet Apt-Cache-Funktionen mit zusätzlicher Verzögerung! Versuchen Sie es mit apt search package und apt-cache search package. Gleiche mit Politik
Anwar
@Anwar Ich sehe überhaupt keinen Unterschied bei der Verwendung apt(-cache) policy. Mit apt(-cache) searchgibt es einen Unterschied in der Geschwindigkeit, ja, aber die Ausgabe von aptwird sortiert und im Gegenzug schön formatiert.
Byte Commander
-1

Wie Sie aus den anderen Antworten ersehen können, können Sie entweder aptoder verwenden apt-get. Was ich hinzufügen möchte, ist, dass ich vor aptein paar Jahren bemerkte, dass Konflikte auf eine andere Weise gelöst wurden als apt-getzuvor. Wenn die Situation schwierig war (etwas musste entfernt werden, ein Paket wurde auf eine bestimmte Version fixiert, ich habe ein Paket heruntergestuft oder ich habe eine Mischung von Paketen aus verschiedenen Releases verwendet), aptwollte normalerweise Tonnen von Paketen entfernen oder konnte das Problem nicht lösen Konflikt.

Da apt-getes in diesen Situationen viel besser war und es keine Nachteile hatte, gab ich es auf aptund benutzte apt-getstattdessen weiter. Dies war vor einigen Jahren, daher hat sich dies möglicherweise geändert. Wenn Sie jedoch in eine ähnliche Situation geraten, möchten Sie möglicherweise beides ausprobieren und herausfinden, mit welcher Methode der Konflikt besser gelöst werden kann.

Zoltan
quelle