web-dev-qa-db-fra.com

Comment créer rapidement un référentiel APT local pour des packages aléatoires à l'aide d'une distribution Linux basée sur Debian?

Certaines situations appellent pour installer manuellement un paquet local à l'aide de dpkg -i <packagename>. Parfois, il peut être utile de tirer parti de la fonctionnalité de apt avec cet emballage afin que la question soit la suivante:

Comment créez-vous rapidement un référentiel local pour des packages aléatoires à l'aide d'une distribution Linux basée sur Debian - comme Xubuntu 13.04/Ubuntu?

21
user44370

Cela devrait être distingué de la situation où vous essayez de répliquer un arbre de package complet à partir d'un référentiel officiel et priorité de sources de réglage fin . Les emballages aléatoires signifient des packages virtuels, des packages compilés localement ou copiés de manière fragile à des fins de test. Voici une installation simple basée sur maintenant Documentation obsolète .

Tout d'abord, faites un répertoire pour héberger les packages:

mkdir <packagedir>

Puis déplacez vos fichiers de package .deb là-bas. Exécutez cette commande dans le répertoire ci-dessus celui que nous venons de créer (assurez-vous que les autorisations permettent cela!):

dpkg-scanpackages packagedir | gzip > packagedir/Packages.gz

Créez maintenant un fichier avec une extension .list dans /etc/apt/sources.list.d/ Avec le contenu:

deb [trusted=yes] file:///path_to_dir_above_packagedir packagedir/

et mettre à jour la base de données APT:

apt-get update

À ce stade, les packages de notre référentiel local peuvent être installés comme n'importe quel autre paquet utilisant apt-get install <packagename>. Lorsque de nouveaux forfaits sont ajoutés au référentiel local, le prescrit dpkg-scanpackages La commande doit être émise à nouveau pour mettre à jour le fichier packages.gz Fichier et apt doit être mis à jour avant que les nouveaux packages soient mis à disposition. Espérons que cela peut être utile pour test .

30
user44370

Si vous souhaitez créer un repo avec la structure complète dont vous avez besoin pour des outils tels que DebootsTrap, la manière la plus simple que j'ai trouvée est la suivante:

  1. Créez un répertoire de référentiel.

    # mkdir -p /opt/debian
    
  2. Créer un sous-répertoire de conf.

    # mkdir /opt/debian/conf
    
  3. Créez un fichier/opt/opt/Debian/Conf/Distributions avec des contenus tels que celui-ci (ajustez le cas échéant pour la distribution que vous utilisez):

    Label: Local APT repository
    Codename: jessie
    Architectures: AMD64
    Components: main
    Description: Local APT repository for debootstrap
    
  4. Importez votre colis avec Reprendre.

    # reprepro -b /opt/debian includedeb jessie /path/to/package.db
    
  5. Importer un tas de packages avec une coquille pour la boucle, par ex. tout de votre APT cache:

    # cd /var/cache/apt/archives
    # for DEB in *.deb; do reprepro -b /opt/debian includedeb jessie $DEB; done
    

Cela créera une archive non signée. Il peut être utilisé avec debootstrap avec l'option -NO-Check-GPG.

2
Andrew Klaassen