Je souhaite créer mon propre référentiel local sur mon réseau local, afin que les machines du réseau local puissent se mettre à jour et se mettre à niveau. Je souhaite télécharger les packages et les stocker sur mon serveur local afin de pouvoir les mettre à jour, mettre à niveau, installer, etc. sans utiliser Internet.
apt
repository
grooveplex
la source
la source
Réponses:
À partir du wiki d'aide Ubuntu :
la source
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
. Que/dev/null
fait-il là J'ai lu la page de manuel aussi, mais ce n'était pas très clair.* Pour créer un référentiel hors ligne sur un réseau local *
Installez un serveur Web Apache local
Par défaut, le paquet Apache de Debian créera un site Web sous
/var/www
sur votre système. Pour notre propos, c'est bien, il n'y a donc aucune raison de faire autre chose. Vous pouvez facilement le tester en pointant sur votre navigateur favori.http://localhost
Vous devriez voir la page Web de post-installation par défaut qui est actuellement stockée dans/var/www/index.html
Créer un répertoire du référentiel de paquets Debian,
choisi pour créer un répertoire.
/var/www/debs
pour ça. Sous celui-ci, vous devez créer des répertoires "architecture", un pour chaque architecture à prendre en charge. Si vous utilisez un seul ordinateur (ou type d’ordinateur), vous n’en aurez alors besoin que d’un seul: généralement «i386» pour les systèmes 32 bits ou «amd64» pour 64 bits. Si vous utilisez une autre architecture, je suppose que vous êtes probablement déjà au courant. Maintenant, copiez simplement les fichiers de package ".deb" pour une architecture donnée dans les répertoires appropriés. Si vous pointez maintenant votre navigateur Web favori vershttp://localhost/debs/amd64
(par exemple), vous verrez une liste des packages pour les systèmes 64 bits.Créer un fichier Packages.gz
Nous devons maintenant créer un fichier catalogue que APT pourra utiliser. Ceci est fait avec un utilitaire appelé "dpkg-scanpackages". Ici'
Faire connaître le référentiel à APT
Il ne reste plus qu’à informer APT de votre référentiel. Pour cela, vous devez mettre à jour votre fichier /etc/apt/sources.list. Vous aurez besoin d'une entrée comme celle-ci:
J'ai utilisé le nom d'hôte réel de mon système au lieu de localhost. Ainsi, le code est le même pour tous les ordinateurs de mon réseau local, mais localhost fera l'affaire si vous n'exécutez qu'un seul ordinateur.
Maintenant, mettez à jour APT:
la source
/var/www/debs
dans cette réponse par/var/www/html/debs
. Ou vous aurez besoin d'étapes supplémentaires pour éditer manuellement votre configuration d'Apache dans/etc/apache2
Création d'un référentiel authentifié
J'ai jeté un coup d'œil aux réponses ici et sur d'autres sites et la plupart ont le désavantage (grand IMHO) de configurer un référentiel non authentifié. Cela signifie que vous devez exécuter
apt-get
avec--allow-unauthenticated
pour installer des packages à partir de celui-ci. Cela peut constituer un risque pour la sécurité, en particulier dans les scripts où les packages que vous installez ne proviennent peut-être pas tous de votre référentiel local.Notez que je n'ai pas expliqué ici comment le rendre disponible sur le réseau local, mais c'est une configuration assez générique utilisant Apache ou nginx (voir les autres réponses ici).
Configurer le répertoire repo
Ajoutez ensuite une ligne comme celle-ci à
sources.list
:Ajout et suppression de packages
enlever les paquets
ajouter des paquets
Maintenant, lancez le script suivant qui génère les fichiers Packages, Release et InRelease et les signe avec votre clé privée gpg:
Exemple de contenu du fichier conf / distributions
Origin: My_Local_Repo Label: My_Local_Repo Codename: xenial Architectures: i386 amd64 Components: main Description: My local APT repository SignWith: 12345ABC
Liens
https://wiki.debian.org/RepositoryFormat
http://ubuntuforums.org/showthread.php?t=1090731
https://help.ubuntu.com/community/CreateAuthenticatedRepository
la source
date -Rc
, je l'ai corrigée endate -Ru
supposant que c'est ce que vous entendiez par la description de la modificationVous pouvez également configurer le serveur source local par nginx et reprepro:
Installer les paquets Debian
faire des répertoires pour reprepro et le modifier
/ srv / reprepro / ubuntu / conf / distributions
/ srv / reprepro / ubuntu / conf / options
Incluez-le dans reprepro, construisez-le
Config nginx:
/etc/nginx/sites-available/vhost-packages.conf
Optimiser la taille du seau:
/etc/nginx/conf.d/server_names_hash_bucket_size.conf
Référence au lien du guide d'installation
la source
Vous voudrez peut-être jeter un coup d'œil sur
apt-mirror
etapt-cacher
.Voici un guide sur la façon de l’installer et de l’utiliser.
la source
Les instructions dans la réponse de @ BigSack et la publication officielle sur le wiki d'Ubuntu ne fonctionnaient pas pour moi sur Ubuntu 18.04, jusqu'à ce que j'apporte ces deux modifications:
Générer un
Packages
fichier brut, non compressé (lors de l'exécution, le répertoire de travail doit être où se trouvent tous les packages)Ajouter l'entrée suivante dans
/etc/apt/sources.list
la source
Continuer à lire
1 Source: Créer un référentiel Ubuntu
la source
Pour créer un référentiel local hors ligne
1. rendez un répertoire accessible (au moins par root)
la source
J'ai essayé d'utiliser
apt-rdepends
comme dans la réponse sélectionnée, mais lorsque j'ai essayé d'installer le paquet à partir de mon référentiel local, il s'est plaint des dépendances manquantes.apt-rdepends
ne listait pas certaines des dépendances de mon paquet. Je suppose que cela a quelque chose à voir avec le fait, quiapt-cache show
montre plusieurs enregistrements pour cela.Au lieu de cela j'ai utilisé
apt-cache depends
, et cela a fait le tour:Obtenir une liste récursive de dépendances
-i
: dépendances importantes uniquement--recurse
: récursifFaites-en une liste digeste
| tr -d "|,<,>, "
| sed -e 's/^Depends://g' | sed -e 's/^PreDepends://g'
| sort
| uniq > list.txt
Commande complète:
Télécharger les forfaits
Rechercher les packages et les convertir en packages.gz
la source
J'ai fait en utilisant apt-mirror.
C'est bien, mais vous devez disposer de plus d'espace disque, car il sera synchronisé avec le serveur de mise en pension.
la source