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.

#76 Le 07/11/2007, à 21:20

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Alors...

Je suis assez busy, donc ce coup ci j'ai pas cherché à faire le malin.

voici l'essai que tu as proposé :

moi@aldian-PIKACHU:~/Aldian/scripts$ ./apt-off -g dist-upgrade

moi@aldian-PIKACHU:~/Aldian/scripts$ ls

apt-off  apt_off_forum_ubuntu.odt  offline.packages

moi@aldian-PIKACHU:~/Aldian/scripts$ cat offline.packages 

cd ./deb

cd ..

moi@aldian-PIKACHU:~/Aldian/scripts$

pour ce qui est du flambeau je m'en chargerai volontier si j'avais les connaissances requises (ce sera peut être le cas quand j'aurais enfin trouvé la solution de mon problème wink )

Sinon je pense tenter quand j'aurais le temps de voir s'il n'y a pas moyen de bidouiller.

j'ai découvert l'option -d du apt-get qui permet de dowloader les paquets sans les installer. Hélas si cette instru ne va pas forcément nécessiter le sudo, il faut tout de même avoir accès au répertoir par défaut de téléchargement ainsi qu'au source.list du pc et à ses listes de paquets, ce qui n'est pas mon cas malheureusement, j'ai un accès restreint qui fait que dés que j'essaie de remonter au dela de mon dossier personnel, je me retrouve sur l'intranet de l'école.

Hors ligne

#77 Le 07/11/2007, à 21:49

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Désolé, si ça n'a rien de trop urgent je préfère attendre un peu (peut-être jusqu'au début de la semaine prochaine...), ce soir je crois que je vais être débordé. Dès que j'ai 5 minutes j'essaie de le réécrire pour y voir plus clair, parce que c'est vieux tout ça...

Si tu vois pas de nouvelles d'ici mercredi prochain, fais un up pour me rappeler mes promesses. wink

Et si c'est vraiment urgent, ben dis-le, j'essaierai de faire un effort.

Hors ligne

#78 Le 08/11/2007, à 00:49

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Ok. Je viens de jeter un coup d'oeil au script, et je me rends compte que l'option -g devrait t'afficher un message te disant que ton pc n'a jamais vu internet, et que donc il faut que tu ailles faire l'option -c sur un ordi avec internet...

C'est bizarre qu'il n'affiche rien. Peux-tu me donner le résultat des commandes suivantes :

ls /var/lib/apt/lists/
sudo apt-get -qq --print-uris dist-upgrade

Hors ligne

#79 Le 08/11/2007, à 01:11

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Bon, à y regarder de plus près, je pense qu'il est bon d'attendre que j'uploade une nouvelle version avant d'utiliser ce script. Je sais pas comment ça marchait avant (le fait est que ça marchait !), parce que c'est plein de bugs... roll

Aldian, poste quand même le résultat des commandes que je t'ai demandé, au cas où quelque chose aurait changé dans le fonctionnement d'apt. Et au fait, ton ordi a-t-il déjà eu accès à internet ou pas du tout ?

Hors ligne

#80 Le 08/11/2007, à 21:00

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Ce n'est pas urgent, urgent, et je suis moi aussi très occupé. Cependant c'est quand même plutôt ennuyeux car ma distrib est bridée à ses capacités minimum actuellement. Et non mon ordi n'a jamais été connecté à internet. Par contre j'ai installé manuellement un certain nombre de librairies, notamment le RTU de Renzo, ainsi que 3 librairies pour l'accélération 3D et les librairies build-essential & dépendances pour la programmation C.

voici le résultat de l'éxecution demandée :

moi@aldian-PIKACHU:~$ ls /var/lib/apt/lists/
lock
partial
Ubuntu%207.10%20%5fGutsy%20Gibbon%5f%20-%20Release%20i386%20(20071016)_dists_gutsy_main_binary-i386_Packages
Ubuntu%207.10%20%5fGutsy%20Gibbon%5f%20-%20Release%20i386%20(20071016)_dists_gutsy_Release
Ubuntu%207.10%20%5fGutsy%20Gibbon%5f%20-%20Release%20i386%20(20071016)_dists_gutsy_Release.gpg
Ubuntu%207.10%20%5fGutsy%20Gibbon%5f%20-%20Release%20i386%20(20071016)_dists_gutsy_restricted_binary-i386_Packages
moi@aldian-PIKACHU:~$ sudo apt-get -qq --print-uris dist-upgrade
[sudo] password for moi:
moi@aldian-PIKACHU:~$

sinon si tu refais un script, n'hésite pas à avoir la main lourde sur les commentaires. Notre prof d'info aime à nous répéter que lui qui est un professionnel, met parfois autant de commentaire que de code dans un programme. Ca permet de faciliter au maximum la compréhension du programme, ce qui fait que lorsqu'on le reprend au bout de quelque temps ou qu'on le passe à quelqu'un d'autre, la compréhension est immédiate.

Dernière modification par Aldian (Le 08/11/2007, à 21:04)

Hors ligne

#81 Le 08/11/2007, à 21:18

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Aldian a écrit :

sinon si tu refais un script, n'hésite pas à avoir la main lourde sur les commentaires.

T'inquiète pas, j'ai tendance à avoir la main de plus en plus lourde sur les commentaires (ce qui n'était pas tellement le cas à l'époque du script). wink

Hors ligne

#82 Le 10/11/2007, à 17:34

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

A la limite les nouvelles versions de synaptic devraient te simplifier la vie : en effet elles intègrent un générateur de script de téléchargement de paquet. Il y a juste à  cocher les paquets dont on a besoin, et en fonction des dépendances, un script est généré, j'en ai fait un au pif, c'est de ce style là  :

#!/bin/sh
wget -c cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016.1)]/pool/main/a/apr/libapr1_1.2.7-8.2ubuntu1_i386.deb
wget -c cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016.1)]/pool/main/a/apr-util/libaprutil1_1.2.7+dfsg-2build1_i386.deb
wget -c cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071016.1)]/pool/main/a/apache2/apache2-utils_2.2.4-3build1_i386.deb

A priori, les paquets seront téléchargés dans le répertoire courant. Ensuite il y a encore une possibilité du gestionnaire du paquet qui s'appelle : "ajouter les  paquets téléchargés". Ca marche (parfois) mais bon le fait est que lorsque l'on a les bonspaquets sous la main, ce n'est plus très dur de les installer.


Donc finalement tout ce qu'il va rester à  faire, c'est trouver un moyen de télécharger les listes des paquets disponibles dans les dépots avec les dépendances et les adresses des dépots o๠ils sont et de les rajouter à  synaptic pour qu'il puisse s'en servir pour générer son script. Je n'ai malheureusement pas encore trop compris comment tu faisais ça.

Hors ligne

#83 Le 20/11/2007, à 21:18

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Je continue à  l'occasion à  explorer ton code. Nouvel essai cet après midi de mise à  jour de la liste des paquets en utilisant la commande du script :

sudo apt-get -qq --print-uris install dist-upgrade >> toto.txt
E: Impossible de trouver le paquet dist-upgrade

apparemment l'option dist-upgrade n'est pas reconnue et dist-upgrade est considéré comme un paquet introuvable. Faudra que je recherche pou voir si elle a changé de nom sous gusty.

Hors ligne

#84 Le 20/11/2007, à 22:33

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

C'est normal, enlève le "install" :

sudo apt-get -qq --print-uris dist-upgrade >> toto.txt

Merci du up, je vais essayer de voir ça ce soir et demain. smile

Hors ligne

#85 Le 21/11/2007, à 00:15

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Bon, j'ai pas d'Ubuntu sous la main, donc si toi ou quelqu'un d'autre veut bien servir de bêta-testeur... smile

#!/bin/bash

FAILURE=1
SUCCESS=0

# Répertoires
CURRENTDIR="${PWD}/"
CONFIGDIR="config_files/"
DEB="deb/"
PARTIAL="${DEB}/partial/"
LISTDIR="/var/lib/apt/lists/"

# Fichiers
CONFIGFILE="config_apt"
OFFLINE="offline.packages"
SOURCE="/etc/apt/sources.list"

# Quelques couleurs
BOLD="\\033[1;39m"
NORMAL="\\033[0;39m"
VERT="\\033[32m"
ROUGE="\\033[31m"
ROSE="\\033[35m"
BLEU="\\033[34m"

OPTIONS="${BOLD}${BLEU}OPTIONS${NORMAL}\n
        \t${VERT}-d${NORMAL} ou${VERT} --download${NORMAL}\n
        \tTélécharge les paquets. Cette option doit être utilisée sur un\n
        \tordinateur disposant d'un système Linux et d'une connexion\n
        \tinternet. Une fois téléchargés, les paquets peuvent être\n
        \tplus ou moins volumineux, aussi prévoyez un support de\n
        \ttransport de capacité suffisante.${BOLD}${ROUGE} N'oubliez pas le fichier\n
        \t${BLEU}${OFFLINE}${NORMAL} !!!${NORMAL}\n\n
        \t${VERT}-g${NORMAL} ou${VERT} --generate${BLEU} [paquet1 paquet2 ...]${NORMAL} ou${BLEU} [dist-upgrade]${NORMAL}\n
        \tGénère la liste des paquets à  télécharger. Cette liste est\n
        \tstockée dans le fichier ${BLEU}${OFFLINE}${NORMAL}.\n\n
        \t${VERT}-h${NORMAL} ou${VERT} --help${NORMAL}\n
        \tAffiche cette aide.\n\n
        \t${VERT}-o${NORMAL} ou${VERT} --options${NORMAL}\n
        \tAffiche les options.\n\n
        \t${VERT}-c${NORMAL} ou${VERT} --configure${NORMAL}\n
        \tTélécharge les fichiers de configuration d'apt.\n\n
        \t${VERT}-x${NORMAL} ou${VERT} --extract${BLEU} [paquet1 paquet2 ...]${NORMAL} ou${BLEU} [dist-upgrade]${NORMAL}\n
        \tExtrait et installe les paquets.\n"

########################################################
## Téléchargement des fichiers de configuration d'apt ##
########################################################
function configure()
{
        # On vérifie que la liste des listes de paquets est bien présente
        if [[ -e ${CONFIGDIR}/${CONFIGFILE} ]]
        then
                cd ${CONFIGDIR}
                sh -x ${CONFIGFILE} || cd ${CURRENTDIR} && return ${FAILURE}
                cd ${CURRENTDIR}
                return ${SUCCESS}
        else
                echo -e "Vous n'avez pas exécuté${VERT} apt-off -g${NORMAL} sur votre ordinateur, ou vous avez supprimé le dossier${VERT} config_files${NORMAL} et le fichier${VERT} config_apt${NORMAL} qu'il contenait... Reprenez la procédure à  zéro."
                return ${FAILURE}
        fi
        return ${FAILURE}
}


################################
## Téléchargement des paquets ##
################################
function download()
{
        if [[ ! -e ${DEB} ]]
        then
                mkdir ${DEB}
        fi
        sh -x ${OFFLINE}
        return ${SUCCESS}
}


############################
## Extraction des paquets ##
############################
function extract()
{
        # Je vois plus trop l'intérêt de ça, mais bon...
        if [[ ! -e ${PARTIAL} ]]
        then
                PARTIAL_CREATED=1
                mkdir ${PARTIAL}
        else
                PARTIAL_CREATED=0
        fi

        # Test des arguments
        if [[ "$#" < 2 ]]
        then
                echo "ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,"
                echo "ou le mot \"dist-upgrade\" !!!"
                exit
        # Cas particulier : mise à  jour
        elif  [[ $2 == "dist-upgrade" ]]
        then
                sudo apt-get -o dir::cache::archives=${PWD}/${DEB} dist-upgrade
        else
                # Liste des paquets à  installer
                for ((i=2; i<="$#"; i++ ))
                do 
                        sudo apt-get -o dir::cache::archives={$PWD}/${DEB} install ${!i}
                done
        fi

        # Un peu de ménage
        if (( ${PARTIAL_CREATED} )); then
                rm -rf ${PARTIAL}
        fi

        return ${SUCCESS}
}


##########################################
## Sélection des paquets à  télécharger  ##    
##########################################
function generate()
{
        # Il faut au moins une liste de paquets
        if [[ `ls ${LISTDIR} | grep binary-i386_Packages | wc -l` == 0 ]]
        then
                # Si toute première utilisation, on prépare la configuration
                if [[ ! -e ${CONFIGDIR} ]]
                then
                        mkdir ${CONFIGDIR}
                        # Déduction des listes de paquets à  télécharger, d'après le sources.list
                        awk '($1=="deb"||$1=="deb-src")&&!match($2,"cdrom"){split($2,A,"/");for(i=4;i<=NF;++i) print "wget -O "A[3]"_"A[4]"_dists_"$3"_"$i"_binary-i386_Packages.gz "$2"dists/"$3"/"$i"/binary-i386/Packages.gz"}' < ${SOURCE} > ${CONFIGDIR}/${CONFIGFILE}
                        # Un message de prévention...
                        echo -e "ATTENTION : Il semblerait que c'est la première fois que vous essayez d'utiliser un dérivé d'apt-get sur cet ordinateur. Afin de terminer la configuration, veuillez exécuter la commande${VERT} apt-off -c${NORMAL} sur un ordinateur disposant d'un accès à  internet, puis poursuivre la procédure."
                        exit
                # Si seconde utilisation, on installe les listes de paquets
                elif [[ `ls ${CONFIGDIR} | grep gz | wc -l` > 0 ]]
                then
                        sudo cp ${CONFIGDIR}/*.gz ${LISTDIR}
                        sudo gunzip ${LISTDIR}*.gz
                # Si l'utilisateur n'a pas bien compris...
                else
                        echo -e "Vous devez d'abord exécuter${VERT} apt-off -c${NORMAL} sur un ordinateur avec internet !"
                        exit
                fi
        fi

        # à‰craser ou mettre à  jour le fichier de paquets à  installer ?
        if [[ -e ${OFFLINE} ]]
        then
                echo "ATTENTION : Le fichier offline.packages existe déjà , voulez-vous l'écraser (si"
                echo "non, les paquets seront ajoutés à  la liste) ? (o/n)"
                read ECRASE
        fi

        # à‰craser ou mettre à  jour, suite...
        if [[ $ECRASE == o ]]
        then
                echo "cd ${DEB}" > ${OFFLINE}
        else
                echo "cd ${DEB}" >> ${OFFLINE}
        fi

        # Pas assez d'arguments !
        if [[ "$#" < 2 ]]
        then
                echo "ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,"
                echo "ou le mot \"dist-upgrade\" !!!"
                exit
        # Cas particulier : mise à  jour
        elif [[ $2 == "dist-upgrade" ]]
        then
                sudo apt-get -qq --print-uris dist-upgrade > .offline_tmp
        else
                # Liste des paquets à  installer
                for ((i=2; i<="$#"; i++ ))
                do 
                        sudo apt-get -qq --print-uris install ${!i} >> .offline_tmp
                done
        fi

        # Préparation du fichier de paquets à  installer
        awk '{print "wget -O " $2 " " $1}' < .offline_tmp >> ${OFFLINE}
        echo "cd .." >> ${OFFLINE}

#### Lignes à  décommenter pour Windows :
#       awk '{print $1}' < .offline_tmp >> offline.packages_url
#       awk '{print $2}' < .offline_tmp >> offline.packages_list

        rm -f .offline_tmp
}

# Un peu d'aide...
function printhelp()
{
        ESSAI="\\033[2J\\033[0;0f${BOLD}${BLEU}NOM${NORMAL}\n
        \tapt-off\n
        \n${BOLD}${BLEU}SYNOPSIS${NORMAL}\n
        \t${VERT}apt-off [option]${NORMAL}\n
        \n${BOLD}${BLEU}DESCRIPTION${NORMAL}\n
        \t${VERT}apt-off${NORMAL} est un script destiné à  permettre l'utilisation de\n
        \tl'utilitaire apt sur un ordinateur ne possédant pas de connexion à \n
        \tinternet. Il procède en trois étapes, devant être effectuées dans\n
        \tle répertoire contenant le fichier exécutable apt-off :\n
        \t1- sélection des paquets à  installer,\n
        \t2- téléchargement des paquets ; cette étape doit être effectuée sur\n
        \tun ordinateur disposant d'un système Linux (elle${BOLD} ne nécessite pas${NORMAL} apt,\n
        \tmais utilise${VERT} wget${NORMAL} ; si vous n'avez accès qu'à  un système Windows, vous\n
        \tdevrez décommenter une des deux lignes dédiées à  la fin du fichier\n
        \tapt-off et télécharger manuellement les paquets listés dans le fichier\n
        \t${VERT}offline.packages_url${NORMAL} ou${VERT} offline.packages_list${NORMAL}) et connecté à  internet,\n
        \t3- installation des paquets.\n
        \n${BOLD}${BLEU}AVERTISSEMENT${NORMAL}\n
        \t${BOLD}${ROUGE}ATTENTION :${NORMAL} l'installation de paquets et a fortiori la mise à  jour avec\n
        \tl'option dist-upgrade ne sont pas sans risques. Il est donc fortement\n
        \tconseillé, avant toute utilisation de ce programme, de simuler ces\n
        \topérations avec apt-get afin d'être certain de vouloir effectuer les\n
        \tmodifications (lancez simplement${VERT} apt-get install liste_de_paquets${NORMAL}\n
        \tou${VERT} apt-get dist-upgrade${NORMAL}). L'auteur ne saura être tenu pour responsable\n
        \ten cas de problème.\n"

        ESSAI="${ESSAI}\n${OPTIONS}\n${BOLD}${BLEU}COPYRIGHT${NORMAL}\n
        \tCopyright 2006, Goulven Guillard.\n
        \tCe programme est copyleft, la copie, la modification et la diffusion\n
        \tsont autorisées et encouragées tant qu'elles ne sont pas à  but lucratif.\n
        \tReportez les bugs à  ${BLEU}lecotegougdelaforce [at] free.fr${NORMAL}.\n"

        echo -e $ESSAI | less -R

        return ${SUCCESS}
}

# Liste des options disponibles
function usage()
{
        echo -e ${OPTIONS}
        return ${SUCCESS}
}


# Lisons les options
while getopts "cdg:hox:-:" OPTION
do
        case $OPTION in
                c ) configure;;
                d ) download;;
                g ) generate;;
                h ) printhelp;;
                o ) usage;;
                x ) extract;;
                # Cas particulier : les options longues
                - )
                        case $OPTARG in
                                configure )     configure;;
                                download )      download;;
                                extract )       extract;;
                                generate )      generate;;
                                help )          printhelp;;
                                options )       usage;;
                                * )
                        esac;;
                # par défaut
                * ) usage;;
        esac
done

Dernière modification par Skippy le Grand Gourou (Le 21/11/2007, à 18:15)

Hors ligne

#86 Le 21/11/2007, à 17:14

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Bonjour et bravo pour ce nouveau script qui rend vraiment bien smile



Alors je l'ai testé.

Je précise pour les potentiels autres testeurs qui comme moi auraient l'idée de le récupérer via un ordi tournant sous windows que pour éviter un gentil bug du style

$ ./apt-off -h
bash: ./apt-off : /bin/bash^M : mauvais interpréteur: Aucun fichier ou répertoire de ce type

ou encore

$ ./apt-off -h
 : commande introuvable
 : commande introuvable
 : commande introuvable
 : commande introuvable
 : commande introuvable
' inattendu line 49: erreur de syntaxe pres du jeton `
'/apt-off: line 49: `function configure()

la commande

dos2unix apt-off

peut servir.


Ce petit apparté fait, il y a quelques petits bugs d'un genre ennuyeux :
Tout d'abord les balises de mise en forme du texte ne sont plus reconnues :

        ESC[32mapt-offESC[0;39m est un script destinàƒÂ© àƒ  permettre l'utilisation de
        l'utilitaire apt sur un ordinateur ne possàƒÂ©dant pas de connexion àƒ 
        internet. Il procàƒÂ¨de en trois àƒÂ©tapes, devant àƒÂªtre effectuàƒÂ©es dans
        le ràƒÂ©pertoire contenant le fichier exàƒÂ©cutable apt-off :
        1- sàƒÂ©lection des paquets àƒ  installer,
        2- tàƒÂ©làƒÂ©chargement des paquets ; cette àƒÂ©tape doit àƒÂªtre effectuàƒÂ©e sur
        un ordinateur disposant d'un systàƒÂ¨me Linux (elleESC[1;39m ne nàƒÂ©cessite pasESC[0;39m apt,
        mais utiliseESC[32m wgetESC[0;39m ; si vous n'avez accàƒÂ¨s qu'àƒ  un systàƒÂ¨me Windows, vous
        devrez dàƒÂ©commenter une des deux lignes dàƒÂ©diàƒÂ©es àƒ  la fin du fichier
        apt-off et tàƒÂ©làƒÂ©charger manuellement les paquets listàƒÂ©s dans le fichier
        ESC[32moffline.packages_urlESC[0;39m ouESC[32m offline.packages_listESC[0;39m) et connectàƒÂ© àƒ  internet,
        3- installation des paquets.
 
ESC[1;39mESC[34mAVERTISSEMENTESC[0;39m
        ESC[1;39mESC[31mATTENTION :ESC[0;39m l'installation de paquets et a fortiori la mise àƒ  jour avec
        l'option dist-upgrade ne sont pas sans risques. Il est donc fortement
        conseillàƒÂ©, avant toute utilisation de ce programme, de simuler ces
        opàƒÂ©rations avec apt-get afin d'àƒÂªtre certain de vouloir effectuer les
        modifications (lancez simplementESC[32m apt-get install liste_de_paquetsESC[0;39m
        ouESC[32m apt-get dist-upgradeESC[0;39m). L'auteur ne saura àƒÂªtre tenu pour responsable
        en cas de problàƒÂ¨me.

ESC[1;39mESC[34mOPTIONSESC[0;39m
        ESC[32m-dESC[0;39m ouESC[32m --downloadESC[0;39m
        TàƒÂ©làƒÂ©charge les paquets. Cette option doit àƒÂªtre utilisàƒÂ©e sur un
        ordinateur disposant d'un systàƒÂ¨me Linux et d'une connexion
        internet. Une fois tàƒÂ©làƒÂ©chargàƒÂ©s, les paquets peuvent àƒÂªtre
        plus ou moins volumineux, aussi pràƒÂ©voyez un support de
        transport de capacitàƒÂ© suffisante.ESC[1;39mESC[31m N'oubliez pas le fichier
        ESC[34moffline.packagesESC[0;39m !!!ESC[0;39m

        ESC[32m-gESC[0;39m ouESC[32m --generateESC[34m [paquet1 paquet2 ...]ESC[0;39m ouESC[34m [dist-upgrade]ESC[0;39m
        GàƒÂ©nàƒÂ¨re la liste des paquets àƒ  tàƒÂ©làƒÂ©charger. Cette liste est
        stockàƒÂ©e dans le fichier ESC[34moffline.packagesESC[0;39m.

        ESC[32m-hESC[0;39m ouESC[32m --helpESC[0;39m
        Affiche cette aide.

        ESC[32m-oESC[0;39m ouESC[32m --optionsESC[0;39m
        Affiche les options.

        ESC[32m-cESC[0;39m ouESC[32m --configureESC[0;39m
        TàƒÂ©làƒÂ©charge les fichiers de configuration d'apt.

        ESC[32m-xESC[0;39m ouESC[32m --extractESC[34m [paquet1 paquet2 ...]ESC[0;39m ouESC[34m [dist-upgrade]ESC[0;39m
        Extrait et installe les paquets.

ESC[1;39mESC[34mCOPYRIGHTESC[0;39m
        Copyright 2006, Goulven Guillard.
        Ce programme est copyleft, la copie, la modification et la diffusion
        sont autorisàƒÂ©es et encouragàƒÂ©es tant qu'elles ne sont pas àƒ  but lucratif.
        Reportez les bugs àƒ  ESC[34mlecotegougdelaforce [at] free.frESC[0;39m.

(END)

(les caractères parasites en a tréma sont dus au fait que j'ai oublié de faire unix2dos)

ensuite la quantité $# semble valoir 0 quoi qu'on fasse :

aldian@a-d:~/scripts$ ./apt-off -g dist-upgrade
ATTENTION : Le fichier offline.packages existe dàƒÂ©jàƒ , voulez-vous l'àƒÂ©craser (si
non, les paquets seront ajoutàƒÂ©s àƒ  la liste) ? (o/n)
o
ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,
ou le mot "dist-upgrade" !!!


aldian@a-d:~/scripts$ ./apt-off -g aspell-fr
ATTENTION : Le fichier offline.packages existe dàƒÂ©jàƒ , voulez-vous l'àƒÂ©craser (si
non, les paquets seront ajoutàƒÂ©s àƒ  la liste) ? (o/n)
o
ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,
ou le mot "dist-upgrade" !!!


#aldian // j'ajoute echo "$#" apràƒÂ¨s l'avertissement


aldian@a-d:~/scripts$ ./apt-off -g dist-upgrade
ATTENTION : Le fichier offline.packages existe dàƒÂ©jàƒ , voulez-vous l'àƒÂ©craser (si
non, les paquets seront ajoutàƒÂ©s àƒ  la liste) ? (o/n)
o
ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,
ou le mot "dist-upgrade" !!!
0


aldian@a-d:~/scripts$ ./apt-off -g dist-upgrade
ATTENTION : Le fichier offline.packages existe dàƒÂ©jàƒ , voulez-vous l'àƒÂ©craser (si
non, les paquets seront ajoutàƒÂ©s àƒ  la liste) ? (o/n)
o
ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,
ou le mot "dist-upgrade" !!!
0

j'ai bien sûr tenté de modifier un peu le script par analogie avec l'ancien qui marche sans problème sur ces points précis là , mais je ne suis arrivé à  rien sad

Hors ligne

#87 Le 21/11/2007, à 18:15

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Aldian a écrit :

Bonjour et bravo pour ce nouveau script qui rend vraiment bien smile

Merci, mais tant que ça fonctionne pas... hmm

Aldian a écrit :

Tout d'abord les balises de mise en forme du texte ne sont plus reconnues

Ok, il suffit de rajouter l'option -R derrière le "less" de la fonction "help".

Aldian a écrit :

ensuite la quantité $# semble valoir 0 quoi qu'on fasse

Ok, ça doit venir de getopts. Je regarderai ça de plus près (tard) ce soir. smile

Hors ligne

#88 Le 21/11/2007, à 22:32

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Ok, ça devrait être mieux :

#!/bin/bash

FAILURE=1
SUCCESS=0

# Répertoires
CURRENTDIR="${PWD}/"
CONFIGDIR="config_files/"
DEB="deb/"
PARTIAL="${DEB}/partial/"
LISTDIR="/var/lib/apt/lists/"

# Fichiers
CONFIGFILE="config_apt"
OFFLINE="offline.packages"
SOURCE="/etc/apt/sources.list"

# Quelques couleurs
BOLD="\\033[1;39m"
NORMAL="\\033[0;39m"
VERT="\\033[32m"
ROUGE="\\033[31m"
ROSE="\\033[35m"
BLEU="\\033[34m"

OPTIONS="${BOLD}${BLEU}OPTIONS${NORMAL}\n
        \t${VERT}-d${NORMAL} ou${VERT} --download${NORMAL}\n
        \tTélécharge les paquets. Cette option doit être utilisée sur un\n
        \tordinateur disposant d'un système Linux et d'une connexion\n
        \tinternet. Une fois téléchargés, les paquets peuvent être\n
        \tplus ou moins volumineux, aussi prévoyez un support de\n
        \ttransport de capacité suffisante.${BOLD}${ROUGE} N'oubliez pas le fichier\n
        \t${BLEU}${OFFLINE}${NORMAL} !!!${NORMAL}\n\n
        \t${VERT}-g${NORMAL} ou${VERT} --generate${BLEU} [paquet1 paquet2 ...]${NORMAL} ou${BLEU} [dist-upgrade]${NORMAL}\n
        \tGénère la liste des paquets à  télécharger. Cette liste est\n
        \tstockée dans le fichier ${BLEU}${OFFLINE}${NORMAL}.\n\n
        \t${VERT}-h${NORMAL} ou${VERT} --help${NORMAL}\n
        \tAffiche cette aide.\n\n
        \t${VERT}-o${NORMAL} ou${VERT} --options${NORMAL}\n
        \tAffiche les options.\n\n
        \t${VERT}-c${NORMAL} ou${VERT} --configure${NORMAL}\n
        \tTélécharge les fichiers de configuration d'apt.\n\n
        \t${VERT}-x${NORMAL} ou${VERT} --extract${BLEU} [paquet1 paquet2 ...]${NORMAL} ou${BLEU} [dist-upgrade]${NORMAL}\n
        \tExtrait et installe les paquets.\n"

########################################################
## Téléchargement des fichiers de configuration d'apt ##
########################################################
function configure()
{
        # On vérifie que la liste des listes de paquets est bien présente
        if [[ -e ${CONFIGDIR}/${CONFIGFILE} ]]
        then
                cd ${CONFIGDIR}
                sh -x ${CONFIGFILE} || cd ${CURRENTDIR} && return ${FAILURE}
                cd ${CURRENTDIR}
                return ${SUCCESS}
        else
                echo -e "Vous n'avez pas exécuté${VERT} apt-off -g${NORMAL} sur votre ordinateur, ou vous avez supprimé le dossier${VERT} config_files${NORMAL} et le fichier${VERT} config_apt${NORMAL} qu'il contenait... Reprenez la procédure à  zéro."
                return ${FAILURE}
        fi
        return ${FAILURE}
}


################################
## Téléchargement des paquets ##
################################
function download()
{
        if [[ ! -e ${DEB} ]]
        then
                mkdir ${DEB}
        fi
        sh -x ${OFFLINE}
        return ${SUCCESS}
}


############################
## Extraction des paquets ##
############################
function extract()
{
        # Je vois plus trop l'intérêt de ça, mais bon...
        if [[ ! -e ${PARTIAL} ]]
        then
                PARTIAL_CREATED=1
                mkdir ${PARTIAL}
        else
                PARTIAL_CREATED=0
        fi

        # Test des arguments
        if [[ "$#" < 1 ]]
        then
                echo "ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,"
                echo "ou le mot \"dist-upgrade\" !!!"
                exit
        # Cas particulier : mise à  jour
        elif  [[ $1 == "dist-upgrade" ]]
        then
                sudo apt-get -o dir::cache::archives=${PWD}/${DEB} dist-upgrade
        else
                # Liste des paquets à  installer
                for ((i=1; i<="$#"; i++ ))
                do 
                        sudo apt-get -o dir::cache::archives=${PWD}/${DEB} install ${!i}
                done
        fi

        # Un peu de ménage
        if (( ${PARTIAL_CREATED} )); then
                rm -rf ${PARTIAL}
        fi

        return ${SUCCESS}
}


##########################################
## Sélection des paquets à  télécharger  ##    
##########################################
function generate()
{
        # Il faut au moins une liste de paquets
        if [[ `ls ${LISTDIR} | grep binary-i386_Packages | wc -l` == 0 ]]
        then
                # Si toute première utilisation, on prépare la configuration
                if [[ ! -e ${CONFIGDIR} ]]
                then
                        mkdir ${CONFIGDIR}
                        # Déduction des listes de paquets à  télécharger, d'après le sources.list
                        awk '($1=="deb" || $1=="deb-src") && !match($2,"cdrom") { split($2,A,"/"); for(i=4;i<=NF;++i) print "wget -O "A[3]"_"A[4]"_dists_"$3"_"$i"_binary-i386_Packages.gz "$2"dists/"$3"/"$i"/binary-i386/Packages.gz" }' < ${SOURCE} > ${CONFIGDIR}/${CONFIGFILE}
                        # Un message de prévention...
                        echo -e "ATTENTION : Il semblerait que c'est la première fois que vous essayez d'utiliser un dérivé d'apt-get sur cet ordinateur. Afin de terminer la configuration, veuillez exécuter la commande${VERT} apt-off -c${NORMAL} sur un ordinateur disposant d'un accès à  internet, puis poursuivre la procédure."
                        exit
                # Si seconde utilisation, on installe les listes de paquets
                elif [[ `ls ${CONFIGDIR} | grep gz | wc -l` > 0 ]]
                then
                        sudo cp ${CONFIGDIR}/*.gz ${LISTDIR}
                        sudo gunzip ${LISTDIR}*.gz
                # Si l'utilisateur n'a pas bien compris...
                else
                        echo -e "Vous devez d'abord exécuter${VERT} apt-off -c${NORMAL} sur un ordinateur avec internet !"
                        exit
                fi
        fi

        # à‰craser ou mettre à  jour le fichier de paquets à  installer ?
        if [[ -e ${OFFLINE} ]]
        then
                echo "ATTENTION : Le fichier offline.packages existe déjà , voulez-vous l'écraser (si"
                echo "non, les paquets seront ajoutés à  la liste) ? (o/n)"
                read ECRASE
        fi

        # à‰craser ou mettre à  jour, suite...
        if [[ $ECRASE == o ]]
        then
                echo "cd ${DEB}" > ${OFFLINE}
        else
                echo "cd ${DEB}" >> ${OFFLINE}
        fi

        # Pas assez d'arguments !
        if [[ "$#" < 1 ]]
        then
                echo "ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,"
                echo "ou le mot \"dist-upgrade\" !!!"
                exit
        # Cas particulier : mise à  jour
        elif [[ $1 == "dist-upgrade" ]]
        then
                sudo apt-get -qq --print-uris dist-upgrade > .offline_tmp
        else
                # Liste des paquets à  installer
                for ((i=1; i<="$#"; i++ ))
                do 
                        sudo apt-get -qq --print-uris install ${!i} >> .offline_tmp
                done
        fi

        # Préparation du fichier de paquets à  installer
        awk '{print "wget -O " $2 " " $1}' < .offline_tmp >> ${OFFLINE}
        echo "cd .." >> ${OFFLINE}

#### Lignes à  décommenter pour Windows :
#       awk '{print $1}' < .offline_tmp >> offline.packages_url
#       awk '{print $2}' < .offline_tmp >> offline.packages_list

        rm -f .offline_tmp
}

# Un peu d'aide...
function printhelp()
{
        ESSAI="\\033[2J\\033[0;0f${BOLD}${BLEU}NOM${NORMAL}\n
        \tapt-off\n
        \n${BOLD}${BLEU}SYNOPSIS${NORMAL}\n
        \t${VERT}apt-off [option]${NORMAL}\n
        \n${BOLD}${BLEU}DESCRIPTION${NORMAL}\n
        \t${VERT}apt-off${NORMAL} est un script destiné à  permettre l'utilisation de\n
        \tl'utilitaire apt sur un ordinateur ne possédant pas de connexion à \n
        \tinternet. Il procède en trois étapes, devant être effectuées dans\n
        \tle répertoire contenant le fichier exécutable apt-off :\n
        \t1- sélection des paquets à  installer,\n
        \t2- téléchargement des paquets ; cette étape doit être effectuée sur\n
        \tun ordinateur disposant d'un système Linux (elle${BOLD} ne nécessite pas${NORMAL} apt,\n
        \tmais utilise${VERT} wget${NORMAL} ; si vous n'avez accès qu'à  un système Windows, vous\n
        \tdevrez décommenter une des deux lignes dédiées à  la fin du fichier\n
        \tapt-off et télécharger manuellement les paquets listés dans le fichier\n
        \t${VERT}offline.packages_url${NORMAL} ou${VERT} offline.packages_list${NORMAL}) et connecté à  internet,\n
        \t3- installation des paquets.\n
        \n${BOLD}${BLEU}AVERTISSEMENT${NORMAL}\n
        \t${BOLD}${ROUGE}ATTENTION :${NORMAL} l'installation de paquets et a fortiori la mise à  jour avec\n
        \tl'option dist-upgrade ne sont pas sans risques. Il est donc fortement\n
        \tconseillé, avant toute utilisation de ce programme, de simuler ces\n
        \topérations avec apt-get afin d'être certain de vouloir effectuer les\n
        \tmodifications (lancez simplement${VERT} apt-get install liste_de_paquets${NORMAL}\n
        \tou${VERT} apt-get dist-upgrade${NORMAL}). L'auteur ne saura être tenu pour responsable\n
        \ten cas de problème.\n"

        ESSAI="${ESSAI}\n${OPTIONS}\n${BOLD}${BLEU}COPYRIGHT${NORMAL}\n
        \tCopyright 2006, Goulven Guillard.\n
        \tCe programme est copyleft, la copie, la modification et la diffusion\n
        \tsont autorisées et encouragées tant qu'elles ne sont pas à  but lucratif.\n
        \tReportez les bugs à  ${BLEU}lecotegougdelaforce [at] free.fr${NORMAL}.\n"

        echo -e $ESSAI | less -R

        return ${SUCCESS}
}

# Liste des options disponibles
function usage()
{
        echo -e ${OPTIONS}
        return ${SUCCESS}
}


# Lisons les options
while getopts "cdg:hox:-:" OPTION
do
        case $OPTION in
                c )
                        if [[ $#>1 ]]
                        then
                                echo "Trop d'arguments !!!"
                                usage
                        else
                                configure
                        fi;;
                d )
                        if [[ $#>1 ]]
                        then
                                echo "Trop d'arguments !!!"
                                usage
                        else
                                download
                        fi;;
                g )
                        while [[ $#>1 ]]
                        do
                                shift
                                PKG="${PKG} ${1}"
                        done
                        generate ${PKG};;
                h ) printhelp;;
                o ) usage;;
                x )
                        while [[ $#>1 ]]
                        do
                                shift
                                PKG="${PKG} ${1}"
                        done
                        extract ${PKG};;
                # Cas particulier : les options longues
                - )
                        case $OPTARG in
                                configure )
                                        if [[ $#>1 ]]
                                        then
                                                echo "Trop d'arguments !!!"
                                                usage
                                        else
                                                configure
                                        fi;;
                                download )
                                        if [[ $#>1 ]]
                                        then
                                                echo "Trop d'arguments !!!"
                                                usage
                                        else
                                                download
                                        fi;;
                                extract )
                                        while [[ $#>1 ]]
                                        do
                                                shift
                                                PKG="${PKG} ${1}"
                                        done
                                        extract ${PKG};;
                                generate )
                                        while [[ $#>1 ]]
                                        do
                                                shift
                                                PKG="${PKG} ${1}"
                                        done
                                        generate ${PKG};;
                                help )          printhelp;;
                                options )       usage;;
                                * )
                        esac;;
                # par défaut
                * ) usage;;
        esac
done

PS: Au fait, tu parles de Windows, le script ne devrait pas fonctionner sous windows, par contre si tu décommentes les deux lignes du code qui concerne windows, il crée une liste d'adresses des paquets à  télécharger manuellement, je crois.

Dernière modification par Skippy le Grand Gourou (Le 04/12/2007, à 11:15)

Hors ligne

#89 Le 22/11/2007, à 18:00

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Bon le problème d'affichage est réglé. Par contre, il semblerait qu'il y ait encore quelques problèmes. Par exemple au niveau du $#, il semblerait qu'il ne comptabilise pas les options commençant par "-". En conséquence, si je ne télécharge qu'un seul paquet, il y aura un message d'insuffisance d'arguments. Si j'en télécharge 2, seul le 2ème sera pris en compte. J'ai fait quelques autres tests peu concluants (génération d'un fichier contenant juste cd deb/ et cd..), mais le problème est peut être lié à  ça... Je regarderai à  l'occasion.

Par ailleurs, j'ai tenté l'exécution séparée de la commande :

sudo apt-get -qq --print-uris dist-upgrade >> toto.txt

et le fichier toto.txt contient maintenant :

Lecture des listes de paquets...
Construction de l'arbre des dépendances...
Lecture de l'information d'état...
0 mis à  jour, 0 nouvellement installés, 0 à  enlever et 0 non mis à  jour.

Ce qui m'amène à  ceci : avant je pensais que l'option dist-upgrade allait mettre à  jour les listes de paquets. Or après quelques recherches, il semblerait qu'il n'en est rien et que ce n'est qu'une option de mise à  jour intelligente du système. D'o๠l'interrogation :
Comment utiliser ton script pour télécharger les listes des paquets qui sont sortis depuis la release du CD d'install? A moins que ce ne soit pas possible et qu'il faille le faire manuellement? Parce l'ordinateur qui n'est pas connecté à  internet et ne peut recharger les listes de paquets ne peut alors générer aucun script de téléchargements des paquets sortis depuis

PS j'ai accès à  des ordinateurs en dual-boot. mais quand j'arrive sur un ordinateur booté sur windows, je n'ai pas toujours le temps de le redémarrer sous linux, voila pourquoi je  me connecte parfois via windows

Dernière modification par Aldian (Le 22/11/2007, à 18:01)

Hors ligne

#90 Le 24/11/2007, à 15:33

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Aldian a écrit :

au niveau du $#, il semblerait qu'il ne comptabilise pas les options commençant par "-". En conséquence, si je ne télécharge qu'un seul paquet, il y aura un message d'insuffisance d'arguments. Si j'en télécharge 2, seul le 2ème sera pris en compte.

Effectivement, j'avais oublié l'effet du "shift". C'est corrigé dans le dernier post.

Aldian a écrit :

Par ailleurs, j'ai tenté l'exécution séparée de la commande :

sudo apt-get -qq --print-uris dist-upgrade >> toto.txt

et le fichier toto.txt contient maintenant :

Lecture des listes de paquets...
Construction de l'arbre des dépendances...
Lecture de l'information d'état...
0 mis à  jour, 0 nouvellement installés, 0 à  enlever et 0 non mis à  jour.

Mmmh... L'upgrade n'est peut-être pas possible comme ça alors. à€ voir quand le script sera fonctionnel.

Aldian a écrit :

Ce qui m'amène à  ceci : avant je pensais que l'option dist-upgrade allait mettre à  jour les listes de paquets. Or après quelques recherches, il semblerait qu'il n'en est rien et que ce n'est qu'une option de mise à  jour intelligente du système. D'o๠l'interrogation :
Comment utiliser ton script pour télécharger les listes des paquets qui sont sortis depuis la release du CD d'install? A moins que ce ne soit pas possible et qu'il faille le faire manuellement? Parce l'ordinateur qui n'est pas connecté à  internet et ne peut recharger les listes de paquets ne peut alors générer aucun script de téléchargements des paquets sortis depuis

Effectivement, le but de l'option dist-upgrade est de mettre à  jour tous les paquets ; la mise à  jour des listes de paquets est faite par l'option "update". Dans la version actuelle du script, l'option "dist-upgrade" n'est donc utile que dans un cas : mise à  jour juste après l'installation.

Pour mettre à  jour les listes, dans la version actuelle, il suffit de supprimer toutes les listes de /var/lib/apt/lists. Le script va alors détecter qu'il n'y a pas de liste, et te demandera de réexécuter apt-off sur un ordi avec internet, pour récupérer les dernières listes (à  partir de ton sources.list). Je pourrais effectivement rajouter une option pour ça, c'est pas compliqué.

Dernière modification par Skippy le Grand Gourou (Le 24/11/2007, à 15:35)

Hors ligne

#91 Le 26/11/2007, à 10:27

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Bon je vais essayer d'être exhaustif => ça va être un peu long.
Comme d'hab quand je me connecte depuis windows, les copier coller vont parfois donner des caractères bizarres.


Donc j'ai procédé à  un test total du script qui rend plutà´t bien malgrès quelques erreurs.
tout d'abord :
1) sur mon ordi :

$ ./apt-off -g dist-upgrade
ATTENTION : Il semblerait que c'est la premiàƒÂ¨re fois que vous essayez d'utiliser un dàƒÂ©rivàƒÂ© d'apt-get sur cet ordinateur. Afin de terminer la configuration, veuillez exàƒÂ©cuter la commande apt-off -c sur un ordinateur disposant d'un accàƒÂ¨s àƒ  internet, puis poursuivre la procàƒÂ©dure.

2) sur l'ordi relié à  internet :

$ ./apt-off -c
+ wget -O archive.ubuntu.com_ubuntu_dists_gutsy-updates_restricted_binary-i386_P ackages.gz http://archive.ubuntu.com/ubuntu/dists/gutsy-updates/restricted/binar y-i386/Packages.gz
--14:12:39--  http://archive.ubuntu.com/ubuntu/dists/gutsy-updates/restricted/bi nary-i386/Packages.gz
           => `archive.ubuntu.com_ubuntu_dists_gutsy-updates_restricted_binary-i 386_Packages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 4à‚ 041 (3.9K) [text/plain]

100%[====================================>] 4à‚ 041        --.--K/s

14:12:39 (181.45 KB/s) - à‚« archive.ubuntu.com_ubuntu_dists_gutsy-updates_restric ted_binary-i386_Packages.gz à‚» sauvegardàƒÂ© [4041/4041]

+ wget -O archive.ubuntu.com_ubuntu_dists_gutsy-updates_main_binary-i386_Package s.gz http://archive.ubuntu.com/ubuntu/dists/gutsy-updates/main/binary-i386/Packa ges.gz
--14:12:39--  http://archive.ubuntu.com/ubuntu/dists/gutsy-updates/main/binary-i 386/Packages.gz
           => `archive.ubuntu.com_ubuntu_dists_gutsy-updates_main_binary-i386_Pa ckages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 62à‚ 514 (61K) [text/plain]

100%[====================================>] 62à‚ 514       --.--K/s

14:12:40 (676.14 KB/s) - à‚« archive.ubuntu.com_ubuntu_dists_gutsy-updates_main_bi nary-i386_Packages.gz à‚» sauvegardàƒÂ© [62514/62514]

+ wget -O archive.ubuntu.com_ubuntu_dists_gutsy-updates_universe_binary-i386_Pac kages.gz http://archive.ubuntu.com/ubuntu/dists/gutsy-updates/universe/binary-i3 86/Packages.gz
--14:12:40--  http://archive.ubuntu.com/ubuntu/dists/gutsy-updates/universe/bina ry-i386/Packages.gz
           => `archive.ubuntu.com_ubuntu_dists_gutsy-updates_universe_binary-i38 6_Packages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 22à‚ 206 (22K) [text/plain]

100%[====================================>] 22à‚ 206       --.--K/s

14:12:40 (8.91 MB/s) - à‚« archive.ubuntu.com_ubuntu_dists_gutsy-updates_universe_ binary-i386_Packages.gz à‚» sauvegardàƒÂ© [22206/22206]

+ wget -O archive.ubuntu.com_ubuntu_dists_gutsy-updates_multiverse_binary-i386_P ackages.gz http://archive.ubuntu.com/ubuntu/dists/gutsy-updates/multiverse/binar y-i386/Packages.gz
--14:12:40--  http://archive.ubuntu.com/ubuntu/dists/gutsy-updates/multiverse/bi nary-i386/Packages.gz
           => `archive.ubuntu.com_ubuntu_dists_gutsy-updates_multiverse_binary-i 386_Packages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 2à‚ 876 (2.8K) [text/plain]

100%[====================================>] 2à‚ 876        --.--K/s

14:12:40 (171.42 MB/s) - à‚« archive.ubuntu.com_ubuntu_dists_gutsy-updates_multive rse_binary-i386_Packages.gz à‚» sauvegardàƒÂ© [2876/2876]

+ wget -O security.ubuntu.com_ubuntu_dists_gutsy-security_restricted_binary-i386 _Packages.gz http://security.ubuntu.com/ubuntu/dists/gutsy-security/restricted/b inary-i386/Packages.gz
--14:12:40--  http://security.ubuntu.com/ubuntu/dists/gutsy-security/restricted/ binary-i386/Packages.gz
           => `security.ubuntu.com_ubuntu_dists_gutsy-security_restricted_binary -i386_Packages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 20 [text/plain]

100%[====================================>] 20            --.--K/s

14:12:40 (2.12 MB/s) - à‚« security.ubuntu.com_ubuntu_dists_gutsy-security_restric ted_binary-i386_Packages.gz à‚» sauvegardàƒÂ© [20/20]

+ wget -O security.ubuntu.com_ubuntu_dists_gutsy-security_main_binary-i386_Packa ges.gz http://security.ubuntu.com/ubuntu/dists/gutsy-security/main/binary-i386/P ackages.gz
--14:12:40--  http://security.ubuntu.com/ubuntu/dists/gutsy-security/main/binary -i386/Packages.gz
           => `security.ubuntu.com_ubuntu_dists_gutsy-security_main_binary-i386_ Packages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 26à‚ 710 (26K) [text/plain]

100%[====================================>] 26à‚ 710       --.--K/s

14:12:40 (291.28 KB/s) - à‚« security.ubuntu.com_ubuntu_dists_gutsy-security_main_ binary-i386_Packages.gz à‚» sauvegardàƒÂ© [26710/26710]

+ wget -O security.ubuntu.com_ubuntu_dists_gutsy-security_universe_binary-i386_P ackages.gz http://security.ubuntu.com/ubuntu/dists/gutsy-security/universe/binar y-i386/Packages.gz
--14:12:40--  http://security.ubuntu.com/ubuntu/dists/gutsy-security/universe/bi nary-i386/Packages.gz
           => `security.ubuntu.com_ubuntu_dists_gutsy-security_universe_binary-i 386_Packages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 14à‚ 836 (14K) [text/plain]

100%[====================================>] 14à‚ 836       --.--K/s

14:12:40 (679.91 KB/s) - à‚« security.ubuntu.com_ubuntu_dists_gutsy-security_unive rse_binary-i386_Packages.gz à‚» sauvegardàƒÂ© [14836/14836]

+ wget -O security.ubuntu.com_ubuntu_dists_gutsy-security_multiverse_binary-i386 _Packages.gz http://security.ubuntu.com/ubuntu/dists/gutsy-security/multiverse/b inary-i386/Packages.gz
--14:12:40--  http://security.ubuntu.com/ubuntu/dists/gutsy-security/multiverse/ binary-i386/Packages.gz
           => `security.ubuntu.com_ubuntu_dists_gutsy-security_multiverse_binary -i386_Packages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 2à‚ 475 (2.4K) [text/plain]

100%[====================================>] 2à‚ 475        --.--K/s

14:12:40 (157.36 MB/s) - à‚« security.ubuntu.com_ubuntu_dists_gutsy-security_multi verse_binary-i386_Packages.gz à‚» sauvegardàƒÂ© [2475/2475]

+ wget -O archive.ubuntu.com_ubuntu_dists_gutsy_main_binary-i386_Packages.gz htt p://archive.ubuntu.com/ubuntu/dists/gutsy/main/binary-i386/Packages.gz
--14:12:40--  http://archive.ubuntu.com/ubuntu/dists/gutsy/main/binary-i386/Pack ages.gz
           => `archive.ubuntu.com_ubuntu_dists_gutsy_main_binary-i386_Packages.g z'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 1à‚ 397à‚ 751 (1.3M) [text/plain]

100%[====================================>] 1à‚ 397à‚ 751    2.29M/s

14:12:41 (2.29 MB/s) - à‚« archive.ubuntu.com_ubuntu_dists_gutsy_main_binary-i386_ Packages.gz à‚» sauvegardàƒÂ© [1397751/1397751]

+ wget -O archive.ubuntu.com_ubuntu_dists_gutsy_universe_binary-i386_Packages.gz  http://archive.ubuntu.com/ubuntu/dists/gutsy/universe/binary-i386/Packages.gz
--14:12:41--  http://archive.ubuntu.com/ubuntu/dists/gutsy/universe/binary-i386/ Packages.gz
           => `archive.ubuntu.com_ubuntu_dists_gutsy_universe_binary-i386_Packag es.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 5à‚ 317à‚ 020 (5.1M) [text/plain]

100%[====================================>] 5à‚ 317à‚ 020    2.57M/s

14:12:43 (2.56 MB/s) - à‚« archive.ubuntu.com_ubuntu_dists_gutsy_universe_binary-i 386_Packages.gz à‚» sauvegardàƒÂ© [5317020/5317020]

+ wget -O archive.ubuntu.com_ubuntu_dists_gutsy_restricted_binary-i386_Packages. gz http://archive.ubuntu.com/ubuntu/dists/gutsy/restricted/binary-i386/Packages. gz
--14:12:44--  http://archive.ubuntu.com/ubuntu/dists/gutsy/restricted/binary-i38 6/Packages.gz
           => `archive.ubuntu.com_ubuntu_dists_gutsy_restricted_binary-i386_Pack ages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 7à‚ 837 (7.7K) [text/plain]

100%[====================================>] 7à‚ 837        --.--K/s

14:12:44 (349.71 KB/s) - à‚« archive.ubuntu.com_ubuntu_dists_gutsy_restricted_bina ry-i386_Packages.gz à‚» sauvegardàƒÂ© [7837/7837]

+ wget -O archive.ubuntu.com_ubuntu_dists_gutsy_multiverse_binary-i386_Packages. gz http://archive.ubuntu.com/ubuntu/dists/gutsy/multiverse/binary-i386/Packages. gz
--14:12:44--  http://archive.ubuntu.com/ubuntu/dists/gutsy/multiverse/binary-i38 6/Packages.gz
           => `archive.ubuntu.com_ubuntu_dists_gutsy_multiverse_binary-i386_Pack ages.gz'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 205à‚ 699 (201K) [text/plain]

100%[====================================>] 205à‚ 699      --.--K/s

14:12:44 (1.38 MB/s) - à‚« archive.ubuntu.com_ubuntu_dists_gutsy_multiverse_binary -i386_Packages.gz à‚» sauvegardàƒÂ© [205699/205699]

3) sur mon ordi :

$ ./apt-off -g dist-upgrade
[sudo] password for aldian:
./apt-off: line 185: .offline_tmp: Aucun fichier ou ràƒÂ©pertoire de ce type

je modifie en ligne 173 $2 en $1

$ ./apt-off -g dist-upgrade
ATTENTION : Le fichier offline.packages existe dàƒÂ©jàƒ , voulez-vous l'àƒÂ©craser (si
non, les paquets seront ajoutàƒÂ©s àƒ  la liste) ? (o/n)
o

4) sur l'ordi relié à  internet :

$ ./apt-off -d

(longue liste de tàƒÂ©làƒÂ©chargement ok)

3 bis) sur mon ordi dans un autre répertoire :

$ ./apt-off -g vlc
./apt-off: line 185: .offline_tmp: Aucun fichier ou ràƒÂ©pertoire de ce type

je modifie  for ((i=2; i<="$#"; i++ )) en  for ((i=1; i<="$#"; i++ )) en ligne 178

$ ./apt-off -g vlc
ATTENTION : Le fichier offline.packages existe dàƒÂ©jàƒ , voulez-vous l'àƒÂ©craser (si
non, les paquets seront ajoutàƒÂ©s àƒ  la liste) ? (o/n)
o

4 bis) sur l'ordi public toujours dans un autre répertoire :

$ ./apt-off -d
+ cd deb/
+ wget -O libavutil1d_3%3a0.cvs20070307-5ubuntu4_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/f/ffmpeg/libavutil1d_0.cvs20070307-5ubuntu4_i386.deb
--16:58:33--  http://archive.ubuntu.com/ubuntu/pool/main/f/ffmpeg/libavutil1d_0.cvs20070307-5ubuntu4_i386.deb
           => `libavutil1d_3%3a0.cvs20070307-5ubuntu4_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 39à‚ 510 (39K) [application/x-debian-package]

100%[=================================================================================================================>] 39à‚ 510       --.--K/s

16:58:33 (526.38 KB/s) - à‚« libavutil1d_3%3a0.cvs20070307-5ubuntu4_i386.deb à‚» sauvegardàƒÂ© [39510/39510]

+ wget -O libgsm1_1.0.10-13build1_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/libg/libgsm/libgsm1_1.0.10-13build1_i386.deb
--16:58:33--  http://archive.ubuntu.com/ubuntu/pool/main/libg/libgsm/libgsm1_1.0.10-13build1_i386.deb
           => `libgsm1_1.0.10-13build1_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 30à‚ 140 (29K) [application/x-debian-package]

100%[=================================================================================================================>] 30à‚ 140       --.--K/s

16:58:33 (336.55 KB/s) - à‚« libgsm1_1.0.10-13build1_i386.deb à‚» sauvegardàƒÂ© [30140/30140]

+ wget -O libavcodec1d_3%3a0.cvs20070307-5ubuntu4_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/f/ffmpeg/libavcodec1d_0.cvs20070307-5ubuntu4_i386.deb
--16:58:33--  http://archive.ubuntu.com/ubuntu/pool/main/f/ffmpeg/libavcodec1d_0.cvs20070307-5ubuntu4_i386.deb
           => `libavcodec1d_3%3a0.cvs20070307-5ubuntu4_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 1à‚ 611à‚ 042 (1.5M) [application/x-debian-package]

100%[=================================================================================================================>] 1à‚ 611à‚ 042    2.16M/s

16:58:34 (2.16 MB/s) - à‚« libavcodec1d_3%3a0.cvs20070307-5ubuntu4_i386.deb à‚» sauvegardàƒÂ© [1611042/1611042]

+ wget -O libdc1394-13_1.1.0-3ubuntu3_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/libd/libdc1394/libdc1394-13_1.1.0-3ubuntu3_i386.deb
--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/main/libd/libdc1394/libdc1394-13_1.1.0-3ubuntu3_i386.deb
           => `libdc1394-13_1.1.0-3ubuntu3_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 34à‚ 356 (34K) [application/x-debian-package]

100%[=================================================================================================================>] 34à‚ 356       --.--K/s

16:58:34 (159.83 MB/s) - à‚« libdc1394-13_1.1.0-3ubuntu3_i386.deb à‚» sauvegardàƒÂ© [34356/34356]

+ wget -O libavformat1d_3%3a0.cvs20070307-5ubuntu4_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/f/ffmpeg/libavformat1d_0.cvs20070307-5ubuntu4_i386.deb--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/main/f/ffmpeg/libavformat1d_0.cvs20070307-5ubuntu4_i386.deb
           => `libavformat1d_3%3a0.cvs20070307-5ubuntu4_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 286à‚ 530 (280K) [application/x-debian-package]

100%[=================================================================================================================>] 286à‚ 530       1.30M/s

16:58:34 (1.29 MB/s) - à‚« libavformat1d_3%3a0.cvs20070307-5ubuntu4_i386.deb à‚» sauvegardàƒÂ© [286530/286530]

+ wget -O libdvbpsi4_0.1.5-3_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/libd/libdvbpsi4/libdvbpsi4_0.1.5-3_i386.deb
--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/universe/libd/libdvbpsi4/libdvbpsi4_0.1.5-3_i386.deb
           => `libdvbpsi4_0.1.5-3_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 32à‚ 236 (31K) [application/x-debian-package]

100%[=================================================================================================================>] 32à‚ 236       --.--K/s

16:58:34 (6.40 MB/s) - à‚« libdvbpsi4_0.1.5-3_i386.deb à‚» sauvegardàƒÂ© [32236/32236]

+ wget -O libdvdnav4_0.1.10-0.2_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/libd/libdvdnav/libdvdnav4_0.1.10-0.2_i386.deb
--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/universe/libd/libdvdnav/libdvdnav4_0.1.10-0.2_i386.deb
           => `libdvdnav4_0.1.10-0.2_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 92à‚ 306 (90K) [application/x-debian-package]

100%[=================================================================================================================>] 92à‚ 306       --.--K/s

16:58:34 (4.09 MB/s) - à‚« libdvdnav4_0.1.10-0.2_i386.deb à‚» sauvegardàƒÂ© [92306/92306]

+ wget -O libebml0_0.7.7-3_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/libe/libebml/libebml0_0.7.7-3_i386.deb
--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/universe/libe/libebml/libebml0_0.7.7-3_i386.deb
           => `libebml0_0.7.7-3_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 62à‚ 458 (61K) [application/x-debian-package]

100%[=================================================================================================================>] 62à‚ 458       --.--K/s

16:58:34 (2.52 MB/s) - à‚« libebml0_0.7.7-3_i386.deb à‚» sauvegardàƒÂ© [62458/62458]

+ wget -O libiso9660-4_0.76-1ubuntu2_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/libc/libcdio/libiso9660-4_0.76-1ubuntu2_i386.deb
--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/universe/libc/libcdio/libiso9660-4_0.76-1ubuntu2_i386.deb
           => `libiso9660-4_0.76-1ubuntu2_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 96à‚ 756 (94K) [application/x-debian-package]

100%[=================================================================================================================>] 96à‚ 756       --.--K/s

16:58:34 (3.22 MB/s) - à‚« libiso9660-4_0.76-1ubuntu2_i386.deb à‚» sauvegardàƒÂ© [96756/96756]

+ wget -O libmatroska0_0.8.1-1_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/libm/libmatroska/libmatroska0_0.8.1-1_i386.deb
--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/universe/libm/libmatroska/libmatroska0_0.8.1-1_i386.deb
           => `libmatroska0_0.8.1-1_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 189à‚ 816 (185K) [application/x-debian-package]

100%[=================================================================================================================>] 189à‚ 816      --.--K/s

16:58:34 (2.67 MB/s) - à‚« libmatroska0_0.8.1-1_i386.deb à‚» sauvegardàƒÂ© [189816/189816]

+ wget -O libmodplug0c2_1%3a0.7-5.2ubuntu1_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/libm/libmodplug/libmodplug0c2_0.7-5.2ubuntu1_i386.deb
--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/main/libm/libmodplug/libmodplug0c2_0.7-5.2ubuntu1_i386.deb
           => `libmodplug0c2_1%3a0.7-5.2ubuntu1_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 121à‚ 966 (119K) [application/x-debian-package]

100%[=================================================================================================================>] 121à‚ 966      --.--K/s

16:58:34 (4.21 MB/s) - à‚« libmodplug0c2_1%3a0.7-5.2ubuntu1_i386.deb à‚» sauvegardàƒÂ© [121966/121966]

+ wget -O libmpcdec3_1.2.2-1build1_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/libm/libmpcdec/libmpcdec3_1.2.2-1build1_i386.deb
--16:58:34--  http://archive.ubuntu.com/ubuntu/pool/main/libm/libmpcdec/libmpcdec3_1.2.2-1build1_i386.deb
           => `libmpcdec3_1.2.2-1build1_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 27à‚ 374 (27K) [application/x-debian-package]

100%[=================================================================================================================>] 27à‚ 374       --.--K/s

16:58:35 (386.18 KB/s) - à‚« libmpcdec3_1.2.2-1build1_i386.deb à‚» sauvegardàƒÂ© [27374/27374]

+ wget -O libpostproc1d_3%3a0.cvs20070307-5ubuntu4_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/f/ffmpeg/libpostproc1d_0.cvs20070307-5ubuntu4_i386.deb--16:58:35--  http://archive.ubuntu.com/ubuntu/pool/main/f/ffmpeg/libpostproc1d_0.cvs20070307-5ubuntu4_i386.deb
           => `libpostproc1d_3%3a0.cvs20070307-5ubuntu4_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 71à‚ 474 (70K) [application/x-debian-package]

100%[=================================================================================================================>] 71à‚ 474       --.--K/s

16:58:35 (610.12 KB/s) - à‚« libpostproc1d_3%3a0.cvs20070307-5ubuntu4_i386.deb à‚» sauvegardàƒÂ© [71474/71474]

+ wget -O libsdl-image1.2_1.2.5-3_i386.deb http://archive.ubuntu.com/ubuntu/pool/main/s/sdl-image1.2/libsdl-image1.2_1.2.5-3_i386.deb
--16:58:35--  http://archive.ubuntu.com/ubuntu/pool/main/s/sdl-image1.2/libsdl-image1.2_1.2.5-3_i386.deb
           => `libsdl-image1.2_1.2.5-3_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 29à‚ 352 (29K) [application/x-debian-package]

100%[=================================================================================================================>] 29à‚ 352       --.--K/s

16:58:35 (26.63 MB/s) - à‚« libsdl-image1.2_1.2.5-3_i386.deb à‚» sauvegardàƒÂ© [29352/29352]

+ wget -O libtar_1.2.11-4_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/libt/libtar/libtar_1.2.11-4_i386.deb
--16:58:35--  http://archive.ubuntu.com/ubuntu/pool/universe/libt/libtar/libtar_1.2.11-4_i386.deb
           => `libtar_1.2.11-4_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 19à‚ 030 (19K) [application/x-debian-package]

100%[=================================================================================================================>] 19à‚ 030       --.--K/s

16:58:35 (796.06 KB/s) - à‚« libtar_1.2.11-4_i386.deb à‚» sauvegardàƒÂ© [19030/19030]

+ wget -O libvcdinfo0_0.7.23-3_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/v/vcdimager/libvcdinfo0_0.7.23-3_i386.deb
--16:58:35--  http://archive.ubuntu.com/ubuntu/pool/universe/v/vcdimager/libvcdinfo0_0.7.23-3_i386.deb
           => `libvcdinfo0_0.7.23-3_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 124à‚ 302 (121K) [application/x-debian-package]

100%[=================================================================================================================>] 124à‚ 302     754.52K/s

16:58:35 (750.06 KB/s) - à‚« libvcdinfo0_0.7.23-3_i386.deb à‚» sauvegardàƒÂ© [124302/124302]

+ wget -O libvlc0_0.8.6.release.c-0ubuntu5_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/v/vlc/libvlc0_0.8.6.release.c-0ubuntu5_i386.deb
--16:58:35--  http://archive.ubuntu.com/ubuntu/pool/universe/v/vlc/libvlc0_0.8.6.release.c-0ubuntu5_i386.deb
           => `libvlc0_0.8.6.release.c-0ubuntu5_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 872à‚ 332 (852K) [application/x-debian-package]

100%[=================================================================================================================>] 872à‚ 332       1.93M/s

16:58:35 (1.92 MB/s) - à‚« libvlc0_0.8.6.release.c-0ubuntu5_i386.deb à‚» sauvegardàƒÂ© [872332/872332]

+ wget -O libwxbase2.6-0_2.6.3.2.1.5ubuntu12_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/w/wxwidgets2.6/libwxbase2.6-0_2.6.3.2.1.5ubuntu12_i386.deb
--16:58:35--  http://archive.ubuntu.com/ubuntu/pool/universe/w/wxwidgets2.6/libwxbase2.6-0_2.6.3.2.1.5ubuntu12_i386.deb
           => `libwxbase2.6-0_2.6.3.2.1.5ubuntu12_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 570à‚ 042 (557K) [application/x-debian-package]

100%[=================================================================================================================>] 570à‚ 042       2.65M/s

16:58:36 (2.65 MB/s) - à‚« libwxbase2.6-0_2.6.3.2.1.5ubuntu12_i386.deb à‚» sauvegardàƒÂ© [570042/570042]

+ wget -O libwxgtk2.6-0_2.6.3.2.1.5ubuntu12_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/w/wxwidgets2.6/libwxgtk2.6-0_2.6.3.2.1.5ubuntu12_i386.deb--16:58:36--  http://archive.ubuntu.com/ubuntu/pool/universe/w/wxwidgets2.6/libwxgtk2.6-0_2.6.3.2.1.5ubuntu12_i386.deb
           => `libwxgtk2.6-0_2.6.3.2.1.5ubuntu12_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 2à‚ 885à‚ 798 (2.8M) [application/x-debian-package]

100%[=================================================================================================================>] 2à‚ 885à‚ 798    2.17M/s

16:58:37 (2.16 MB/s) - à‚« libwxgtk2.6-0_2.6.3.2.1.5ubuntu12_i386.deb à‚» sauvegardàƒÂ© [2885798/2885798]

+ wget -O libxosd2_2.2.14-1.3_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/x/xosd/libxosd2_2.2.14-1.3_i386.deb
--16:58:37--  http://archive.ubuntu.com/ubuntu/pool/universe/x/xosd/libxosd2_2.2.14-1.3_i386.deb
           => `libxosd2_2.2.14-1.3_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 24à‚ 518 (24K) [application/x-debian-package]

100%[=================================================================================================================>] 24à‚ 518       --.--K/s

16:58:37 (337.14 KB/s) - à‚« libxosd2_2.2.14-1.3_i386.deb à‚» sauvegardàƒÂ© [24518/24518]

+ wget -O vlc-nox_0.8.6.release.c-0ubuntu5_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/v/vlc/vlc-nox_0.8.6.release.c-0ubuntu5_i386.deb
--16:58:37--  http://archive.ubuntu.com/ubuntu/pool/universe/v/vlc/vlc-nox_0.8.6.release.c-0ubuntu5_i386.deb
           => `vlc-nox_0.8.6.release.c-0ubuntu5_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 4à‚ 671à‚ 324 (4.5M) [application/x-debian-package]

100%[=================================================================================================================>] 4à‚ 671à‚ 324    2.36M/s

16:58:39 (2.36 MB/s) - à‚« vlc-nox_0.8.6.release.c-0ubuntu5_i386.deb à‚» sauvegardàƒÂ© [4671324/4671324]

+ wget -O vlc_0.8.6.release.c-0ubuntu5_i386.deb http://archive.ubuntu.com/ubuntu/pool/universe/v/vlc/vlc_0.8.6.release.c-0ubuntu5_i386.deb
--16:58:39--  http://archive.ubuntu.com/ubuntu/pool/universe/v/vlc/vlc_0.8.6.release.c-0ubuntu5_i386.deb
           => `vlc_0.8.6.release.c-0ubuntu5_i386.deb'
Connexion vers 192.168.16.22:3128... connectàƒÂ©.
requàƒÂªte Proxy transmise, en attente de la ràƒÂ©ponse... 200 OK
Longueur: 1à‚ 162à‚ 230 (1.1M) [application/x-debian-package]

100%[=================================================================================================================>] 1à‚ 162à‚ 230    2.62M/s

16:58:39 (2.62 MB/s) - à‚« vlc_0.8.6.release.c-0ubuntu5_i386.deb à‚» sauvegardàƒÂ© [1162230/1162230]

+ cd ..

5) sur mon ordi :

$ ./apt-off -x dist-upgrade
$ ./apt-off -x vlc

$ ./apt-off -x
./apt-off: l'option requiert un argument -- x
OPTIONS
        -d ou --download
        TàƒÂ©làƒÂ©charge les paquets. Cette option doit àƒÂªtre utilisàƒÂ©e sur un
        ordinateur disposant d'un systàƒÂ¨me Linux et d'une connexion
        internet. Une fois tàƒÂ©làƒÂ©chargàƒÂ©s, les paquets peuvent àƒÂªtre
        plus ou moins volumineux, aussi pràƒÂ©voyez un support de
        transport de capacitàƒÂ© suffisante. N'oubliez pas le fichier
        offline.packages !!!

        -g ou --generate [paquet1 paquet2 ...] ou [dist-upgrade]
        GàƒÂ©nàƒÂ¨re la liste des paquets àƒ  tàƒÂ©làƒÂ©charger. Cette liste est
        stockàƒÂ©e dans le fichier offline.packages.

        -h ou --help
        Affiche cette aide.

        -o ou --options
        Affiche les options.

        -c ou --configure
        TàƒÂ©làƒÂ©charge les fichiers de configuration d'apt.

        -x ou --extract [paquet1 paquet2 ...] ou [dist-upgrade]
        Extrait et installe les paquets.

erreurrs en lignes 104 et 109 : $2 remplacàƒÂ© par $1 et for(i=2 remplacàƒÂ© par for(i=1

$ ./apt-off -x vlc
Lecture des listes de paquets... Fait
Construction de l'arbre des dàƒÂ©pendances       
Lecture des informations d'àƒÂ©tat... Fait
Les paquets suivants ont àƒÂ©tàƒÂ© installàƒÂ©s automatiquement et ne sont plus nàƒÂ©cessairesà‚ :
  liboggflac3
Veuillez utiliser à‚Â«à‚ apt-get autoremoveà‚ à‚» pour les supprimer.
Les paquets supplàƒÂ©mentaires suivants seront installàƒÂ©sà‚ : 
  libavcodec1d libavformat1d libavutil1d libdc1394-13 libdvbpsi4 libdvdnav4 libebml0 libgsm1 libiso9660-4 libmatroska0 libmodplug0c2 libmpcdec3
  libpostproc1d libsdl-image1.2 libtar libvcdinfo0 libvlc0 libwxbase2.6-0 libwxgtk2.6-0 libxosd2 vlc-nox
Paquets suggàƒÂ©ràƒÂ©sà‚ :
  xfonts-base-transcoded mozilla-plugin-vlc
Paquets recommandàƒÂ©sà‚ :
  videolan-doc
Les NOUVEAUX paquets suivants seront installàƒÂ©sà‚ :
  libavcodec1d libavformat1d libavutil1d libdc1394-13 libdvbpsi4 libdvdnav4 libebml0 libgsm1 libiso9660-4 libmatroska0 libmodplug0c2 libmpcdec3
  libpostproc1d libsdl-image1.2 libtar libvcdinfo0 libvlc0 libwxbase2.6-0 libwxgtk2.6-0 libxosd2 vlc vlc-nox
0 mis àƒ  jour, 22 nouvellement installàƒÂ©s, 0 àƒ  enlever et 111 non mis àƒ  jour.
E: Impossible d'ouvrir le fichier verrou /var/cache/apt/{/home/aldian/MOI/apt-off/essais_paralleles}/deb/lock - open (2 Aucun fichier ou ràƒÂ©pertoire de ce type)
E: Impossible de verrouiller le ràƒÂ©pertoire de tàƒÂ©làƒÂ©chargement

En parallàƒÂ¨le : le gestionnaire de mise àƒ  jour se met àƒ  afficher que des mise àƒ  jours sont disponibles, mais lorsque je clique dessus, j'ai le message suivant :

Impossible d'initialiser les donnàƒÂ©es du paquet

Un problàƒÂ¨me insoluble est apparu lors de l'initialisation des donnàƒÂ©es du paquet.

Merci de signaler ce bogue du paquet à‚Â«à‚ update-managerà‚ à‚» et d'inclure le message d'erreur suivantà‚ :

'E:Impossible de verrouiller /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy_multiverse_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy_restricted_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy_universe_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy_main_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_gutsy-security_multiverse_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_gutsy-security_universe_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_gutsy-security_main_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_gutsy-security_restricted_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy-updates_multiverse_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy-updates_universe_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy-updates_main_binary-i386_Packages - open (13 Permission non accordàƒÂ©e), E:Impossible de verrouiller /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy-updates_restricted_binary-i386_Packages - open (13 Permission non accordàƒÂ©e)'

A partir de là  j'ai voulu faire le malin :
je ruse en lanàƒÂ§ant synaptic, option "ajouter les paquets téléchargés" et en me plaçant dans le dossier deb. J'ai alors un avertissement comme quoi les paquets ne peuvent pas être authentifiés, je dis de continuer quand même, et l'installation se fait. Après quoi le gestionnaire de mise àƒ  jour cesse d'être actif. Je me demande si l'ajout de l'option --force-yes dans le script ne pourrait pas arranger les choses. Sinon il faut trouver le moyen de télécharger en plus les clés d'authentification ou ce qui le bloque.

Par contre il semblerait que j'ai peut être un peu endommagé le système en voulant faire le malin. Car maintenant quand je lance ajouter/supprimer, ça me marque  :

échec de la vérification des applications installées et disponibles

Il s'agit d'une erreur majeure de votre système de gestion de logiciels. Veuillez vérifier les paquets cassés avec Synaptic, vérifiez les droits d'accès aux fichiers et la validité du fichier /etc/apt/sources.list, puis rechargez les informations sur les logiciels avec les commandes  : « sudo apt-get update» et « sudo apt-get install -f».

et ça ne se lance plus. Je précise que synaptic ne recense aucun paquet cassé, et que je ne comprend pas ce qu'il veut dire par "validité du fichier sources.list". Quant aux deux commandes recommandées, sans internet, c'est difficile.


BREF POUR RESUMER :
Quelques petites coquilles résiduelles liées au $# et un problème (probablement une histoire de verrou de sécurité ou de clé d'authentification des paquets) qui empêche l'extraction finale des paquets. Conflits possible avec les gestionnaires de paquet normaux du systèmes qui peuvent n'apprécier que moyennement d'être contournés.

Mais tout le reste marche et c'est déjà  un grand progrès. smile



edit : de toute manière je suis très occuppé cette semaine, donc prends tout ton temps.

Dernière modification par Aldian (Le 27/11/2007, à 21:05)

Hors ligne

#92 Le 26/11/2007, à 11:05

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Ok, nickel ! big_smile

Je regarde tout ça plus en détail ce soir. wink

Edit : Désolé, j'ai oublié... Et pas moyen de réfléchir efficacement à  cette heure-ci, on verra demain.

Dernière modification par Skippy le Grand Gourou (Le 26/11/2007, à 23:50)

Hors ligne

#93 Le 02/12/2007, à 15:03

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

A toute fin utile, voici les captures d'écran des bugs. A mon avis ils sont soit dus à  ma récente installation de paquets sans les certificats de sécurité, soit plus probablement au fait que le script a téléchargé des paquets qui ne sont mentionnés nulle part dans var/apt/list et que ça pose des problèmes à  linux d'avoir des paquets qu'il ne connait pas installés :

erreur10.png

erreur11.png

erreur12.png

à  noter que par contre synaptic marche sans problème et ne signale aucun paquet cassé. Peut être que copier les listes du dossier config de apt-off dans var/apt/list résoudrais le problème, mais j'hésite à  jouer encore aux apprentis hackers wink

Hors ligne

#94 Le 03/12/2007, à 23:14

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Arf... J'ai encore oublié de regarder ça. J'essaierai d'y penser demain soir... wink

Hors ligne

#95 Le 04/12/2007, à 11:14

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Aldian a écrit :

Quelques petites coquilles résiduelles liées au $#

Corrigé.

Aldian a écrit :
E: Impossible d'ouvrir le fichier verrou /var/cache/apt/{/home/aldian/MOI/apt-off/essais_paralleles}/deb/lock - open (2 Aucun fichier ou ràƒÂ©pertoire de ce type)
E: Impossible de verrouiller le ràƒÂ©pertoire de tàƒÂ©làƒÂ©chargement

Encore une coquille, un {$PWD} qui aurait dû être ${PWD} ligne 108. Corrigé.

Aldian a écrit :

Peut être que copier les listes du dossier config de apt-off dans var/apt/list résoudrais le problème, mais j'hésite à  jouer encore aux apprentis hackers

C'est fait automatiquement (l.141). wink

Regarde si la version corrigée ne résout pas ces conflits (on sait jamais...),  et si non donne voir les permissions (ls -l) dans le dossier /var/lib/apt/lists/.

Edit : Je reposte la version corrigée ici, c'est plus facile à  suivre...

#!/bin/bash

FAILURE=1
SUCCESS=0

# Répertoires
CURRENTDIR="${PWD}/"
CONFIGDIR="config_files/"
DEB="deb/"
PARTIAL="${DEB}/partial/"
LISTDIR="/var/lib/apt/lists/"

# Fichiers
CONFIGFILE="config_apt"
OFFLINE="offline.packages"
SOURCE="/etc/apt/sources.list"

# Quelques couleurs
BOLD="\\033[1;39m"
NORMAL="\\033[0;39m"
VERT="\\033[32m"
ROUGE="\\033[31m"
ROSE="\\033[35m"
BLEU="\\033[34m"

OPTIONS="${BOLD}${BLEU}OPTIONS${NORMAL}\n
        \t${VERT}-d${NORMAL} ou${VERT} --download${NORMAL}\n
        \tTélécharge les paquets. Cette option doit être utilisée sur un\n
        \tordinateur disposant d'un système Linux et d'une connexion\n
        \tinternet. Une fois téléchargés, les paquets peuvent être\n
        \tplus ou moins volumineux, aussi prévoyez un support de\n
        \ttransport de capacité suffisante.${BOLD}${ROUGE} N'oubliez pas le fichier\n
        \t${BLEU}${OFFLINE}${NORMAL} !!!${NORMAL}\n\n
        \t${VERT}-g${NORMAL} ou${VERT} --generate${BLEU} [paquet1 paquet2 ...]${NORMAL} ou${BLEU} [dist-upgrade]${NORMAL}\n
        \tGénère la liste des paquets à  télécharger. Cette liste est\n
        \tstockée dans le fichier ${BLEU}${OFFLINE}${NORMAL}.\n\n
        \t${VERT}-h${NORMAL} ou${VERT} --help${NORMAL}\n
        \tAffiche cette aide.\n\n
        \t${VERT}-o${NORMAL} ou${VERT} --options${NORMAL}\n
        \tAffiche les options.\n\n
        \t${VERT}-c${NORMAL} ou${VERT} --configure${NORMAL}\n
        \tTélécharge les fichiers de configuration d'apt.\n\n
        \t${VERT}-x${NORMAL} ou${VERT} --extract${BLEU} [paquet1 paquet2 ...]${NORMAL} ou${BLEU} [dist-upgrade]${NORMAL}\n
        \tExtrait et installe les paquets.\n"

########################################################
## Téléchargement des fichiers de configuration d'apt ##
########################################################
function configure()
{
        # On vérifie que la liste des listes de paquets est bien présente
        if [[ -e ${CONFIGDIR}/${CONFIGFILE} ]]
        then
                cd ${CONFIGDIR}
                sh -x ${CONFIGFILE} || cd ${CURRENTDIR} && return ${FAILURE}
                cd ${CURRENTDIR}
                return ${SUCCESS}
        else
                echo -e "Vous n'avez pas exécuté${VERT} apt-off -g${NORMAL} sur votre ordinateur, ou vous avez supprimé le dossier${VERT} config_files${NORMAL} et le fichier${VERT} config_apt${NORMAL} qu'il contenait... Reprenez la procédure à  zéro."
                return ${FAILURE}
        fi
        return ${FAILURE}
}


################################
## Téléchargement des paquets ##
################################
function download()
{
        if [[ ! -e ${DEB} ]]
        then
                mkdir ${DEB}
        fi
        sh -x ${OFFLINE}
        return ${SUCCESS}
}


############################
## Extraction des paquets ##
############################
function extract()
{
        # Je vois plus trop l'intérêt de ça, mais bon...
        if [[ ! -e ${PARTIAL} ]]
        then
                PARTIAL_CREATED=1
                mkdir ${PARTIAL}
        else
                PARTIAL_CREATED=0
        fi

        # Test des arguments
        if [[ "$#" < 1 ]]
        then
                echo "ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,"
                echo "ou le mot \"dist-upgrade\" !!!"
                exit
        # Cas particulier : mise à  jour
        elif  [[ $1 == "dist-upgrade" ]]
        then
                sudo apt-get -o dir::cache::archives=${PWD}/${DEB} dist-upgrade
        else
                # Liste des paquets à  installer
                for ((i=1; i<="$#"; i++ ))
                do 
                        sudo apt-get -o dir::cache::archives=${PWD}/${DEB} install ${!i}
                done
        fi

        # Un peu de ménage
        if (( ${PARTIAL_CREATED} )); then
                rm -rf ${PARTIAL}
        fi

        return ${SUCCESS}
}


##########################################
## Sélection des paquets à  télécharger  ##    
##########################################
function generate()
{
        # Il faut au moins une liste de paquets
        if [[ `ls ${LISTDIR} | grep binary-i386_Packages | wc -l` == 0 ]]
        then
                # Si toute première utilisation, on prépare la configuration
                if [[ ! -e ${CONFIGDIR} ]]
                then
                        mkdir ${CONFIGDIR}
                        # Déduction des listes de paquets à  télécharger, d'après le sources.list
                        awk '($1=="deb" || $1=="deb-src") && !match($2,"cdrom") { split($2,A,"/"); for(i=4;i<=NF;++i) print "wget -O "A[3]"_"A[4]"_dists_"$3"_"$i"_binary-i386_Packages.gz "$2"dists/"$3"/"$i"/binary-i386/Packages.gz" }' < ${SOURCE} > ${CONFIGDIR}/${CONFIGFILE}
                        # Un message de prévention...
                        echo -e "ATTENTION : Il semblerait que c'est la première fois que vous essayez d'utiliser un dérivé d'apt-get sur cet ordinateur. Afin de terminer la configuration, veuillez exécuter la commande${VERT} apt-off -c${NORMAL} sur un ordinateur disposant d'un accès à  internet, puis poursuivre la procédure."
                        exit
                # Si seconde utilisation, on installe les listes de paquets
                elif [[ `ls ${CONFIGDIR} | grep gz | wc -l` > 0 ]]
                then
                        sudo cp ${CONFIGDIR}/*.gz ${LISTDIR}
                        sudo gunzip ${LISTDIR}*.gz
                # Si l'utilisateur n'a pas bien compris...
                else
                        echo -e "Vous devez d'abord exécuter${VERT} apt-off -c${NORMAL} sur un ordinateur avec internet !"
                        exit
                fi
        fi

        # à‰craser ou mettre à  jour le fichier de paquets à  installer ?
        if [[ -e ${OFFLINE} ]]
        then
                echo "ATTENTION : Le fichier offline.packages existe déjà , voulez-vous l'écraser (si"
                echo "non, les paquets seront ajoutés à  la liste) ? (o/n)"
                read ECRASE
        fi

        # à‰craser ou mettre à  jour, suite...
        if [[ $ECRASE == o ]]
        then
                echo "cd ${DEB}" > ${OFFLINE}
        else
                echo "cd ${DEB}" >> ${OFFLINE}
        fi

        # Pas assez d'arguments !
        if [[ "$#" < 1 ]]
        then
                echo "ATTENTION : Vous devez indiquer le nom des programmes que vous voulez installer,"
                echo "ou le mot \"dist-upgrade\" !!!"
                exit
        # Cas particulier : mise à  jour
        elif [[ $1 == "dist-upgrade" ]]
        then
                sudo apt-get -qq --print-uris dist-upgrade > .offline_tmp
        else
                # Liste des paquets à  installer
                for ((i=1; i<="$#"; i++ ))
                do 
                        sudo apt-get -qq --print-uris install ${!i} >> .offline_tmp
                done
        fi

        # Préparation du fichier de paquets à  installer
        awk '{print "wget -O " $2 " " $1}' < .offline_tmp >> ${OFFLINE}
        echo "cd .." >> ${OFFLINE}

#### Lignes à  décommenter pour Windows :
#       awk '{print $1}' < .offline_tmp >> offline.packages_url
#       awk '{print $2}' < .offline_tmp >> offline.packages_list

        rm -f .offline_tmp
}

# Un peu d'aide...
function printhelp()
{
        ESSAI="\\033[2J\\033[0;0f${BOLD}${BLEU}NOM${NORMAL}\n
        \tapt-off\n
        \n${BOLD}${BLEU}SYNOPSIS${NORMAL}\n
        \t${VERT}apt-off [option]${NORMAL}\n
        \n${BOLD}${BLEU}DESCRIPTION${NORMAL}\n
        \t${VERT}apt-off${NORMAL} est un script destiné à  permettre l'utilisation de\n
        \tl'utilitaire apt sur un ordinateur ne possédant pas de connexion à \n
        \tinternet. Il procède en trois étapes, devant être effectuées dans\n
        \tle répertoire contenant le fichier exécutable apt-off :\n
        \t1- sélection des paquets à  installer,\n
        \t2- téléchargement des paquets ; cette étape doit être effectuée sur\n
        \tun ordinateur disposant d'un système Linux (elle${BOLD} ne nécessite pas${NORMAL} apt,\n
        \tmais utilise${VERT} wget${NORMAL} ; si vous n'avez accès qu'à  un système Windows, vous\n
        \tdevrez décommenter une des deux lignes dédiées à  la fin du fichier\n
        \tapt-off et télécharger manuellement les paquets listés dans le fichier\n
        \t${VERT}offline.packages_url${NORMAL} ou${VERT} offline.packages_list${NORMAL}) et connecté à  internet,\n
        \t3- installation des paquets.\n
        \n${BOLD}${BLEU}AVERTISSEMENT${NORMAL}\n
        \t${BOLD}${ROUGE}ATTENTION :${NORMAL} l'installation de paquets et a fortiori la mise à  jour avec\n
        \tl'option dist-upgrade ne sont pas sans risques. Il est donc fortement\n
        \tconseillé, avant toute utilisation de ce programme, de simuler ces\n
        \topérations avec apt-get afin d'être certain de vouloir effectuer les\n
        \tmodifications (lancez simplement${VERT} apt-get install liste_de_paquets${NORMAL}\n
        \tou${VERT} apt-get dist-upgrade${NORMAL}). L'auteur ne saura être tenu pour responsable\n
        \ten cas de problème.\n"

        ESSAI="${ESSAI}\n${OPTIONS}\n${BOLD}${BLEU}COPYRIGHT${NORMAL}\n
        \tCopyright 2006, Goulven Guillard.\n
        \tCe programme est copyleft, la copie, la modification et la diffusion\n
        \tsont autorisées et encouragées tant qu'elles ne sont pas à  but lucratif.\n
        \tReportez les bugs à  ${BLEU}lecotegougdelaforce [at] free.fr${NORMAL}.\n"

        echo -e $ESSAI | less -R

        return ${SUCCESS}
}

# Liste des options disponibles
function usage()
{
        echo -e ${OPTIONS}
        return ${SUCCESS}
}


# Lisons les options
while getopts "cdg:hox:-:" OPTION
do
        case $OPTION in
                c )
                        if [[ $#>1 ]]
                        then
                                echo "Trop d'arguments !!!"
                                usage
                        else
                                configure
                        fi;;
                d )
                        if [[ $#>1 ]]
                        then
                                echo "Trop d'arguments !!!"
                                usage
                        else
                                download
                        fi;;
                g )
                        while [[ $#>1 ]]
                        do
                                shift
                                PKG="${PKG} ${1}"
                        done
                        generate ${PKG};;
                h ) printhelp;;
                o ) usage;;
                x )
                        while [[ $#>1 ]]
                        do
                                shift
                                PKG="${PKG} ${1}"
                        done
                        extract ${PKG};;
                # Cas particulier : les options longues
                - )
                        case $OPTARG in
                                configure )
                                        if [[ $#>1 ]]
                                        then
                                                echo "Trop d'arguments !!!"
                                                usage
                                        else
                                                configure
                                        fi;;
                                download )
                                        if [[ $#>1 ]]
                                        then
                                                echo "Trop d'arguments !!!"
                                                usage
                                        else
                                                download
                                        fi;;
                                extract )
                                        while [[ $#>1 ]]
                                        do
                                                shift
                                                PKG="${PKG} ${1}"
                                        done
                                        extract ${PKG};;
                                generate )
                                        while [[ $#>1 ]]
                                        do
                                                shift
                                                PKG="${PKG} ${1}"
                                        done
                                        generate ${PKG};;
                                help )          printhelp;;
                                options )       usage;;
                                * )
                        esac;;
                # par défaut
                * ) usage;;
        esac
done

Dernière modification par Skippy le Grand Gourou (Le 04/12/2007, à 11:16)

Hors ligne

#96 Le 05/12/2007, à 20:46

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Alors suite à  ta réponse, j'ai regardé la ligne 141 et 142 et effectué ces manips à  la main. mon dossier var/lib/apt/list a dés lors contenu environ 6-7 fichiers de plus, et tous les bugs dont je parle dans mon précédent post ont disparu. Par contre curieusement au redémarrage du système, tous les nouveaux fichiers ajoutés dans var/lib/apt/lists avaient disparu. Ont-ils été automatiquement concaténés aux autres? je n'e sais pas mais par contre les bugs ne sont pas revenu. A ce propos, je n'ai pas tres bien compris quand ces deux lignes devaient s'éxécuter, vu que les clauses du if ont l'air restrictives, et que ça voudrait dire qu'il y a un moment o๠le script ne fait que ça lorsque l'on l'exécute?

J'ai testé rapidement ton script, et pour l'instant il n'y a pas d'erreur, mais il faudrait pour ça que j'installe un nouveau paquet. Et le problème est que visiblement beaucoup de paquets ne sont pas dans les listes. Ca vient peut être de mon source.list qui est un peu succint, il faudra que je voie à  l'étoffer, je te tiendrais au courant. Je pense essayer d'installer aptoncd, mais synaptic ne le connait pas pour l'instant.


mon source.list

deb cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071017)]/ gutsy main restricted
deb cdrom:[addoncd_feisty]/ feisty addoncd



deb http://archive.ubuntu.com/ubuntu/ gutsy-updates restricted main
deb http://security.ubuntu.com/ubuntu/ gutsy-security restricted main

Par ailleurs j'ai testé la commande que tu proposes, en voici le résultat.

ls -l dans var/lib/apt/lists :

aldian@a-d:/var/lib/apt/lists$ ls -l
total 436
-rwxr-xr-x 1 root root 291703 2007-12-05 00:02 archive.ubuntu.com_ubuntu_dists_gutsy-updates_main_binary-i386_Packages
-rwxr-xr-x 1 root root  15535 2007-12-05 00:02 archive.ubuntu.com_ubuntu_dists_gutsy-updates_restricted_binary-i386_Packages
-rw-r----- 1 root root      0 2007-12-05 10:34 lock
drwxr-xr-x 2 root root   4096 2007-11-21 00:45 partial
-rwxr-xr-x 1 root root 122174 2007-12-05 00:02 security.ubuntu.com_ubuntu_dists_gutsy-security_main_binary-i386_Packages
-rwxr-xr-x 1 root root      0 2007-12-05 00:02 security.ubuntu.com_ubuntu_dists_gutsy-security_restricted_binary-i386_Packages

Hors ligne

#97 Le 07/12/2007, à 15:17

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Bien je suis heureux de t'annoncer que ça fonctionne enfin big_smile. Je me suis débrouillé pour changer mon sources.list et récupérer les clés des dépots, puis j'ai supprimé var/lib/apt/lists/ et j'ai relancé toute la procédure.

J'ai essayé d'installer juste un paquet, et également un dist-upgrade. Les deux fonctionnent sans souci cool .
Il y a juste deux petits détail vaguement dérangeants mais pas essentiels :

1) il se trouve que pour l'un des dépots, le script a téléchargé un fichier gz vide de 0 octets. Lorsque j'ai ensuite éxécuté le script sur mon ordinateur, cette erreur l'a fait s'arrêter. Après avoir diagnostiqué l'erreur, j'ai poursuivi à  la main l'installation des dernières listes. S'il y avait un moyen simple pour que le script ignore l'erreur et installe tout de même les autres listes, ce serait quand même cool. Mais ce n'est pas non plus vital.

2) Apres avoir été mises dans var/lib/apt/list, toutes les listes sont en chmod 700, ce qui provoque le fameux bug dont j'ai parlé plus haut, et j'ai du faire manuellement un chmod 755 sur chaque pour que le bug disparaisse. Sur ce point je pense qu'il suffirait sans doute de rajouter un chmod 755 dans le script, par exemple remplacer la ligne 142 :

sudo gunzip ${LISTDIR}*.gz

par

sudo gunzip ${LISTDIR}*.gz | chmod 755

Mais je ne sais pas si ça marcherait comme ça, avec un pipe, qu'en penses-tu?


Sinon, ce que je pense que je vais faire maintenant que tout marche, c'est faire un tuto "Ubuntu sans internet", dans lequel ton script tiendrait une place centrale, et j'y mettrais un condensé des questions qui se sont posées tout au long de ce topic, et de leurs réponses, qu'en penses-tu?

Hors ligne

#98 Le 07/12/2007, à 22:57

Skippy le Grand Gourou

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Aldian a écrit :

Alors suite à  ta réponse, j'ai regardé la ligne 141 et 142 et effectué ces manips à  la main. mon dossier var/lib/apt/list a dés lors contenu environ 6-7 fichiers de plus, et tous les bugs dont je parle dans mon précédent post ont disparu. Par contre curieusement au redémarrage du système, tous les nouveaux fichiers ajoutés dans var/lib/apt/lists avaient disparu. Ont-ils été automatiquement concaténés aux autres? je n'e sais pas mais par contre les bugs ne sont pas revenu. A ce propos, je n'ai pas tres bien compris quand ces deux lignes devaient s'éxécuter, vu que les clauses du if ont l'air restrictives, et que ça voudrait dire qu'il y a un moment o๠le script ne fait que ça lorsque l'on l'exécute?

Normalement, elles devraient s'effectuer à  la deuxième utilisation, lorsque tu donnes le nom des paquets à  installer. C'est pas le cas ?

Aldian a écrit :

Bien je suis heureux de t'annoncer que ça fonctionne enfin big_smile. Je me suis débrouillé pour changer mon sources.list et récupérer les clés des dépots, puis j'ai supprimé var/lib/apt/lists/ et j'ai relancé toute la procédure.

Nickel ! big_smile
Enfin, est-ce que tu es en train de dire qu'il ne télécharge pas les clés et qu'il en a besoin ? C'est un problème...

Aldian a écrit :

1) il se trouve que pour l'un des dépots, le script a téléchargé un fichier gz vide de 0 octets. Lorsque j'ai ensuite éxécuté le script sur mon ordinateur, cette erreur l'a fait s'arrêter. Après avoir diagnostiqué l'erreur, j'ai poursuivi à  la main l'installation des dernières listes. S'il y avait un moyen simple pour que le script ignore l'erreur et installe tout de même les autres listes, ce serait quand même cool. Mais ce n'est pas non plus vital.

Ok, ça devrait être bon maintenant. La flemme de "customiser" le message d'erreur, par contre... tongue

Aldian a écrit :

2) Apres avoir été mises dans var/lib/apt/list, toutes les listes sont en chmod 700, ce qui provoque le fameux bug dont j'ai parlé plus haut, et j'ai du faire manuellement un chmod 755 sur chaque pour que le bug disparaisse. Sur ce point je pense qu'il suffirait sans doute de rajouter un chmod 755 dans le script, par exemple remplacer la ligne 142 :

sudo gunzip ${LISTDIR}*.gz

par

sudo gunzip ${LISTDIR}*.gz | chmod 755

Mais je ne sais pas si ça marcherait comme ça, avec un pipe, qu'en penses-tu?

à‡a marche pas, non. Mais j'ai corrigé ça.

Aldian a écrit :

Sinon, ce que je pense que je vais faire maintenant que tout marche, c'est faire un tuto "Ubuntu sans internet", dans lequel ton script tiendrait une place centrale, et j'y mettrais un condensé des questions qui se sont posées tout au long de ce topic, et de leurs réponses, qu'en penses-tu?

Pas de problèmes pour moi. Par contre le sujet des scripts sur le wiki est assez sensible, ça risque de ranimer le débat quand tu signaleras la création de la page sur la liste de diffusion... wink

Je mets la dernière version dans le premier post.

Hors ligne

#99 Le 08/12/2007, à 13:20

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

Alors dans l'ordre :

Normalement, elles devraient s'effectuer à  la deuxième utilisation, lorsque tu donnes le nom des paquets à  installer. C'est pas le cas ?

Si ça marche parfaitement.

Nickel ! big_smile

Enfin, est-ce que tu es en train de dire qu'il ne télécharge pas les clés et qu'il en a besoin ? C'est un problème...

Pour être franc, je ne me suis pas posé la question. Dans le générateur de listes, il y avait marqué qu'avant de modifier son sources.list, il fallait télécharger la clé pour chaque dépot, donc je me suis débrouillé pour le faire.

Pour ce qui est du Wiki, je vais voir ce qu'il en est.

Hors ligne

#100 Le 09/12/2007, à 17:34

Aldian

Re : Apt-off, ou apt-get sans connexion internet (ou trop lente)

page wiki créée et disponible ici :

http://doc.ubuntu-fr.org/tutoriel/comment_ajouter_des_paquets_sans_internet

en attente des réactions de la liste de diffusion...

Hors ligne