Notes et astuces sur les systèmes libres basés sur GNU/Linux

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - debian

Fil des billets

mercredi, 8 octobre 2014

#En_vrac 1 : Gestion paquets Debian

Bonjour,

On va essayer d'écrire un peu, les astuces et notes s'accumulent mais le blog ne se remplit pas tout seul.
En plus ça devient à la mode de faire du vrac alors moi aussi je m'y mets.
Du coup quelques petites astuces pour manipuler des paquets debian à la rache.

Examen non-invasif

Afficher quelques informations sur le paquet : ses dépendances, son mainteneur, sa description
dpkg --info monpaquet.deb

nouveau paquet Debian, version 2.0.
taille 623842 octets : archive de contrôle=2370 octets.
    808 octets,    19 lignes      control              
   2999 octets,    37 lignes      md5sums              
    878 octets,    39 lignes   *  postinst             #!/bin/sh
    103 octets,    12 lignes   *  postrm               #!/bin/sh
    295 octets,    24 lignes   *  prerm                #!/bin/sh
Package: zsh
Version: 5.0.6-2
Architecture: amd64
Maintainer: Debian Zsh Maintainers <pkg-zsh-devel@lists.alioth.debian.org>
Installed-Size: 1886
Depends: zsh-common (= 5.0.6-2), libc6 (>= 2.15), libcap2 (>= 1:2.10), libtinfo5
Recommends: libncursesw5 (>= 5.6+20070908), libpcre3 (>= 8.10)
Suggests: zsh-doc
Section: shells
Priority: optional
Homepage: http://www.zsh.org/
Description: shell with lots of features
 Zsh is a UNIX command interpreter (shell) usable as an
 interactive login shell and as a shell script command
 processor. Of the standard shells, zsh most closely resembles
 ksh but includes many enhancements. Zsh has command-line editing,
 built-in spelling correction, programmable command completion,
 shell functions (with autoloading), a history mechanism, and a
 host of other features.


Afficher le contenu du paquet
dpkg --contents monpaquet.deb

drwxr-xr-x root/root         0 2014-09-21 00:19 ./
drwxr-xr-x root/root         0 2014-09-21 00:19 ./usr/
drwxr-xr-x root/root         0 2014-09-21 00:20 ./usr/share/
drwxr-xr-x root/root         0 2014-09-21 00:20 ./usr/share/lintian/
drwxr-xr-x root/root         0 2014-09-21 00:20 ./usr/share/lintian/overrides/
-rw-rr root/root       214 2014-08-26 00:45 ./usr/share/lintian/overrides/zsh
drwxr-xr-x root/root         0 2014-09-21 00:19 ./usr/share/bug/
-rwxr-xr-x root/root      1403 2014-08-26 00:45 ./usr/share/bug/zsh
drwxr-xr-x root/root         0 2014-09-21 00:20 ./usr/share/doc/
drwxr-xr-x root/root         0 2014-09-21 00:19 ./usr/lib/
drwxr-xr-x root/root         0 2014-09-21 00:19 ./usr/lib/x86_64-linux-gnu/

Décompression d'un paquet et recréation

Extraire l'arborescence
dpkg-deb -x paquet.deb repertoire Extraire le répertoire DEBIAN contenant les différents fichiers postinst, control
dpkg-deb -e paquet.deb nom_du_repertoire/DEBIAN

La vous faites ce que vous voulez ...

Pour le refabriquer
dpkg-deb -b repertoire paquet.deb

Manipulation du cache

Pour connaitre les versions d'un paquet installé ainsi que la version disponible dans vos dépots
apt-cache policy zim

zim:
 Installé : 0.60-1
 Candidat : 0.60-1
 Table de version :
 *** 0.60-1 0
       500 http://203.41.188.16/debian/ jessie/main amd64 Packages
       100 /var/lib/dpkg/status

Connaitre les dépendances inverses d'un paquet (quels paquets ont besoin de celui là pour fonctionner)
apt-cache showpkg libvte9

Package: libvte9
Reverse Depends: 
 pac,libvte9

Sur l'exemple ci-dessus, nous pouvons voir que le paquet pac a besoin du paquet libvte9 pour fonctionner.

A la prochaine.
That's all folks !

jeudi, 16 mai 2013

LXC, la solution de virtualisation légère

Si comme moi vous aimez bien tester différents outils ou services GNU/Linux sans encombrer votre machine réelle, la solution de virtualisation par container LXC pourrait grandement vous aider.poupée russe

Voici les quelques avantages de cet outil :

  • Optimisation de l'utilisation de votre machine en hébergeant plusieurs configurations systèmes
  • Sécurisation de vos process en les mettant à l'abris dans un "chroot amélioré".
  • Facilité d'installation car l'outil est intégré au noyau Linux.
  • Avoir sous la main un autre GNU/Linux sans manger toute vos ressources CPU


Cet article n'a pas d'autre prétention que de me servir de bloc-note lors d'une prochaine réinstallation et ajouter une ressource française sur le sujet.

Pour l'installer sous Debian :Logo debian

Si besoin ajouter le système de paramétrage CGROUP à votre liste de points de montage dans votre fichier etc/fstab (vérifiez si la ligne suivante est déjà présente):

cgroup          /sys/fs/cgroup  cgroup  defaults        0       0

Si l'on souhaite mettre nos machines virtuelles directement sur le réseau physique, nous avons besoin de créer un pont sur lequel viendra se brancher notre machine physique ainsi que nos machines virtuelles.

Le paquet bridge-utils va créer un pont/commutateur/switch entre vos machines virtuelles/physique et votre réseau local (LAN).

Schema reseau

aptitude install bridge-utils
Pour mettre en place cette configuration, vous allez devoir remplacer votre eth0 en DHCP par br0 dans /etc/network/interfaces :
auto br0
iface br0 inet dhcp
bridge-ports eth0

Installez le paquet LXC contenant un ensemble de script et de templates :

aptitude install lxc

Si vous souhaitez installer une Debian dans un de vos conteneurs, vous aurez besoin d'installer debootstrap :

aptitude install debootstrap

Maintenant, pour créer votre premier container de type Debian sans limitation :

lxc-create -n le_nom_de_votre_container -t debian

Il faudra configurer votre container avant de le lancer en allant toucher le fichier de configuration dans /var/lib/le_nom_de_votre_container/config. Les lignes importantes à modifier sont :

lxc.network.type = veth
lxc.network.flags = up
#On s'appuie sur l'interface br0 physique
lxc.network.link = br0
#On nomme notre interface virtuel eth0
lxc.network.name = eth0

Par défaut sous Debian, lxc ne vous crée pas de terminal pour vous connecter à votre machine virtuelle.
Avouez que c'est dommage !
Nous allons y remédier en créant nous même le fichier spécial correspondant à un terminal virtuel avec mknod :

mknod -m 666 /var/lib/lxc/le_nom_de_votre_container/roots/dev/tty c 4 1

Si vous souhaitez lancer votre machine avec une console virtuel mais ATTENTION vous ne pourrez pas quitter la console sans éteindre votre container :
lxc-start -n le_nom_de_votre_container

Si vous voulez avoir en tâche de fond votre machine virtuelle ou tout simplement pouvoir quitter votre console quand vous le souhaitez (via Ctrl a +q) :

lxc-start -n le_nom_de_votre_container -d

Maintenant, vous pouvez accéder à votre console :

lxc-console -n le_nom_de_votre_container

Ma difficulté à l'installation venait surtout de la création de la console virtuelle sur une version Testing.

Pour l'installer sous ArchLinux :Logo archlinux

La seule difficulté que j'ai rencontré sous Archlinux est la configuration du bridge.
Je passe brièvement l'installation des paquets vus précédemment :

pacman -S lxc bridge-utils

Si besoin rebooter votre machine pour prendre en compte vos nouveaux modules :

lsmod | grep br
bridge                 85984  0
stp                     1621  1 bridge
llc                     3729  2 stp,bridge

Normalement, l'utilitaire netcfg doit créer votre pont automatiquement avec les paramètres que l'on va spécifier ci-dessous :

pacman -S netcfg
Modifier le fichier/etc/network.d/bridge :
INTERFACE="br0"
CONNECTION="bridge"
DESCRIPTION="Mon pont davignon"
BRIDGE_INTERFACES="enp4s0"
IP="dhcp"

Modifier le fichier /etc/conf.d/netcfg :

# Network profiles are found in /etc/network.d
NETWORKS=(bridge)

Ajouter l'unité à votre démarrage afin de monter le réseau à chaque démarrage :

systemctl enable netcfg@bridge.service

Pour créer manuellement votre pont si cela n'a pas été fait :

brctl addif br0 enp4s0

Modifier le fichier /usr/share/lxc/templates/lxc-debian (L.175)afin de faire fonctionner le template:

arch="amd64"


Au plaisir.

Ps : Pas de bol pour moi, une personne vient de publier un article sur LXC sous Debian à l'instant en Français. J'aurais été en début d'écriture, je n'aurai pas écrit ...

Edit : Ajout de la modification du template debian

mardi, 26 mars 2013

Méthode de génération rapide de paquet debian

Paquet. Bonjour à tous,

Aujourd'hui pour changer une petite note sur les systèmes Debian.

Y a pas de raisons que je parle toujours de ArchLinux alors que je travaille en permanence avec des serveurs sous Ubuntu/Debian.

Quand on gère un parc de machines conséquent, on souhaite automatiser un maximum de choses, dont des petits patchs, scripts...
Pour ce faire, j'ai pensé générer un paquet debian avec le système des dummy-packages.
Cela me permets de vous présenter une méthode de génération de paquet allégé, rapide à prendre en main.
En général, c'est utilisé pour résoudre des problèmes de dépendances, mais nous pouvons l'utiliser pour autre chose.

En premier lieu, il est nécessaire d'installer le paquet equivs.

aptitude update && aptitude install equivs

Suite à cela, nous avons deux outils complémentaires à notre disposition.
Le premier est equivs-control, il permet de générer un fichier control standard.

equivs-control nom_de_notre_futur_paquet

Dans mon exemple, un fichier de configuration nommé nom_de_notre_futur_paquet sera crée dans mon current directory.
Il s'agira de remplir/dé-commenter les champs qui nous intéressent.
Mais nous pouvons pousser la démarche plus loin en y ajoutant des fichiers supplémentaires ou des fichiers postinst,preinst,prerm,postrm.
Pour plus de détail, je vous invite à consulter le man de equivs-build Il est important de noter que le fichier de contrôle n'accepte pas les lignes vides, voici un exemple de fichier de control avec un script de postinst :


Section: misc
Priority: optional
Standards-Version: 3.6.2
Package: Choix-libres
Version: 1.4
Maintainer: Martin
Depends: Internet
File: postinst
 #!/bin/sh -e
 set -e
 echo "Installation réussie"
 exit 0
Description: Paquet installant un blog choix-libres

Une fois le fichier de configuration dument remplie, nous pouvons lancer la commande de génération du paquet.

equivs-build nom_de_notre_futur_paquet

Et paf !!! ça fait un paquet debian généré en moins de 10 minutes.

A tantôt tout le monde !