Utilisation de dpkg pour installer les packages de mise à niveau et de mise à niveau dist

9

Je joue donc avec l'installation de packages hors ligne sur le serveur 12.04, après avoir téléchargé des packages en récupérant et en mouillant leurs URI en utilisant les instructions ici: http://www.webupd8.org/2009/11/get-list-of-packages- and-dependencies.html

Je l'ai fait avec apt-get upgradeet apt-get dist-upgrade, puis j'ai installé les packages téléchargés à l'aide de dpkg -i. Le processus ressemblait donc à ceci:

  1. Obtenez les URI
  2. wgetles packages dans un dossier ( upgradepackages vers / upgrade et dist-upgradepackages vers / dist-upgrade)
  3. courir dpkg -i /upgrade/*.debpuisdpkg -i /dist-upgrade/*.deb

Ma question est: est-ce que cette méthode d'installation manuelle des packages mis à jour correctement mettrait tout à jour, donnant le même résultat que si je venais de courir apt-get upgradeet apt-get dist-upgradenormalement? Ou y a-t-il quelque chose que les apt-getcommandes normales font qui ne serait pas fait de cette façon?

R4mzy
la source

Réponses:

15

Au lieu d'utiliser dpkg, qui est un gestionnaire de paquets de bas niveau, vous feriez mieux d'utiliser apt. Pour installer les fichiers .deb à l'aide apt, copiez-les dans le cache apt

sudo cp *.deb /var/cache/apt/archives/

puis effectuez simplement la mise à niveau régulière:

apt-get upgrade

La aptcommande utilisera les fichiers dans son cache plutôt que de les télécharger sur le net, ce qui correspond à peu près à votre objectif.

sayantankhan
la source
Merci, ça marche très bien. Bien que je sois toujours curieux de savoir ce qui aptfait exactement différemment dpkgdans ce cas, étant donné que j'avais à l'origine utilisé aptpour obtenir les URI de tous les packages, y compris leurs dépendances? En ce qui concerne l'acte d'installation réel, il semble qu'il soit à aptpeu près utilisé dpkgpour effectuer le déballage et l'installation des packages, la seule différence étant qu'il aptvérifie les dépendances au préalable (mais cela est déjà couvert parce que j'avais l'habitude aptde télécharger les packages, y compris dépendances, en premier lieu). A moins que je manque quelque chose?
R4mzy
De plus, une partie de la raison pour laquelle je demande est que je m'inquiète de ce que apt'spourrait être le comportement si, disons, les packages téléchargés étaient copiés sur un système qui avait accès à Internet et aptvoyait ensuite que certains ou tous les packages téléchargés n'étaient pas les plus récents (mais plus récent que ce qui est actuellement installé), puis il essaie plutôt d'obtenir les versions mises à jour de ces packages particuliers (je veux qu'il installe uniquement les packages / versions spécifiques que j'ai téléchargés). Fondamentalement, aptdonne-t-il la préférence à la dernière version en ligne ou donnera-t-il la préférence à une version locale, plus récente mais pas la plus récente?
R4mzy
1
@ R4mzy Vous avez là un point valide. aptessaiera d'obtenir le dernier package sur Internet, même s'il existe des packages plus anciens disponibles localement. Vous devrez peut-être modifier /etc/apt/sources.listt pour vous assurer qu'il installe les packages locaux.
sayantankhan
@sayantankhan pouvez-vous montrer à quoi cela ressemblerait dans votre réponse? Je demande parce que j'ai copié mon fichier .deb dans /var/cache/apt/archives/mais ne le sudo apt-get update && sudo apt-get upgradevois pas ou ne met pas à jour / met à niveau le package dont j'ai besoin. Je sens que je dois mettre à jour la liste, mais je ne sais pas comment.
Todd
1
@Todd Je ne l'ai pas fait moi-même, mais voici comment quelqu'un a outrepassé la priorité du package apt.
sayantankhan