Des paquets Debian sans dépendances .nod,et modules .lzm

Bonjour,

Je viens vous demandez votre avis sur la pertinance de créer des paquets debian que l’on téléchargerai directement avec ces dépendances que j’appelle .nod (no dependances)?

Points critiques pour une debian installer sur disque:

  • tous cela serai installer avec dpkg -i dépendances et paquets, cela ne risque pas d’endommager le systèmes si des paquets (dépendances) sont déjà installer?
  • Cette technique existe peut-être déjà?

J’explique l’intérêt: Ancien Windowsiens et depuis quelques années sous Debian et Ubuntu, mon seul regret (n’ayant pas de connexion internet à domicile) été de ne pouvoir installer facilement des logiciels en plus (comme les .exe :smiley: ).

Car même en téléchargeant d’un autre ordinateur (souvent sous windows) un .deb, arriver à domicile Gdebi ou Kpackage demandé bien sur les dépendances. La compilation a partir des sources idem.

Par la suite j’ai acheté un gros disques dur et squatter chez mon père pour essayer de copier l’intégralité du mirroir debian et ubuntu avec debmirror, voir même avec filezilla en m’attaquant à ftp.fr.debian.org/. Constat: la commande debmirror est capricieuse et filezilla prends tous (archives et verions confondues) et il est impossible d’arriver au bout avant plusieurs jours et je parle pas des mises à jours à faire.

Puis j’ai trouvé apt-get -dy install nom_du_paquet qui permet de seulement télécharger les paquets et ses dépendances.

Donc c’est la que je fais un script, qui une fois les paquets récupérer, je les transfèrent dans un répertoire et mon nom_du_paquet.nod est donc créer (en le compressant bien sur).
Je pense faire donc les logiciels les plus prisés et connu qu’on pourra télécharger et installer une sur une machine sans connexion).

L’atout pour un live CD Debian:
L’intérêt principale de ces .nod et que l’on peut les transformer en .lzm afin de les utiliser pour des Live CD Debian/Ubuntu pour insérer rapidement (le temps de décompression) les logiciels a la volée pendant la session live ou recreer une iso simplement en les depossant dans le repertoire modules.

P.S: Les modules .lzm sont utilisée par les live CD Slackware pour installer des logiciels depuis les sessions Live. commande: lzm2idr dir2lzm activate deactivate tgz2lzm…
http://www.linux-live-cd.org/spip.php?article447&var_recherche=module

PureOS dispose de ces commandes car il utilise linux live script pour son live CD, on peut donc utiliser des .lzm créer a partir de .deb
Je viens d’ouvrir un post pour voir si cela les intéressent.
http://pureos.org/index.php?option=com_fireboard&Itemid=35&func=view&id=963&catid=10

Bonne soirée.

Webmaster Linux live cd
http://linux-live-cd.org

Personnellement, je pense que c’est difficilement réalisable voire impossible selon le fonctionnement des systèmes UNIX actuels (à cause de la gestion des bibliothèques partagées).

Pour que ton paquet .nod soit complètement fonctionnel, il faudrait qu’il incorpore l’arbre complet des dépendances nécessaires pour installer le logiciel : les paquets créés seraient énormes et il y aurait trop de redondances entres les paquets.

Une autre solution consiste à compiler les logiciels statiquement. C’est le cas par exemple pour certains logiciels propriétaires comme Skype, Opera, etc. (deux versions sont souvent disponibles, une dynamique et une statique).
Mais utiliser des logiciels compilés statiquement implique de gros désavantages. Il est impossible d’utiliser la mémoire partagée pour les bibliothèques, la mémoire est donc largement gaspillée.

Pour installer des logiciels sans avoir accès un Internet, la meilleure façon est de générer la liste des paquets à télécharger manuellement avec l’option –print-uris d’apt-get.

À lire : help.ubuntu.com/community/AptGe … /PrintUris

C’est vrai que beaucoup de paquets comporterai des .deb en commun, mais les paquets obtenu ne sont pas si volumineux que ça et il fonctionne trés bien.
La plupart du temps cela va de 1 à 10 paquets .deb suivant le logiciels demandés.
Ce système est vraiment pour dépanner, à utiliser pour des gens qui ont par exemple un fixe sous linux à la maison(sans connexion) et au travail seulement windows, ils pourrai facilement récupérer des paquets et les installer.

Le but est de faire très simple, pouvoir télécharger des logiciels depuis un poste windows ou linux (même autre que debian), d’un cyber cafe…
La seule solution passe par le navigateur (même IE).

Pour cela, la personne entre depuis une page web le nom du logiciel désiré, sa distribution d’origine (Debian ou ubuntu stable du moment) en coulisse sur le serveur, apt-get télécharge et transforme en .nod, l’internaute récupère ça et peut tranquillement(sans problème de manque de dépendances) installer son programme à domicile.

Les .nod serait créer en calculant les dépendances à partir d’une version stable de Debian et d’autre .nod pour ubuntu en calculant les dépendance par rapport au contenu du CD d’install.

Les .nod pourrai être généré à la demande depuis un navigateur et si la personne dispose de la liste de paquets dejà installer, son paquets .nod serait personnalisé(moins volumineux) si elle dispose déjà de dépendances installé par d’autre programme précédenment.

Je mettrai mes débuts de scripts en ligne si quelqu’un veut expérimenter la création de .nod et/ou être plus clair.
J’avoue que c’est énorme pour le service rendu, mais j’ai tellement galèrer à installer des programmes que si ça peut aider quelques personnes.

Par contre c’est sur que j’en proposerai pour des live CD Debian, car tous le monde à le me live CD donc les même besoin de dépendances et donc les même .nod.

J’ai essayer sous PureOS et cela fonctionne à merveille et surtout on peut personnaliser facilement le live CD en déposant les .nod dans un répertoire :smiley: .

En tous merci pour --print-uris je vais l’essayer…

Bonne soirée

Et Klik ?

Slackware is for you !

Salut,

Et oui, j’avais lu que pour Slackware les dépendances sont considérés comme des bugs, sans allez jusque là c’est vrai que le premier frein à l’utilisation d’un logiciel est de ne pouvoir l’installer car on c’est bien que quand c’est installé d’OFFICE c’est également utilisé d’office…

Je vais l’installer sous peu, mais c’est vrai que les live CD sous Slackware sont les plus agréable à utiliser et personnalisé.

Mon script en quelque sorte profite des .deb et de dpkg/apt pour fabriquer l’équivalent des .tgz pour Debian.

Pou klik, l’idée est vraiment bonne, mais il manque seulement un dépot qui serait accesible depuis un navigateur (meme IE) pour pouvoir télécharger ses fameux .cmg librement, je crois que l’on est contraint de passer par le protocole klik pour les télécharger (donc d’un cyber par exemple c’est mort), obliger d’être sous linux, d’installer klik…

Bonne journée

C’est pas que les dépendances sont considérés comme des bugs, mais dans le principe slackwerien (?), on construit son paquet de facon à avoir le minimum de déps possible, quitte à perdre un certain nombre de fonctionnalités du programme final.

Alors que sous debian, le système étant fait pour résoudre les deps automatiquement, il installe des deps souvent inutiles pour donner toutes les fonctionnalités du programme (pour qu’il puisse convenir à n’importe quel utilisateur, sans qu’il ai besoin de recompiler).

Par exemple, sur mon laptop j’utilises ncmpc pour lire de la musique via le serveur mpd de mon desktop. Sous slack, je construit mon paquet ncmpc, ses seules dépendances sont dans le système de base. Sous debian, un apt-get install ncmpc, m’installe un serveur mpd sur mon laptop, alors que j’en ai pas besoin, en plus gentil debian, tellement sûr que je veux mpd, me le mets en service dans /etc/init.d/ !

De ce fait, je penses que ton script fonctionnera mais le nombre de paquets à télécharger et à installer sera beaucoup plus important que sur une distrib slackware-based. C’est pourquoi la plupart des distribs crées avec les linux-live-scripts sont basées sur slack.

Ca pourra peut-être t’intéresser, mais la distrib slax propose un module “dpkg” qui te permet de convertir des .deb en .lzm : http://www.slax.org/modules.php?category=system

Bonsoir,

[quote=“kna”]
Ca pourra peut-être t’intéresser, mais la distrib slax propose un module “dpkg” qui te permet de convertir des .deb en .lzm : slax.org/modules.php?category=system[/quote]

C’est trés bien quelle propose cela (dpkg), car mes .nod (qui sont: le .deb du paquet demandé et ses dépendances aussi des .deb) s’installe avec dpkg -i .
Malheureusement je ne pourrai pas utiliser mon script pour générer des .nod depuis une session Slax car il utilise apt qui n’est pas présent sur slax pour télécharger les paquets, à moins de faire un mix de dpkg et wget…

Mais je pense que je pourrai peut-être y arriver depuis une debian pour Slax en tenant compte de la liste des paquets installer sur slax(peut-etre).

Pour deb2lzm
Le hic avec deb2lzm, c’est qu’il n’agit que sur un paquets que l’on aurait télécharger sur internet, il ne gère pas les dépendances et ne télécharge pas les paquets…

D’ailleurs j’appelle le mien deb"s"2lzm car il prends en charge les dépendances.
Reste à faire des tests(pour tous ce qui est lzm sous PureOS) car des fois j’ai des réactions bizarre, faut dire que je teste avec des mirroirs locaux pas à jour avec du etch pour PureOS qui est testing, donc je sais pas si c’est mon script ou mon mirroir qui foire(penche plutot pour ça).

Par contre sous ubuntu, les .nod fonctionne bien.

Je pense faire par la suite un .deb avec tous ce qui faut comme commande et librairie pour manipuler et créer des .nod et lzm sous debian. :slightly_smiling:

Si vous connaissez une option de la commande dpkg qui permet de télécharger sur les mirroirs je suis preneur?

Bonne soirée.

Bonjour,

Voici l’adresse
http://linux-live-usb.org/debian/
pour utiliser le script que j’ai fait afin de pouvoir télécharger un paquets et ses dépendances d’un seul coup dans un même répertoire(du nom du logiciel demandé)afin de l’installer même sans connexion par la suite, de plus ce script permet de générer facilement des .lzm pour une utilisation avec des live CD Debian construit à partir des linux-live script comme PureOS , ça marche avec la dernière version light de PureOS
http://pureos.org/index.php?option=com_fireboard&Itemid=35&func=showcat&catid=10

Pour plus de renseignement et télécharger les scripts:
http://linux-live-usb.org/debian/

Sinon pour cloturer sur l’essai des techniques pour installer des logiciels et pouvoir les installer/utiliser hors ligne même sur d’autre machine il y a aussi 0install, qui à d’ailleurs deb2zero qui permet de créer des logiciels 0install à partir de .deb .Cependant sa prise en main et fonctionnement demande du temps et les logiciels sont stocké bizarrement exemple /var/cache/0install/34456667776223/bin/inkscape, un fois qu’on en a plusieurs on ne peux pas les retrouver car ils sont nommé par des numéros?

http://0install.net/goals.html

http://0install.net/deb2zero.html

La comparaison avec autopackage klik, apt-get et rpm…
http://0install.net/matrix.html

Bon test et bonne journée.

Webmaster Linux-live-cd.org
http://linux-live-cd.org

Une petite remarque désobligeante pour commencer :

Copier dans /usr/lib c’est mal.
Copier dans /usr/local/lib c’est bien mais n’est pas vu par défaut, il faut rajouter le chemin à la variable LD_LIBRARY_PATH :

(on peut rajouter la commande dans /etc/profile pour ne pas avoir à la retaper à chaque fois)
Note : si on a déjà compilé une lib, c’est peut-être déjà fait.
En passant : voir les commandes utilisées

Sinon, pour le script, si j’ai bien compris, tu vas faire la sélection de paquets toi-même pour les paquets les plus courants.
Est-ce qu’il sera possible de ne pas télécharger les paquets déjà installés en postant le résultat de dpkg --get-selections ou dpkg -l (que l’on peut facilement rediriger vers un fichier texte puis le copier sur une clé usb) ?

Le truc qui serait vraiment top (si c’est faisable) c’est que le script puisse lire les dépendances dans une archive .deb et les télécharger sur le ftp, ainsi on pourrait installer n’importe quel paquet de cette façon…
Bon, bien entendu, plus simple à dire qu’à faire…

Bien vu les lzm sous debian !

Bonjour,

C’est vrai que j’ai fait le .deb à la hâte pour que Marc teste sur PureOS.

[quote=“kna”]Une petite remarque désobligeante pour commencer :
Copier dans /usr/local/lib c’est bien mais n’est pas vu par défaut, il faut rajouter le chemin à la variable LD_LIBRARY_PATH :

(on peut rajouter la commande dans /etc/profile pour ne pas avoir à la retaper à chaque fois)
Note : si on a déjà compilé une lib, c’est peut-être déjà fait.
[/quote]
J’ai rectifier en mettant dans /usr/lib/, ça simplifie les choses.
Je vais aussi mettre dans l’archive un install.sh qui placera tous au bon endroit.
Le nouveau nodep.dep est en ligne ici:
http://linux-live-usb.org/debian/script/nodep.deb

Je ferai la sélection mais les internautes pourront quand même demandé la création (il me faut juste un serveur sous Debian en fait)

Ce serai de partir d’une install standard sans aucun paquet en plus ni en moins(sauf mise à jours) et de créer les paquets depuis cette install, comme ça celui qui télécharger le .nod aurait peu de chance de manqué de dépendance , au pire un de temps en temps, ce qui est facile à récupérer.
Car un novice ne s’amuse généralement pas à enlever des paquets de l’install de base, par contre il aime en rajouter.

En fait, j’ai déjà fait une version comme ça mais pas encore totalement au point. Elle utilise aussi des outils Debian existant comme apt-rdepends nom_du_paquets (sans .deb comme avec apt-get install) on accède à toutes les dépendances qu’il faut satisfaire, après il faut comparer cette liste à dpkg -l ou --get-selections et il reste que les paquets necessaire à télécharger sur le ftp debian.
Si je la fini je la met en ligne…
Et là ce serai même faisable depuis un poste windows(IE,etc…) en upload son dkkg -l pris sur son install, et demandant son paquet, un script construirait tous ça et l’internaute pourrai installer tranquilement hors connexion.

Et j’ai déjà pensez à faire des paquets pour une slax(des .lzm) à partir de .deb en sortant également les paquets installer sur une slax et en comparant avec un apt-rdepends mais la j’avoue c’est completement tordue mais réalisable.

C’est vrai qu’à la base je voulais combler le manque de possibilité de pouvoir télécharger un .deb avec toutes ces dépendances mais en fait, c’est les .lzm qui au final s’avère être très intéressant…

Merci du retour, A bientôt…
A+

Mouais, moi je laisserai /usr/lib seulement pour les paquets officiels.
Bon tu me diras, si c’est pour installer plein de paquets “non-officiels” sur le système…
(nod = non official debian ? ok j’aurais pu m’en passer de celle là)

Tu es encore plus tordu que moi ? :smt119

Ben ca permet de faire une debian-live modulable comme une slax, mais sans se soucier des dépendances…
Soit réunir les 2 côtés pratiques de ces 2 distribs.

Bon perso, je reste sur ma slax, mais c’est parce que j’aime bien me prendre la tête, avoir mon système minimal tout ca. D’ailleurs si dans tes péripéthies tu es tombé sur des tutos sur la construction d’une slax avec les linux-live scripts, je suis preneur…

Mais pour un débutant, ou quelqu’un qui simplement ne connait rien à la compilation, ou la gestion des dépendances, ou tout simplement quelqu’un qui ne veut pas se faire ch…, c’est LA solution ! :smt026
Sutout si tu arrives à faire ton script qui créerait les paquets automatiquement…
Bon courage pour y arriver celà dit… :smt024

kna, tu peux éventuellement regarder ma clef. Il y a un système qui à partir de la clef boutable de base permet de créer des extension automatiquement, extension chargée au moment du boute si on met le fichier sur la clef (va voir http://clefagreg.dnsalias.org/MODIF.html). Tu peux faire des paquets autosuffisants pour un système debian etch basique par cette méthode.

Comme j’ai dit j’aime bien me prendre la tête (et puis je pourrais me la péter “Yep, j’ai ma distrib perso” :smt004 )
Et puis, en compilant moi-même mes paquets, je peux minimiser les dépendances…

Sinon, effectivement, le principe est le même…
Et c’est quand même sympa de pouvoir faire ça sur un système debian…

Et je jetterais quand même un oeil, sur ta clé, il y a peut-être des trucs qui m’inspireront…
Le cd qui permet de booter sur l’usb m’avait inspiré déjà…

Bonsoir,

Je suis jamais tombé sur ce genre de tutos, mais le readme et simple et clair, une fois les scripts télécharger , il suffit de l’extraire dans /tmp/ puis lancer le script qui se trouve à l’intérieur, je crois que c’est build.sh ( après avoir paramétrer 2, 3 truc dans le fichier .config avant), et le système sur lequel tu te trouve, ta slax modifier par exemple, va compréssé chaque répertoire /bin /etc (paramétrable dans .config d’ailleurs)en .lzm et te générer l’iso automatiquement.

En fait j’ai essayer de le faire avec autre chose que Slax, (sidux et Kubuntu) mais je coince car il faut faire un noyau compiler avec lzma, squashfs et aufs. Je vais sous peu faire un tour sous slax pour essayer tous ça (les deb vers lzm) et linux live script, je mettrai le tuto sur le site des no dependances!

Si tu aimes bien Slax, connais-tu GoblinX (je suis d’ailleurs dessus actuellement) car il a développé un tas d’outils (avec interface graphique gtk) pour fabriquer des .lzm depuis les depôts slackware, les extraire,… un super support du wifi, vraiment agréable comme live CD/USB.
En fait je voudrai prendre tous ces idées de dérivés Slackware pour Debian

Je vais moi aussi tester cela, mais tu compile toi même tes sources pour créer ces extensions, ou tu te sert de packages debian ou autres?

Bonne soirée.

[quote=“Boyquotes”]

Je vais moi aussi tester cela, mais tu compile toi même tes sources pour créer ces extensions, ou tu te sert de packages debian ou autres?

Bonne soirée.[/quote]

Tout est là. Ce sont des paquets debian etch.

Je posais la question à tout hasard, j’ai seulement lu le howto de linux-live scripts en diagonale pour l’instant. Je ne m’y suis pas encore attaqué, ayant d’autres projets sur le grill…
Et vu le projet que j’ai en tête, j’aurai surement des questions ou problèmes à un moment ou un autre :

Les grands esprits se rencontrent. J’ai aussi essayé de faire ca sur une debian. Par contre les modules aufs et squashfs peuvent être compilés via module-assistant, tu n’es pas obligé de recompiler tout le noyau.
Mais comme, dans mon cas, je veux pouvoir résoudre les dépendances à partir du système ou je compile (comme ca j’ai juste à copier les lzm sur ma clé), je suis parti sur une autre méthode :

  • Installer une slackware minimale à coté de ma debian
  • Construire une slax à partir de la slackware (en plus, j’ai pas besoin de kde, ca tombe bien)
  • De debian, chrooter dans la slackware pour compiler mes modules !
  • si le chroot pose problème (variables d’environnements ou que-sais-je), je testerai la même méthode avec une machine virtuelle.
  • si j’ai le temps, la forme, (la folie ?,) la même chose à partir d’une LFS !

Bonjour,

J’ai donc essayé la clef A greg, je trouve ça pas mal et m’en vais la rajouter à linux-live-cd.org sous peu.

Le problème n’ayant pas internet j’ai pas pu allez plus loin que dpkg-get. J’ai essayer de créer l’arborenscence à la main pour dpkg mais j’ai du vite abandonner. Si je passe ça après j’ai un mirroir local pour générer des “extensions” ( un peu des .nod en qq sortes).
Le seul problème avec ta technique, c’est que ça installe le paquet puis à partir de là on peut créer une image du paquet demandé alors que mon script simule juste une installe( apt-get -dy install) et compresse le résultat.

Par contre je me demande un truc qui n’est pas expliqué (mais c’est peut-être dans /usr/local/) quelle commande charge l’extension(module) déposé dans “agreg” au démarrage?
Et peut-on adapter la technique sur une install Debian ou Ubuntu standard (pas obliger de modifier le noyau)? car ton live CD/USB ne s’installe pas?

[quote=“kna”]
Mais comme, dans mon cas, je veux pouvoir résoudre les dépendances à partir du système ou je compile (comme ca j’ai juste à copier les lzm sur ma clé), je suis parti sur une autre méthode :

  • Installer une slackware minimale à coté de ma debian
  • Construire une slax à partir de la slackware (en plus, j’ai pas besoin de kde, ca tombe bien)
  • De debian, chrooter dans la slackware pour compiler mes modules !
  • si le chroot pose problème (variables d’environnements ou que-sais-je), je testerai la même méthode avec une machine virtuelle.
  • si j’ai le temps, la forme, (la folie ?,) la même chose à partir d’une LFS ![/quote]

Mais debs2lzm gère bien les dépendances et créer un lzm “personnalisé” pour ton système quel qu’il soit (mais basé sur debian), un paquet fait sur ma debian ne sera pas le même sur ta debian(on a pas les mêmes besoin de dépendances) puisque c’est l’équivalent d’un apt-get install. Mais je pense tu préfère carrément faire des lzm en compilant à partir des sources si je comprends bien.

Sinon bonne chance pour le chroot( j’y avez pas encore pensé), mais si tu veux le faire à partir d’une slackware, pourquoi pas utilisé les outils slax et goblinx pour les modules (tgz2lzm, rpm2tgz, deb2lzm…)

Pour les points que j’aimerai faire:

  • arriver à charger un lzm à la volée sur un système standard (comme avec activate sur un live) de cette manière on peut charger/décharger un logiciel sans toucher au système de base.
  • ou en les déposant comme dans la clef à greg il serai chargé que ce soit un live CD ou une Debian/Ubuntu installé.
  • Adapté debs2lzm à toutes les dérivés slackware (slax, goblinx, zenwalk, wolvix…), donc adapté apt-get? ou trouver une astuce pour “wget” les paquets requis sur mirroir debian.

Bonne journée.
P.S: Si vous voulez laisser un tuto(sur linux-live-usb.org/debian/), je peux vous créer un compte (c’est modX le CMS).

Exactement ! Ca me permet de minimiser les dépendances et de faire un système ultra-minimal.

En fait je construirai pour chaque module un paquet slackware .tgz, donc j’utiliserai seulement tgz2lzm…

Il faudrait regarder les scripts de activate et deactivate, puis les adapter au système. Voir aussi les scripts de fran.b sur sa clé, qui sont déjà plus adaptés à debian…
Sans avoir regardé, a priori, j’imagine que pour activate ca décompresse simplement le fichier à la racine, puis execute le install.sh s’il existe. Pour deactivate ca doit lister les fichiers du lzm pour les supprimer sur le système…
Sans oublier le ldconfig à la fin pour les libs…

Ben si j’arrive à faire ce que je veux, je ferais surement un tuto dessus. Voire même un site ou on pourra déposer ses modules (je mettrais une image disque de la slackware) et dans ce cas je te filerai le lien.
Mais bon, le temps que je m’y mette, que j’y arrive, et que je rédige un tuto… Rendez-vous en 2026 :smt006 :smt003

Non, tu n’as pas compris, il fait l’nstallation et comprime le résultat (i.e les fichiers rajoutés ou modifiés). C’est pour cela que j’ai pensé à ton histoire. Une fichier extension contient exactement l’arborescence à rajouter. Par contre il n’y a aucun système d’adaptation à l’hote prévu, c’est tt le temps le même.

C’est fait automatiquement. Toutes les extensions sont chargées.

Ça n’est pas le but. Sinon, il est impératif d’adapter le noyau (patch + modules)