Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Creation d'un script d'installation/ paquet deb à partir du résultat d'une commande linux


#1

Bonjour a tous,

Pour mon premier post, j’aurais besoin de votre connaissance en linux ( debian/ubuntu ).

Pour mon travail, je dois trouver un moyen de créer un script d’installation/paquet deb à partir du “résultat” d’une commande linux .
J’explique :
Imaginez que je souhaite sauvegarder à un instant T le résultat ( fichiers du paquets deb, librairies, dépendances installées, etc ) d’une installation faite avec composer ou apt-get install afin de pouvoir redéployer à l’identique plus tard.
Sachant que le ghost de machine n’est pas pertinent dans mon cas.

Si vous aviez des idées ça m’aiderait énormément.

Je vous remercie d’avance.

Jérémie


#2

Bonjour,

Pour sauvegarder la liste des softs installé :

aptitude search '~i !~M' -F %p >package.list

ou

apt-mark showmanual

Pour réinstaller depuis la liste :

apt-get install $(cat package.list)

J’ai pas testé, j’ai pas de Linux sous la main.


#3

@Jeremie,
Bonjour,

Pour débuter je t’invite à réaliser tes tests sur une VM c’est plus sûr :grin:

Concernant ta question elle requiert une réflexion plus approfondie sur la rédaction de ton script. Je te conseille dans un premier temps de réfléchir sur la structure “pseudo langage” des séquences à exécuter. Pour faire simple pourrais-tu déjà translater ton besoin sous forme de “pseudo langage”, cela te demandera un peu de recherche sur le Net :wink:

Par la suite nous y verrons plus clair.

A+!


#4

Bonjour,

Je te remercie de ta réponse.
Je vais tester sur une VM si ça pourrait fonctionner dans mon cas.

Jérémie


#5

Bonjour Diki,

Si j’ai bien compris tu me demandes de décrire l’ensemble des actions que je souhaite mener.

Je vais essayer mais l’infra n’étant pas mon coeur de métier, je te prie de bien vouloir m’excuser si ce n’est pas plus clair.

DEBUT

// SUR MACHINE A

COMMANDE_DE_BACKUP apt-get install NOM_DE_PAQUET > BACKUP_D_INSTALLATION.deb
// L’ensemble des opérations est sauvegardé dans BACKUP_D_INSTALLATION.deb

// SUR MACHINE B
dpkg -i BACKUP_D_INSTALLATION.deb
// Installe à l’identique ce qui a été installé sur A

FIN

Je sais pas si j’ai été assez clair.

En tout cas merci pour le temps que tu m’accordes.

Jérémie


#6

Rebonjour @Jeremie,

Merci pour le retour express :wink:

N’étant pas un fidèle des distributions basées sur Debian, mais plutôt orienté vers RHEL, CentOS, Fedora et bien évidemment le “Maître Jedi UNIX” j’adhère toujours à “la loi du moindre effort”… :grin:

Je te propose de tester ces lignes de commande sur un VM (test) pour ensuite les tester via un script beta. L’idée ici est de comparer deux versions (système), celle installée en cours avec celle à déployer (upgrade) afin de pouvoir analyser les différences et pouvoir traiter si besoin est une “anomalie” ou un correctif à appliquer fonction de ton contexte. :slight_smile:

:#Listing de l’ensemble des packages installés :
dpkg --get-selections

:#Exportation de la liste des packages installés dans un fichier :
dpkg --get-selections > packages-installes

:#Récupération de la liste des packages installés et installation de ‘packages-installes’ :
dpkg --set-selections < packages-installes
apt-get dselect-upgrade

Il est à noter que j’ai effectué cette action, toujours en cours, sur une distribution “Live USB Q4OS Linux” qui se trouve volontairement “plantée”, ceci afin de pouvoir tester le résultat final des opérations :grinning:

Attention, ceci n’est qu’un test il faudra évidemment réfléchir à l’amélioration du script final car il se peut que tu sois contraint aussi de lister certains librairie ou dépendances spécifiques à ton installation. Il existe d’autres alternatives… à suivre…


#7

Merci pour ta réponse.
Je vais parler de ta solution avec mon responsable voir si ça lui conviendrait.
Si jamais j’ai des informations complémentaires, ou une autre solution, je viendrais les poster ici.

Encore merci à toi.

Jérémie.


#8

@Jeremie,

Ha d’accord j’avais pas saisi que tu étais dans un contexte prof à ce point ! :joy:

Hum!.. Pourrais-tu me décrire synthétiquement le contexte infra réseau et systèmes de ta boite en rapport avec le besoin et l’objectif final ?

A noter qu’une phase de déploiement est particulière et dissociée du test présenté ici… Si on parle de déploiement réseau en général là c’est une autre histoire ! :wink:
A suivre…