[Résolu] - Depot local

Bonjour,

Il y’a quelques semaines je me suis créer un referenciel local pour ne télécharger qu’une seule fois au lieu de deux fois.

Mon referenciel ce trouve sur mon serveur2. Quand je fais un apt-get update sur mon serveur01, il me trouve bien les mises à jour. Quand je fais un apt-get upgrade ou dist-upgrade, il me télécharge bien les binaires.

Sauf qu’il me fais une erreur404 sur des binaires aillant des % dans leur noms.
Du coup je ne peut pas les télécharger, sauf quand je tranforme le % en _ et que je me fais un wget et un dpkg -i manuel des paquet ne passant pas.

Je ne comprend pas pourquoi les % ne sont pas pris en compte.
Le referenciel est simple il est comme ceci /home/debian/dists/testing-local/main/binary-i386/
Le Packages.gz ce trouve dans binary-i386 comme le Release et les binaires à la la racine de ce repertoire.

Une idée sur le pourquoi? Merci.

Comment partagez vous votre dépot ? FTP ? Quel serveur ? Configuration ? HTTP ? Quel serveur ? Configuration ?

ed: trop vite, relire ! trop vite, relire !
paflechien:
quels paquets, par exemple, contiennent le % ?
sinon, c’est si tu essayes de les installer directement avec apt-get, ou est ce que ca fait la même chose quand ils sont téléchargés comme dépendances ?

Et sinon, pourquoi ne pas utiliser les outils debian faits pour cacher les paquets debian, comme apt-cacher ou apt-proxy ?

Je rapelle que je suis tout nouveau sous linux! Un peu près 3 mois d’utilisation, et j’ai tellement de chose à apprendre.

Je passe par apache.
Ensuite, tous les paquets ayant des % ne passent pas, par exemple

zlib1g_1%3a1.2.3-11_i386.deb vim-common_1%3a6.4-007+1_i386.deb vim-runtime_1%3a6.4-007+1_all.deb unrar_1%3a3.5.4-1_i386.deb ssh_1%3a4.2p1-7_all.deb squirrelmail_2%3a1.4.6-1_all.deb

Et j’en passe plein!

En gros là pour installé les paquet aillant des % je vais cp squirrelmail_2%3a1.4.6-1_all.deb squirrelmail_2_3a1.4.6-1_all.deb
et sur mon serveur1 wget 192.168.77.2/debian/testin-local … -1_all.deb
puis dpkg -i squirrelmail_2_3a1.4.6-1_all.deb et là je relance mon apt-get upgrade pour que tout sois installé

Sur mon serveur01 mon source.list utilise seulement le depot du serveur02. apt-cacher et proxy je ne connais pas mais je vais regarder à quoi sa correspond.

bon, en fait les paquets qui posent problême sont les paquets contenant un : dans le numero de version (%3a en ascii octal, c’est “:” ).
Ils auraient dû s’enregistrer sous le nom, par exemple zlib1g_1:1.2.3-11_i386.deb.
Le nom a dû être “manglé” lors de la copie du fichier, c’est pour ça que je te demandais comment tu avais recopié les fichiers dans le dépot (et pas comment tu installes un paquet depuis le dépot).
Tu peux si tu veux renommer correctement tes fichiers un à un avec par exemple:
mv zlib1g_1%3a1.2.3-11_i386.deb zlib1g_1:1.2.3-11_i386.deb

Et une qui peut marcher peut être aussi pour tout renommer d’un coup, avec un peu de chance:
mv %3a :

Humm okay, je testerai celà ce soir alors.

Merci :wink:

Bonjour,

Je veut utiliser cette commande mv *%3a* *\:*

Je me place dans mon repertoire et je la rentre et j’obtient un beau message d’erreur:

mv *%3a* *\:* mv: la cible `*:*' n'est pas un répertoire

Par contre le première solution fonctionne. Mais je ne me vois pas renommer tous les fichiers tous les jours! J’utilise une petit script que j’ai créer et qu’il ce charge de mettre à jour mon référenciel via une tache cron, donc sa serais pratique que cette commande fonctionne.

Merci

non, désolé, je n’ai pas ça en tête comme ça.
Je te rappelles qu’il y a des paquets debian pour ce que tu cherches à faire.

Je viens d’adopter apt-cacher, je test et je verrais! Merci :wink:

Humoui, c’est bien ce que je pensais, apt-cacher ne me convient pas du tout, sur mon 1er serveur, il va télécharger les packages sur le net, et moi je veut qu’il utilise ceux du serveur2.

tu l’as bien installé sur la machine ou tu avais mis ton cache actuel, et configuré le sources.list de l’autre pour qu’il prenne ses paquet sur la machine de cache ?
Qu’est ce que tu appelles 1e machine et 2e machine ?

Apt-cacher est installer là ou y’a bien mon cache sur le serveur2.
Le serveur1 possède une petit disque, donc je vide son cache.
Le serveur2 est un serveur de fichier base de donnée, mail, et apache, et le serveur1 partage internet, apache également sur un autre port que le 80.

Apt-cacher est configurer, et démarrer sur le serveur2.
Sur le serveur1 j’ai modifié mon source.list en

Je lance un apt-get update, et il va chercher les Packages à partir du net, il ne prend pas ceux du serveur2.

Je regarde dans 192.168.77.2/apt-cacher/ il y’a mon configuration, et je vois une autre manière que j’ai trouvé sur Andesi http://www.andesi.org/index.php?node=27#A14

Donc je vire ma ligne de dessus et je colle celle-ci

J’autorise ce port via iptables, je lance mon apt-get update et il va toujours chercher les packages via le net.

quote="paflechien"Je lance un apt-get update, et il va chercher les Packages à partir du net, il ne prend pas ceux du serveur2. [/quote]Tu as bien sûr commencé par faire un “update” avant d’essayer d’installer des paquets :wink: ?
2 ême point: tu es sûr que c’est bien la machine cliente, et pas le cacher qui télécharge ?[quote=“paflechien”]Je regarde dans 192.168.77.2/apt-cacher/ il y’a mon configuration, et je vois une autre manière que j’ai trouvé sur Andesi http://www.andesi.org/index.php?node=27#A14

Donc je vire ma ligne de dessus et je colle celle-ci

J’autorise ce port via iptables, je lance mon apt-get update et il va toujours chercher les packages via le net.[/quote]nan, ben sinon, ça a l’air cohérent, mais si ca va chercher des trucs sur le net, ca peut être normal, si c’est ton cacher qui va dl un paquet qu’on lui demande, et qui n’est pas dans son cache…

Oui je lance bien un apt-get update

J’ai fais un apt-get update && dist-upgrade sur mon serveur2 avant d’avoir installé apt-cacher donc mon serveur2 est à jour.

Normalement en faisant un apt-get update sur le serveur1 il ne devrais pas télécharger les packages via le net mais prend ceux du serveur2.

Je n’ai pas encore lancé d’apt-get dist-upgrade ou bien apt-get install paquetx sur le serveur1.

Ce que je veut en faite, c’est que le serveur1 ne ce connecte pas du tout sur le net. Et avec apt-cacher sa sera le cas. Tout comme apt-proxy je pense.
Ce que j’avais bricolé fonctionne à merveille, sauf les paquets ayant des % ne passe pas :frowning:

Pourquoi celà, la semaine qui arrive je passe en 512k étendu, c’est à dire en re-adsl et j’aurais approximativement 13Ko/s en download. En attendant l’adsl2 d’ici 4 ou 5 mois. Donc je veut économiser la bande passante.

bon, je suis moi même en 512 avec 2 machines, et je ne suis jamais gèné, même quand ma femme écoute de la musique et que je fais un update, j’ai une bonne réactivité du web.
Enfin sinon, au dela d’apt-cacher, qui s’il est bien configuuré, ne télécharge qu’une fois les choses (lorsqu’on les lui demande pour la première fois), j’ai une proposition pour complèter ta solution maison.
Tu crées un script qui fait le renommage#!/bin/sh mv $1 `echo $1 | sed -e "s/%3a/:/g"`
j’ai pas testé chez moi, dc c’est peut être qqchose comme
sed -e "s/%3a/:/g"
bon, mais une fois que tu as ton script qui gère le renommage correctement (il doit y avoir d’autre cas que “:” à traiter), la commande pour traiter tout le répertoire d’un coup va être:

Impécable matt :slightly_smiling: Un vrai chef :wink:

Merci