Est-ce que 'apt-get' est obsolète?

54

Dernièrement, j'ai vu beaucoup de gens utiliser

sudo apt

au lieu de

sudo apt-get

De plus, Ubuntu n'arrête pas de me demander d'installer des choses sudo apt

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

(rappelez-vous que foo est un espace réservé, pas une application)

Donc, après cette popularité dans la communauté d’utiliser aptplutôt que d’ utiliser apt-get, je commence à penser que apt-get est obsolète et ne peut plus être utilisé dans mes programmes bash.

Dans mes programmes bash,

  • Dois-je remplacer toutes les apt-getcommandes avec apt?
  • est apt-getdangereux?
  • mes programmes fonctionnent-ils toujours?
Skybbles
la source
7
Voir ce billet lié: askubuntu.com/q/445384/295286
Sergiy Kolodyazhnyy
Apt est plus joli
qu'apt
2
La raison pour laquelle certains utilisateurs (comme moi-même) utilisent aptest parce que c'est plus court que apt-get. Moins de frappes, moins de temps passé. J'utilise apt-getpour des choses comme checkbien.
Gallifreyan

Réponses:

36

apt-getest de niveau inférieur et compatible avec les versions antérieures. aptest préférable pour les utilisateurs finaux et ne requiert ni ne contient certaines fonctionnalités supplémentaires présentes dans apt-get.

Les deux vont parfaitement bien. apt-getn'est pas obsolète, mais votre installation de 15.10 est :)

Edit: De la page de manuel d'apt (8)

La commande apt est conçue pour être agréable pour les utilisateurs finaux et n’a pas besoin d’être compatible avec les versions antérieures comme apt-get (8).

Edit2: a aptété conçu pour corriger certaines des failles de dépendance fondamentales de apt-get. Comme il s’agit d’un wrapper, son niveau aptest donc supérieur et il perd également certaines fonctionnalités de compatibilité et de scripting en amont.

negusp
la source
19
Quelles fonctionnalités ne sont pas dans apt-get pas dans apt? Et comment apt est meilleur pour l'utilisateur final?
Anwar
4
Encore une fois, apt-get n’est pas de niveau inférieur à apt. C'est une information trompeuse. apt est au même niveau qu'apt-get et apt n'est rien qu'un wrapper autour d'apt-get et d'apt-cache
Jeudi
@Anwar: Il y a des différences. Un exemple: apt upgradeapt-get upgrade, puisque le premier installe de nouveaux packages, alors que le dernier ne l’installe pas.
Gunnar Hjalmarsson
26
@Anwar Si aptest une valeur d'emballage, apt-getc'est certainement un niveau supérieur.
Tavian Barnes
2
@Anwar C'est en fait la définition d'être "niveau supérieur" ou "niveau inférieur". apt est de niveau supérieur car il enveloppe apt-get. Une sorte de test est que si votre apt était corrompu, apt-get fonctionnerait toujours - mais pas l'inverse.
Sir Robert
47

Non, apt-getn'est pas obsolète. La page de manuel de apta ceci à dire à propos de aptvs. apt-get(et apt-cache):

UTILISATION DES SCRIPTS ET DIFFÉRENCES DES AUTRES OUTILS APT

La ligne de commande apt (8) est conçue comme un outil pour l'utilisateur final et peut changer de comportement entre les versions. Bien qu’il essaie de ne pas rompre la compatibilité avec les versions antérieures, cela n’est pas garanti non plus si un changement semble avantageux pour une utilisation interactive.

Toutes les fonctionnalités d'apt (8) sont disponibles dans des outils APT dédiés tels qu'apt-get (8) et apt-cache (8). apt (8) modifie simplement la valeur par défaut de certaines options (voir apt.conf (5) et plus précisément la portée binaire). Vous devriez donc préférer utiliser ces commandes (éventuellement avec certaines options supplémentaires activées) dans vos scripts car elles préservent la compatibilité avec les versions antérieures autant que possible.

apt donne également un avertissement qui dit

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

s'il détecte il y a un tuyau. Par exemple:

$ 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

Quant à tes questions,

Dois-je remplacer toutes les commandes apt-get par apt?

Non, vous n'avez pas à remplacer apt-getpar apt. Si vous l'utilisiez dans des scripts, vous devriez vous en tenir à apt-getcela, car elle possède une API CLI stable et une compatibilité en amont garantie.

est apt-getdangereux?

aptest aussi dangereux que apt-get: vous ne devez installer des logiciels qu’à partir de sources fiables.

puis-je utiliser aptdans Ubuntu 15.10?

Oui, vous pouvez. Le problème ici est que vous utilisez toujours Ubuntu 15.10, qui n'est plus pris en charge! Veuillez mettre à niveau vers 16.04, qui est une version LTS.

mes programmes fonctionnent-ils toujours?

Par programmes, je suppose que vous voulez dire des scripts. Oui, ils continueront à fonctionner car apt-getn’est pas obsolète. En fait, vous devriez préférer utiliser des apt-getscripts pour la compatibilité ascendante, comme suggéré par aptla page de manuel de.

edwinksl
la source
7

aptet apt-getsont fondamentalement le même gestionnaire de paquets, ce qu'ils font est la même chose.

Une différence est que aptcontient également des fonctionnalités de par exemple apt-cacheet a une sortie plus jolie.

Cependant, aptvous ne devez pas encore l'utiliser dans les scripts, du moins si vous souhaitez analyser sa sortie, car celle-ci est en cours de développement et son format de sortie peut encore changer. La fonction de complétion automatique de Bash ne fonctionne pas encore avec de nombreuses aptcommandes.

Vous pouvez utiliser les deux, selon votre préférence.

Byte Commander
la source
apt fournit des fonctionnalités apt-cache avec un délai supplémentaire! essayez d'utiliser apt package de recherche et apt-cache search package. Même utilisation de la politique
Anwar
@ Anwar, je ne vois aucune différence en utilisant apt(-cache) policy. Avec apt(-cache) search, il y a une différence de vitesse, oui, mais la sortie de aptest triée et bien formatée en retour.
Byte Commander
-1

Comme vous pouvez le voir dans les autres réponses, vous pouvez utiliser soit aptou apt-get. Ce que je voudrais ajouter, c’est que lorsque j’ai essayé, aptil ya quelques années, j’ai remarqué que cela réglait les conflits différemment apt-get. Lorsque la situation était délicate (quelque chose devait être supprimé, un paquet a été épinglé à une version spécifique, j'ai rétrogradé un paquet ou j'ai utilisé un mélange de paquets de versions différentes), aptvoulait généralement supprimer des tonnes de paquets ou ne pouvait pas résoudre le problème. conflit.

Depuis apt-getétait beaucoup mieux dans ces situations et il n'y avait aucun inconvénient, j'ai abandonné et ai aptcontinué à utiliser à la apt-getplace. C’était il ya plusieurs années, cela a peut-être changé, mais si vous rencontrez une situation similaire, vous voudrez peut-être essayer les deux et voir lequel peut le mieux résoudre le conflit.

Zoltan
la source