Archlinux vs Voidlinux

Voir aussi : vidéo peertube - vidéo youtube - dépôt git

Introduction

Archlinux et Voidlinux sont des distributions linux rolling-release pour utilisateurs “intermédiaires” (non-allergiques à la ligne de commande). Leurs objectifs sont proches mais leurs choix techniques assez différents.

Objectifs de cette présentation :

Caractéristiques techniques

Points communs

Différences

Caractéristiques Archlinux Voidlinux
installeur ligne de commande interface texte
date de naissance 2002 2008
popularité plutôt grande plutôt petite
documentation gros wiki, réputé wiki petit mais pertinent
nombre de paquets > 10k (+ AUR) > 5k (+ “langages”)
contributions git perso + AUR dépot github
système d’init systemd runit
système de paquet pacman xbps
architectures x86_64 x86_64, i686, ARM
libc glibc glibc, musl
ssl openssl libressl

Attention au “nombre de paquets” : - Certaines distributions peuvent découper un logiciel en plusieurs paquets (lib/dev/doc/dbg/…) alors que d’autres distributions fournissent tout le logiciel dans un seul paquet. - Certaines distributions fournissent des paquets pour les bibliothèques de langages (par exemple tensorflow) alors que d’autres réutilisent les gestionnaires des langages (par exemple pip install tensorflow).

Installer un système de base (xfce + lightdm + clavier bépo)

(VM virtualbox avec disque virtuel de 14 Go)

Arch

Installation manuelle en ligne de commande : pas compliqué mais pénible.

https://wiki.archlinux.fr/Installation

Installer le système de base

LANG=fr_FR.UTF-8
KEYMAP=fr-bepo
myhostname
127.0.0.1	localhost
::1		localhost
127.0.1.1	myhostname.localdomain	myhostname
pacman -S grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Configurer le nouveau système

Installer xfce + lightdm

Void

Installation via une interface texte : plutôt simple et rapide.

https://wiki.voidlinux.eu/Installation

Installer le système de base

Installer xfce + lightdm

xbps-install xfce4 xorg lightdm-gtk3-greeter adwaita-icon-theme
Section "InputClass"
        Identifier "MyKeyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "fr"
        Option "XkbVariant" "bepo"
EndSection
ln -s /etc/sv/dbus /var/service/
ln -s /etc/sv/lightdm /var/service/

Gérer les paquets (logiciels + noyaux)

Arch

Void

Gérer les services

Arch

systemctl enable httpd.service
systemctl start httpd.service

systemctl stop httpd.service
systemctl disable httpd.service

Void

ln -s /etc/sv/apache /var/service/
sv start apache

sv stop apache
rm /var/service/apache

Créer ses propres paquets

Arch

Pour créer un package avec Arch, il faut principalement écrire un fichier PKGBUILD. Ce fichier peut être ensuite soumis à la communauté Arch via le dépôt AUR.

mkdir hello-eigen
cd hello-eigen
#Maintainer: nokomprendo <nokomprendo@gmail.com>
pkgname=hello-eigen
pkgver=0.1
pkgrel=1
pkgdesc="Hello world using eigen"
arch=(i686 x86_64)
url='https://gitlab.com/nokomprendo/hello-eigen'
makedepends=('cmake' 'pkg-config' 'eigen')

source=('https://gitlab.com/nokomprendo/hello-eigen/-/archive/v0.1/hello-eigen-v0.1.tar.gz')
md5sums=('...')

build(){
	cd "$pkgname-$pkgver"
	mkdir -p build
	cd build
	cmake DCMAKE_INSTALL_PREFIX="$pkgdir" ..
	make
}

package(){
	cd "$pkgname-$pkgver/build"
	make DESTDIR="$pkgdir" install
}
$ hello-eigen 
 0.680375  0.566198  0.823295
-0.211234   0.59688 -0.604897

Void

Pour créer un paquet avec Void, il faut récupérer le dépôt de paquets de Void et y écrire un fichier template. En fait, c’est également la méthode utilisée par les contributeurs. Il est alors possible de soumettre ensuite son paquet à la communauté Void.

git clone https://github.com/voidlinux/void-packages
cd void-packages
# Template file for 'hello-eigen'
pkgname=hello-eigen
version=0.1
revision=1
build_style=cmake
makedepends="cmake pkg-config eigen"
short_desc="hello world using eigen"
maintainer="nokomprenod <nokomprendo@gmail.com>"
license="MIT"
homepage="https://gitlab.com/nokomprendo/hello-eigen"
distfiles="https://gitlab.com/nokomprendo/hello-eigen/-/archive/v${version}/hello-eigen-v${version}.tar.gz"
checksum=...
$ hello-eigen
 0.680375  0.566198  0.823295
-0.211234   0.59688 -0.604897

Conclusion