web-dev-qa-db-fra.com

Comment télécharger le paquet .DEB et toutes les dépendances?

Pour toutes les réponses, j'ai trouvé à propos de cette rubrique, la solution consistait à créer, dans un ordinateur un ordinateur A où j'ai besoin d'installer le package, un fichier contenant toutes les dépendances dont il a besoin, puis la téléchargez sur un autre ordinateur, appelons-le B.

La chose est que je veux avoir un stockage de certains logiciels critiques, je dois travailler pour pouvoir les installer plus tard au cas où je devrais formater mon bureau.

Je ne me soucie vraiment pas d'avoir beaucoup de fichiers redondants .deb sur mon ordinateur, et je m'en fiche vraiment si je vais stocker 1 Go de fichiers pour installer un logiciel de 10 Mo.

Donc, je veux avoir une dépendance possible téléchargée. Est-ce que je peux faire cela?

13
ebernardes

J'irais avec ça:

apt-get download PACKAGE && apt-cache depends -i PACKAGE | awk '/Depends:/ {print $2}' | xargs apt-get download

Ensuite, vous pouvez l'installer avec dpkg -i *.deb Dans le répertoire que vous avez téléchargé.

21
Darek

Est-ce une chose ponctuelle, ou quelque chose que vous voulez garder à jour? Travaillez-vous principalement en ligne et voulez-vous simplement une sauvegarde locale de tous vos forfaits, au cas où?

Il y a plusieurs services que vous pouvez installer cet acte comme APT proxy/cache. Vous pointez APT à votre cache local, il sera téléchargé sur Internet, et conservez une copie en cache localement de tous les packages. Cela peut être très utile si vous avez beaucoup d'ordinateurs sur votre réseau avec une sélection identique de packages.

Mon cache apt préféré est environ , mais il y a aussi APT-CACHER-NG, et quelques autres. Chacun a des différences mineures sur la manière dont la mise en cache peut être configurée.

J'utilise toujours les installateurs Nettinst minimaux pour construire mes systèmes basés sur Debian, ce qui signifie que mon cache APT a généralement presque tous les paquets pour construire pleinement mes systèmes.

1
Zoredache

exécutez-le après python Programme:

import subprocess
package=input("insert package name:")
t=subprocess.run(["apt-cache", "depends", "-i", package], stdout=subprocess.PIPE)
if t.stderr or t.returncode:
    print(t.stdout)
    exit(t.stderr)
#print(":", t.stdout)
needed_pacages=t.stdout.split(b"Depends: ")
print(package, "depends of", needed_pacages)
for choices in needed_pacages:
    one_choice_made=False
    for needed_package in choices.split(b"\n"):
        needed_package=needed_package.strip(b"\n ")
        t=subprocess.run(["apt-get", "download", needed_package])
        if t.stderr or t.returncode:
            print("ERROR: Status: {p.returncode}, stdout: {p.stdout}, stderr: {p.stderr}".format(p=t), "package name:", needed_package)
        else:
            one_choice_made = True
            #print("downloaded",vajalik_pakk)
            break
    if not one_choice_made:
        print("could not get one of dependecies", choices)
0
hilugan