This is the old SliTaz forum - Please use the main forum.slitaz.org

Question simple mais très utile
  • moulefritemoulefrite August 2010
    Bonjour,

    Chacun sait que pour installer des paquets hors-connection, il faut une clef usb.
    S'il s'agit d'un paquet, ça va. Mais si on a un dossier avec des centaines de .tazpkg, ça prends des heures !

    Il y a bien la solution "tazpkg install-list" qui installe tous les paquets figurant dans la liste. PROBLEME
    Comment créer cette liste ?

    Il y a un autre moyen ? Ou est ce que quelqu'un peut fournir un petit script pour récupérer le nom des paquets
    et l'inscrire dans un fichier texte ?

    Super utile pour tous !

    Merci
  • moulefritemoulefrite August 2010
    for each_file in /folder/where/tazpkg/are/*
    do
    name=${each_file##*/}
    echo "${name%.*}" >> /root/distro-packages.list
    done

    ___________________________

    Voilà, en partant de rien, j'ai y passé une partie de ma nuit ...

    J'espère que ça va aider certains


    Si quelqu'un pouvait l'améliorer en tenant compte du répertoire courant avec pwd ? (comme ça on pourrait en faire un script à lancer dans le même répertoire que les tazpkg sauvegardés sur usb) et en ne prenant compte que des seuls fichiers .tazpkg (et pas de tous les fichiers figurant dans le répertoire)
  • LuXLuX August 2010
    Salut,

    je ne viens plus guère par ici mais pour une fois... Nostalgie ? Bref.

    Tu as dû t'en apercevoir depuis mais ce que ton script produit ça ressemble beaucoup au résultat d'une simple commande :
    ---EDIT---
    Argh, j'ai encore oublié comment on insére du code dans les posts sur ce forum... #@|%§** de Vanilla !!! Bon, c'est lisible quand même, je laisse comme ça.
    ------------
    [code]$ ls -1 /folder/where/tazpkg/are/ [/code]
    Note l'option avec le chiffre 1 (pas la lettre l) qui permet d'avoir un objet (nom de fichier ou de répertoire) par ligne. La seule différence c'est qu'en plus tu supprimes toutes les extensions à la fin des noms de fichiers, ce qui revient à appliquer une opération supplémentaire, par exemple avec sed (voir ci-après).

    Tu veux la liste des fichiers dans le répertoire courant dont le nom fini par '.tazpkg' ? Et tu veux qu'il y ait un nom de fichier par ligne ? Rien de plus simple :
    [code]$ ls -1 *.tazpkg[/code]

    Si les fichiers en question ne sont pas dans le répertoire courant au moment où tu tapes cette commande, soit tu te déplaces avant vers ce répertoire :
    [code]$ cd chemin_vers_rep ; ls -1 *.tazpkg[/code]
    soit tu adaptes la commande :
    [code]$ ls -1 chemin_vers_rep/*.tazpkg[/code]
    Dans le premier cas tu auras la liste des noms de fichiers (je crois que c'est ce que tu voulais, sans certitude), dans le second celle des noms de fichiers précédés de 'chemin_vers_rep/'. (Du moins c'est comme ça chez moi, mais je ne suis plus sous Slitaz.)

    Enfin si tu veux supprimer l'extension '.tazpkg' tu peux filtrer par sed :
    [code]$ cmd_precedente | sed -e 's/.tazpkg$//'[/code]

    Et pour sauver le résultat d'une commande dans un fichier :
    [code]$ une_commande > un_nom_de_fichier[/code]
    Faire précéder 'un_nom_de_fichier' d'un chemin, si on veut qu'il soit écrit ailleurs que dans le répertoire courant.

    Exemple complet, basé sur le tien :
    [code] cd /folder/where/tazpkg/are ; ls -1 *.tazpkg | sed -e 's/.tazpkg$//' > /root/distro-packages.list[/code]

    Cordialement,
    LuX.
  • moulefritemoulefrite August 2010
    Salut LuX

    Et tu pourrais m'aider pour que quand Slitaz a besoin d'un paquet au boot, il regarde dans un dossier spécifique plutôt que de se connecter sur mirror.slitaz.org
  • LuXLuX August 2010
    Euh... comme je disais, je ne suis plus sous Slitaz. Et comme je ne comprends même ta question, ça doit vouloir dire que tu fais des trucs que je n'ai jamais fait sous Slitaz.

    Ma Slitaz était sur mon disque dur et n'allait rien chercher ailleurs au démarrage, sauf l'heure juste via une commande 'rdate' placée dans /etc/.../local.sh. J'oublié le chemin exact : peut-être quelque chose comme /etc/init.d/local... bref, je ne sais plus. C'est le fichier où l'on inscrit les commandes qu'on veut voir lancées au démarrage par le système (globalement, pas juste pour un utilsateur au moment ou il démarre sa session X). Je rappelle ça juste au cas où, mais je doute que ça réponde à ta question.

    Peut-être que quelqu'un d'autre sur ce forum pourra te répondre ?

    Bye (ou bâille, comme dirait Gokhlayeh),
    LuX.
  • GokhlayehGokhlayeh September 2010
    Salut,

    L'adresse du dépôt de paquet se trouve dans le fichier /var/lib/tazpkg/mirror. Il est possible d'utiliser une adresse locale dans ce fichier :
    echo /adresse/du/dossier/local > /var/lib/tazpkg/mirror
    En procédant ainsi le dépôt en ligne ne sera plus du tout utilisé, il faut donc en faire une copie locale (avec rsync) :
    rsync -r -t -p -o -g --progress --delete -l -H rsync://mirror.slitaz.org/slitaz/packages/$VERSION /adresse/du/dossier/local
    note : choisir stable ou cooking à la place de $VERSION

    Il est aussi possible d'utiliser le dossier de cache pour les paquets : /var/cache/tazpkg. Tout paquet à jour dans ce dossier sera installé sans être re-téléchargé. Deux solutions : soit tu places tes paquets directement dans ce dossier, soit tu places un lien symbolique vers eux.

    J'espère que cela va te permettre de faire ce que tu voulais et que la réponse n'est pas trop tardive.

    @LuX : bientôt de retour ? :)

    * baille * ;)
    GoKhlaYeh
  • moulefritemoulefrite September 2010
    Remerciement tardif, mais remerciement quand même aux 2

    @GoKhlaYeh

    Dans /var/lib/tazpkg/mirror , il y a bien déja l'adresse

    http://mirror.slitaz.org/packages/3.0/

    Tu m'assures qu'en y insérant l'adresse d'un répertoire ou , par exemple j'y mettrais les paquets pour Nvidia , ceux ci pourrait s'installer au boot sans se connecter ? (Lorsque on propose d'installer xorg et drivers de la carte)

    Pourtant, les installations se font via la commande "wget" , commande qui marche apparement seulement avec les http

  • GokhlayehGokhlayeh September 2010
    J'utilise un dépôt local avec SliTaz depuis des mois et je n'ai jamais eu de problème. Si ma mémoire est bonne tazpkg utilise wget pour les dépôt en ligne seulement (fonctionne avec http/ftp). S'il les paquets sont en local il utilise cp pour en faire une copie dans le cache.

    Cela dit, si tu veux avoir seulement quelques paquets en local, cette méthode n'est pas la meilleure à mon avis. En admettant que le but soit d'installer le pilote nvidia je ferais :

    1- Mettre tous les paquets nécessaires dans un dossier (nommons le /dossier)
    2- Ajouter un petit script dans /etc/init.d/local.sh pour installer les paquets et configurer xorg au démarrage :


    # Mettre un lien vers les paquets dans le cache tazpkg.
    ln -s /dossier/*.tazpkg /var/cache/tazpkg

    # Installer les paquets voulus.
    tazpkg get-install-list /dossier/paquets.list

    # Reconfigurer xorg si cela est nécéssaire, ou utiliser toute commande utile. Par exemple :
    modprobe nvidia
    tazx config-xorg


    En guise d'exemple supplémentaire voici ce que je lance au démarrage pour avoir les pilotes intel (j'ai donc un clone du dépôt cooking sur mon disque dur ; j'utilise une session live)


    # Installer pilote intel.
    tazpkg get-install xorg-xf86-video-intel

    # Installer pilote touchpad.
    tazpkg get-install xorg-xf86-input-synaptics

    # Tweaks pilote intel.
    rm /dev/dri
    mkdir /dev/dri
    modprobe i915 modeset=1
    modprobe drm

    # Reconfigurer xorg.
    tazx config-xorg

    # Ajouter l'outil pour gérer la luminosité de l'écran.
    tazpkg get-install xorg-xbacklight
    /etc/init.d/acpid restart


    J'espère que cela te seras utile.
    A+
  • moulefritemoulefrite September 2010
    @Gokhlayeh

    Bien merci, mais en faite ç répond pas tout a fait a ma question.

    Alors imagine : J'aimerais qu'un newbie Slitaz ,quelque soit sa carte graphique, sans connection Internet, puisse booter en Live et se retrouver automatiquement avec un Xorg configuré pour sa carte.

    Ce que tu proposes, c'est un script qui installerait des paquets spécifiques.

    Moi j'aimerais le script de Slitaz qui auto-install les paquets appropriés (mais qui malheureusement se connect sur Internent pour cela )

    Mais si je mets préalablement tous les paquets dans var/cache/tazpkg (ou mieux - un lien symbolique vers ce dossier) , tu penses que le processus d'autoinstall skippera le wget et installera les paquets voulus pour l'autoconfig ?

    Je pourrais tester en direct mais j'ai pas le matos pour provoquer l'autoconfig de Xorg (j'ai chipset Intel seulement et pas de Ati/Nvidia)
  • GokhlayehGokhlayeh September 2010
    Oui si tu mets tous les paquets ou des liens dans le cache ton script n’utilisera pas internet.
    Je peux tester pour Nvidia si tu veux, j'ai un PC avec une 6600GT sous la main.
    Pour ton chipset Intel, as tu besoin d'utiliser les même tweaks que moi (voir ci dessus) ?
  • moulefritemoulefrite September 2010
    tweaks ? ki ci ké ke ća ?

    J'utilise en fait xvesa et ća me suffit . Mais j'imagine que pour avoir un écran externe avec une autre résolution, faut bien Xorg

    Tiens nous au courant pour l'autoinstall
  • moulefritemoulefrite September 2010
    tweaks ? ki ci ké ke ća ?

    J'utilise en fait xvesa et ća me suffit . Mais j'imagine que pour avoir un écran externe avec une autre résolution, faut bien Xorg

    Tiens nous au courant pour l'autoinstall
  • GokhlayehGokhlayeh September 2010
    Par tweak je veux dire hacks, modif, etc... Je voulais savoir si toi aussi tu as besoin de ca pour faire fonction xorg avec le pilote intel :


    # Tweaks pilote intel.
    rm /dev/dri
    mkdir /dev/dri
    modprobe i915 modeset=1
    modprobe drm

    D'après la doc le modeset=1 n'est pas nécessaire chez tout le monde. Chez moi ça ne marche pas sans. C'est ce genre de petits trucs qui rendent très difficile l'installation automatique de pilotes... En fait pour faire bien les choses il faudrait une base de données contenant quels paquets et quels petites modifs utiliser selon le matériel... Mais ce serait un gros travail qui nécessiterait en premier lieu un code de qualité, et ensuite un gros soutient de toute la communauté pour envoyer des infos concernant leur matériel. Enfin il reste la question de savoir si l'on peut se permettre d'installer du non-libre dans une distrib GNU/Linux sans demander à l'utilisateur... d'après moi non.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In Apply for Membership

SliTaz Social