web-dev-qa-db-fra.com

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

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 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 apt au lieu de apt-get, je commence à penser qu'apt-get est obsolète et ne peut plus être utilisé dans mes programmes bash.

Dans mes programmes bash,

  • dois-je remplacer toutes les commandes apt-get par apt?
  • apt-get est-il dangereux?
  • mes programmes fonctionnent-ils toujours?
54
Skybbles

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

Les deux vont parfaitement bien. apt-get n'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: apt a été conçu pour corriger certaines des failles de dépendance fondamentales dans apt-get. Comme il s'agit d'un wrapper, apt est donc de niveau supérieur et perd également certaines fonctionnalités de compatibilité et de scripting en amont.

36
negusp

Non, apt-get n'est pas obsolète. La page de manuel de apt a ceci à dire à propos de apt par rapport à apt-get (et apt-cache):

UTILISATION DE SCRIPT ET DIFFÉRENCES D'AUTRES APT OUTILS

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 disant

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'êtes pas obligé de remplacer apt-get par apt. Si vous l'utilisiez dans des scripts, vous devriez vous en tenir à apt-get car elle possède une API CLI stable et une compatibilité en amont garantie.

apt-get est-il dangereux?

apt est aussi dangereux que apt-get: vous ne devriez installer que des logiciels provenant de sources de confiance.

puis-je utiliser apt dans 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 de fonctionner car apt-get n'est pas obsolète. En fait, vous devriez préférer utiliser apt-get dans les scripts pour assurer la compatibilité ascendante, comme suggéré par la page de manuel de apt.

47
edwinksl

apt et apt-get sont fondamentalement le même gestionnaire de paquets, leur fonction est la même.

Une différence est que apt contient également des fonctionnalités, par exemple. apt-cache et a une sortie plus jolie.

Toutefois, apt ne doit pas encore être utilisé dans les scripts, du moins si vous souhaitez analyser sa sortie, car il est encore en développement et son format de sortie peut encore changer. De plus, Tab-autocomplete de Bash ne fonctionne pas encore avec de nombreuses commandes apt.

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

7
Byte Commander

Comme vous pouvez le constater dans les autres réponses, vous pouvez utiliser apt ou apt-get. Ce que je voudrais ajouter, c'est que lorsque j'ai essayé apt il y a quelques années, j'ai remarqué que cela résolvait les conflits d'une manière différente de celle de apt-get. Lorsque la situation était délicate (quelque chose devait être supprimé, un paquet avait été épinglé dans une version spécifique, j'avais rétrogradé un paquet ou j'avais utilisé un mélange de paquets de différentes versions), apt voulait généralement supprimer des tonnes de paquets ou ne pouvait pas résoudre le conflit.

Étant donné que apt-get était beaucoup mieux dans ces situations et qu'il n'y avait aucun inconvénient, j'ai abandonné apt et ai continué à utiliser apt-get à la place. C’était il ya plusieurs années, cela a peut-être changé, mais si vous vous retrouvez dans une situation similaire, vous pouvez essayer les deux et voir lequel peut le mieux résoudre le conflit.

0
Zoltan