Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/03/2009, à 15:14

thebachman

Problème de mise à jour après création de dépôt

Bonjour,

Je suis en train de créer un dépôt, avec ce tuto--->http://wiki.ombrenoire.net/Debian_-_D%C … enDepot.sh.
La création se passe bien "bien" on va dire, mais au moment d'ajouter le nom du dépôt dans le source.list, puis de mettre tout cela à jour, j'ai cette erreur dans synaptic:

E: Problem parsing dependency Depends
E: Erreur apparue lors du traitement de Mercury-Messenger (NewVersion1)
E: Problem with MergeList /var/lib/apt/lists/monsite.info_mercury_ubuntu_Packages
E: Les listes de paquets ou le fichier « status » ne peuvent être analysés ou lus.

Je ne comprends pas d'où vient le soucis.
Quelqu'un pourrait-il me donner un coup de main s'il vous plait?

Hors ligne

#2 Le 14/03/2009, à 15:20

wido

Re : Problème de mise à jour après création de dépôt

quelle est ton script?

j'avais fait un script qui fonctionnait:

#!/bin/bash
cd ~/Bureau/ubuntu_local/
rename 's/%3a/:/' *.deb
dpkg-scanpackages . /dev/null |gzip -9c > Packages.gz

#deb file:/media/disk/ubuntu_local  ./

Dernière modification par wido (Le 14/03/2009, à 15:21)

Hors ligne

#3 Le 14/03/2009, à 15:21

thebachman

Re : Problème de mise à jour après création de dépôt

celui avec lequel j'ai généré mon dépot?

Hors ligne

#4 Le 14/03/2009, à 15:23

wido

Re : Problème de mise à jour après création de dépôt

oui colle le sur le forum.

Hors ligne

#5 Le 14/03/2009, à 15:25

thebachman

Re : Problème de mise à jour après création de dépôt

Ok il est un poil long.

#!/bin/bash
# Generateur Depot
# Version 0.5d - 24 Juin 2008
# Script sous Licence GPL
# Copyleft 2008 - OmBreNoiRe - http://wiki.ombrenoire.net

################### VALEURS A MODIFIER ######################
# Ce que vous voulez :)
origine="Ubuntu - www.mercury.im"

# L'adresse http ou se trouve le depot
# Exemple : "debian.ombrenoire.net"
# ou encore "debian.ombrenoire.net/mondepot/"
label="thebachman.info/mercury"

# Les distributions prisent en charge (separees par 1 espace)
# NB : Il faut que pour chaque distribution, un repertoire
# du meme nom existe a la racine du site.
# Exemple : "sarge etch lenny"
suite="ubuntu"

# Les architectures prises en charge
architectures="all"

# Components (normalement vous n'avez pas a modifier)
components="main"

#############################################################
##############CODE (NE PAS MODIFIER SANS RAISON)#############
#############################################################

# Si le nombre de parametre n'est pas 1, on affiche l'usage
if [ $# -ne 1 ]
then
    nom=`echo $0 | sed 's/^..//g'`
    echo Usage : $nom \<racine de votre site\> 1>&2
    echo Exemple : $nom /var/www/depot
    exit 1
fi

# On demande la passphrase
echo "Quel est votre passphrase pour la cle GnuPG ?"
stty -echo
read motdepasse
stty echo
touch testgpg.tmp

# On test la passphrase avant de lancer le script
retgpg=`echo $motdepasse | gpg --sign -ba -o testgpg.tmp.gpg --quiet --no-tty --passphrase-fd 0 testgpg.tmp 2>/dev/null ; echo $?`
if [ $retgpg -ne 0 ]
then
    echo ERREUR : la passphrase est incorrecte.
    rm -r testgpg.tmp
    exit 2
fi
rm -f testgpg.tmp testgpg.tmp.gpg

# on va dans le repertoire racine du site (par exemple /var/www/depot)
cd $1
racine=$PWD

# on test si tous les elements de $suite sont bien des repertoires
for rep in $suite
do
  if [ ! -d $racine/$rep ]
  then
      echo "ERREUR : la distribution \"$rep\" n'existe pas, veuillez corriger la variable \"suite\""
      exit 3
  fi
done

# on cree le fichier apt-ftpconfig.tmp.distrib (1 par distrib)
for distrib in $suite
do
echo "
APT::FTPArchive::Release {
  Origin                \"$origine\";
  Label                 \"$label\";
  Suite                 \"$distrib\";
  Architectures         \"$architectures\";
  Components            \"$components\";
}
" > apt-ftpconfig.tmp.$distrib
done

# on efface tous les fichiers (recursif) qui vont etre generes
for rep in $suite
do
  find $rep -name "Release*" -type f -print0 | xargs -0 /bin/rm -f
  find $rep -name "Sources*" -type f -print0 | xargs -0 /bin/rm -f
  find $rep -name "Packages*" -type f -print0 | xargs -0 /bin/rm -f
done

rm -f lst_packages_indiv.tmp 2>/dev/null
rm -f lst_sources_indiv.tmp 2>/dev/null
rm -f add-sources.list.* 2>/dev/null

echo Generation du depot...
# on lance les commandes dans les repertoires de deuxieme niveau (par exemple /var/www/depot/etch/6wall)
lasuite=`echo $suite | sed 's/ /\/|\\.\//g' | sed 's/^/(\\.\//g' | sed 's/$/\/)/g'`
for rep in `find . -depth -maxdepth 2 -mindepth 2 -type d | grep -E $lasuite | grep -v '^\./\..*$' | sed 's/^..//g'`
do
  distrib=`echo $rep | sed 's/\/.*//g'`
  cd $racine/$rep
  apt-ftparchive packages . 2>/dev/null | gzip -f9 > Packages.gz
  zcat Packages.gz | bzip2 > Packages.bz2
  zcat Packages.gz > Packages
  apt-ftparchive sources . 2>/dev/null | gzip -f9 > Sources.gz
  zcat Sources.gz | bzip2 > Sources.bz2
  zcat Sources.gz > Sources
  apt-ftparchive -c $racine/apt-ftpconfig.tmp.$distrib release . > Release.tmp ; mv Release.tmp Release
  echo $motdepasse | gpg --sign -ba -o Release.gpg  --quiet --no-tty --passphrase-fd 0 Release 2>/dev/null
  # on verifie si Packages et Sources n'est pas vide et on affiche la ligne sur /etc/apt/sources.list correspondant
  nbsources=`find . -maxdepth 1 -name "Sources" -size +0c | wc -l`
  nbpackages=`find . -maxdepth 1 -name "Packages" -size +0c | wc -l`
  if [ $nbpackages -ne 0 ]
  then
      echo deb http://$label/$rep ./ >> $racine/lst_packages_indiv.tmp
  fi
  if [ $nbsources -ne 0 ]
  then
      echo \#deb-src http://$label/$rep ./ >> $racine/lst_sources_indiv.tmp
  fi
done

# # on lance les commandes dans les repertoires de deuxieme niveau (par exemple /var/www/depot/etch/6wall)
cd $racine
for rep in $suite
do
  apt-ftparchive packages $rep/ 2>/dev/null | gzip -f9 > $rep/Packages.gz
  zcat $rep/Packages.gz | bzip2 > $rep/Packages.bz2
  zcat $rep/Packages.gz > $rep/Packages
  apt-ftparchive sources $rep/ 2>/dev/null | gzip -f9 > $rep/Sources.gz
  zcat $rep/Sources.gz | bzip2 > $rep/Sources.bz2
  zcat $rep/Sources.gz > $rep/Sources
  apt-ftparchive -c $racine/apt-ftpconfig.tmp.$rep release $rep/ > $rep/Release.tmp ; mv $rep/Release.tmp $rep/Release
  echo $motdepasse | gpg --sign -ba -o $rep/Release.gpg --quiet --no-tty --passphrase-fd 0 $rep/Release 2>/dev/null
  nbsources=`find $rep -maxdepth 1 -name "Sources" -size +0c | wc -l`
  nbpackages=`find $rep -maxdepth 1 -name "Packages" -size +0c | wc -l`
  # Si le repertoire courant n'a pas de paquets (sources et binaires), on efface les fichiers inutiles
  if [ $nbpackages -eq 0 ] && [ $nbsources -eq 0 ]
  then
      find $rep -name "Release*" -type f -print0 | xargs -0 /bin/rm -f
      find $rep -name "Sources*" -type f -print0 | xargs -0 /bin/rm -f
      find $rep -name "Packages*" -type f -print0 | xargs -0 /bin/rm -f 
  fi
  # Si pour le $rep de cette distribution il a bien des paquets
  if [ $nbpackages -ne 0 ] || [ $nbsources -ne 0 ]
  then
      echo Generation de $racine/add-sources.list.$rep...
      echo \# [PAQUET INDIVIDUEL] > add-sources.list.$rep
  fi
  if [ $nbpackages -ne 0 ]
  then
      cat $racine/lst_packages_indiv.tmp | grep /$rep/ >> add-sources.list.$rep
  fi
  if [ $nbsources -ne 0 ]
  then
      echo  >> add-sources.list.$rep
      cat $racine/lst_sources_indiv.tmp | grep /$rep/ >> add-sources.list.$rep
  fi
  if [ $nbpackages -ne 0 ] || [ $nbsources -ne 0 ]
  then
      echo >> add-sources.list.$rep
      echo >> add-sources.list.$rep
      echo \# [TOUS LES PAQUETS DISPONIBLES] >> add-sources.list.$rep
  fi
  if [ $nbpackages -ne 0 ]
  then
      echo deb http://$label $rep/ >> add-sources.list.$rep
  fi
  if [ $nbsources -ne 0 ]
  then
      echo \#deb-src http://$label $rep/ >> add-sources.list.$rep
  fi
  rm -f $racine/apt-ftpconfig.tmp.$rep
done
rm -f $racine/lst_packages_indiv.tmp
rm -f $racine/lst_sources_indiv.tmp

exit 0

Hors ligne

#6 Le 14/03/2009, à 16:17

thebachman

Re : Problème de mise à jour après création de dépôt

Même soucis avec ton script sad

Hors ligne

#7 Le 14/03/2009, à 16:31

wido

Re : Problème de mise à jour après création de dépôt

tu n'as pas de fichier Packages.gz ?

regarde si ce n'est pas un paquet , mon script était pour un dépot local, j'avais du rajouté des dossiers pour que ce soit détecté par ubuntu.

Hors ligne

#8 Le 14/03/2009, à 16:50

thebachman

Re : Problème de mise à jour après création de dépôt

j'ai bien un Packages.gz mais ça ne fonctionne pas sad

Je vais continuer à chercher...

Hors ligne

#9 Le 14/03/2009, à 17:09

wido

Re : Problème de mise à jour après création de dépôt

il faut peut-être le déplacer comme dans un vrai dépot.

comme dans : http://fr.archive.ubuntu.com/ubuntu/dis … nary-i386/

par exemple:
http://tonsite.com/ubuntu/dists/intrepi … ackages.gz
et pour tes fichiers:
http://tonsite.com/ubuntu/pool/main/truc.deb

et pour un dépot local :

mkdir ~/Bureau/tondepot/ubuntu/dists/intrepid/main/binary-i386/
mkdir ~/Bureau/tondepot/ubuntu/pool/main/
cd ~/Bureau/tondepot/ubuntu/pool/main/
rename 's/%3a/:/' *.deb
dpkg-scanpackages . /dev/null |gzip -9c > Packages.gz
cp ./Packages.gz ~/Bureau/tondepot/ubuntu/dists/intrepid/main/binary-i386/
exit 0

j'ai fait un script sans avoir ubuntu , mais tu peux toujours tester.

Hors ligne

#10 Le 14/03/2009, à 18:44

thebachman

Re : Problème de mise à jour après création de dépôt

Bon alors ça avance!
Merci pour ton aide.

Je prends des idées ici ou là. Mais il me reste un soucis.
Dans synaptic au moment de mettre à jour mon dépôt, j'ai cette erreur:

Impossible de récupérer http://thebachman.info/ubuntu/Packages.gz  404 Not Found

alors que j'ai bien ce fichier dans mon répertoire sur le serveur, mais je pense que j'ai un problème de droit, parce que si je vais à cette adresse j'ai:
Error 403 - Forbidden

L'accès au fichier requiert une autorisation.

Dernière modification par thebachman (Le 14/03/2009, à 18:56)

Hors ligne

#11 Le 14/03/2009, à 22:27

wido

Re : Problème de mise à jour après création de dépôt

chmod 755 http://thebachman.info/ubuntu/Packages.gz

chmod 755: tout le monde peut lire et exécuter,seul le proprio peut le modifier

Hors ligne

#12 Le 14/03/2009, à 22:50

thebachman

Re : Problème de mise à jour après création de dépôt

Bon ben retour à la case départ.....:(

Même erreur que dans le post 1

Hors ligne