0%
Arch Linux: التثبيت وpacman وAUR

Arch Linux: التثبيت وpacman وAUR

دليل متقدم لنظام Arch Linux: التثبيت خطوة بخطوة، وإتقان pacman، وAUR مع yay وparu، وملفات PKGBUILD، وصيانة توزيعة Rolling Release.

I

InSkillCoach

· دقيقة

Arch Linux: التثبيت وpacman وAUR

يحتل Arch Linux مكانة خاصة بين توزيعات لينكس: لا مثبّت رسومي افتراضي، ولا إعدادات جاهزة مسبقًا، ولا إصدارات محددة. أنت تبني نظامك قطعةً قطعة، وفي المقابل تحصل على جهاز تفهمه بالكامل، ومحدَّث دائمًا، ومعه أفضل وثائق في عالم لينكس. يتوجه هذا الدليل إلى المستخدمين الذين يتقنون سطر الأوامر: سنغطي التثبيت الكامل، وإتقان pacman، وAUR، والأهم من ذلك الصيانة على المدى الطويل، وهو الموضع الذي يتحدد فيه نجاح تثبيت Arch.

1. الفلسفة: Rolling Release وKISS

يقوم Arch على مبدأين يفسران جميع خياراته التقنية.

Rolling release: لا يوجد «إصدار» من Arch. يُحدَّث النظام باستمرار؛ فتثبيت أُجري عام 2020 وجرت صيانته جيدًا مطابق لتثبيت اليوم. لن تضطر أبدًا إلى ترقية رئيسية، لكن عليك التحديث بانتظام وقراءة الإعلانات.

KISS (Keep It Simple, Stupid): البساطة بمفهوم Arch تعني غياب طبقات التجريد، لا السهولة. تُسلَّم الحزم أقرب ما يمكن إلى ما ينشره مطورو المصدر الأصلي (vanilla)، دون ترقيعات من التوزيعة. ويتم الإعداد في ملفات البرامج الأصلية، لا عبر أدوات خاصة بالتوزيعة.

النتائج العملية: أنت المسؤول عن نظامك. لا يحميك Arch من نفسك، لكن لا شيء فيه سحري أو مخفي.

2. ملخص التثبيت خطوة بخطوة

يتم التثبيت الرسمي عبر سطر الأوامر انطلاقًا من ملف ISO. تؤتمت الأداة archinstall العملية، لكن تنفيذ التثبيت اليدوي مرة واحدة هو أفضل استثمار تعليمي ممكن. فيما يلي المراحل الكاملة لجهاز يعمل بنظام UEFI.

التحضير والتقسيم

# Vérifier le boot en mode UEFI (le répertoire doit exister et être peuplé)
ls /sys/firmware/efi/efivars

# Vérifier la connexion réseau (le Wi-Fi se configure avec iwctl)
ping -c 3 archlinux.org

# Synchroniser l'horloge
timedatectl set-ntp true

# Partitionner le disque : une partition EFI et une partition racine
fdisk /dev/nvme0n1
# g            -> nouvelle table GPT
# n, 1, +1G    -> partition EFI (type : EFI System)
# n, 2, reste  -> partition racine (type : Linux filesystem)
# w            -> écrire et quitter

# Formater
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2

# Monter
mount /dev/nvme0n1p2 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/boot

pacstrap: تثبيت النظام الأساسي

# Installer le socle : base, noyau, firmwares, et quelques indispensables
pacstrap -K /mnt base linux linux-firmware nano networkmanager sudo

fstab وchroot

# Générer la table des systèmes de fichiers à partir des montages actuels
genfstab -U /mnt >> /mnt/etc/fstab

# Vérifier le résultat avant de continuer
cat /mnt/etc/fstab

# Entrer dans le nouveau système
arch-chroot /mnt

الإعداد الأساسي داخل chroot

# Fuseau horaire et horloge matérielle
ln -sf /usr/share/zoneinfo/America/Montreal /etc/localtime
hwclock --systohc

# Locales : décommenter fr_CA.UTF-8 (ou fr_FR.UTF-8) dans /etc/locale.gen
nano /etc/locale.gen
locale-gen
echo "LANG=fr_CA.UTF-8" > /etc/locale.conf

# Nom de machine
echo "archbox" > /etc/hostname

# Mot de passe root
passwd

# Créer un utilisateur avec accès sudo
useradd -m -G wheel votre_nom
passwd votre_nom
EDITOR=nano visudo   # décommenter : %wheel ALL=(ALL:ALL) ALL

# Activer le réseau au démarrage
systemctl enable NetworkManager

مدير الإقلاع (Bootloader)

# systemd-boot, simple et suffisant en UEFI
bootctl install

# Créer l'entrée de démarrage
cat > /boot/loader/entries/arch.conf << 'EOF'
title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=/dev/nvme0n1p2 rw
EOF

# Sortir du chroot, démonter et redémarrer
exit
umount -R /mnt
reboot

عند إعادة التشغيل تظهر لك شاشة تسجيل دخول نصية: نظام Arch أدنى يعمل بكفاءة، جاهز لاستقبال بيئتك الرسومية وأدواتك.

3. pacman: مدير الحزم

يختزل pacman جميع عملياته في خيارات من حرف واحد. تبدو صياغته محيّرة في البداية، ثم تصبح سريعة بشكل لافت.

العمليات الأساسية

# Installer un paquet (S = sync, depuis les dépôts)
sudo pacman -S firefox

# Mettre à jour TOUT le système : la commande la plus importante d'Arch
# S = sync, y = rafraîchir les index, u = mettre à jour
sudo pacman -Syu

# Supprimer un paquet
sudo pacman -R firefox

# Supprimer un paquet, ses dépendances orphelines et sa configuration
sudo pacman -Rns firefox

# Rechercher dans les dépôts
pacman -Ss navigateur

# Afficher les détails d'un paquet des dépôts
pacman -Si firefox

قاعدة مطلقة: لا تنفذ أبدًا pacman -Sy paquet (تحديث الفهارس ثم التثبيت دون تحديث كل شيء). هذا «التحديث الجزئي» يثبّت حزمة مبنية على مكتبات أحدث من تلك الموجودة في نظامك، وقد يتسبب في تعطله. استخدم دائمًا -Syu.

الاستعلام عن النظام المثبَّت (Q)

# Lister tous les paquets installés
pacman -Q

# Paquets installés explicitement (votre liste de courses)
pacman -Qe

# Détails d'un paquet installé
pacman -Qi firefox

# Lister les fichiers d'un paquet
pacman -Ql firefox

# Trouver le paquet propriétaire d'un fichier
pacman -Qo /usr/bin/firefox

# Lister les orphelins (dépendances devenues inutiles)
pacman -Qdt

# Supprimer tous les orphelins
sudo pacman -Rns $(pacman -Qdtq)

إدارة الذاكرة المؤقتة (Cache)

يحتفظ pacman بكل نسخة يحمّلها في /var/cache/pacman/pkg/، ما يتيح الرجوع إلى إصدارات سابقة لكنه يستهلك بسرعة عدة غيغابايتات.

# Taille du cache
du -sh /var/cache/pacman/pkg

# Garder les 3 dernières versions de chaque paquet (paccache est dans pacman-contrib)
sudo pacman -S pacman-contrib
sudo paccache -r

# Supprimer les versions des paquets désinstallés
sudo paccache -ruk0

# Automatiser le nettoyage hebdomadaire
sudo systemctl enable --now paccache.timer

4. AUR: المستودع المجتمعي

يمثل AUR (Arch User Repository) القوة الحقيقية لنظام Arch: مستودع مجتمعي يضم أكثر من 80 000 وصفة بناء تغطي تقريبًا كل برنامج موجود. تنبيه: لا يحتوي AUR على حزم ثنائية، بل على ملفات PKGBUILD، وهي سكربتات تصف كيفية بناء الحزمة. لا يراجع مطورو Arch أيًّا منها، والحذر مسؤوليتك.

التثبيت اليدوي من AUR

افهم العملية اليدوية قبل استخدام أي مساعد:

# Prérequis pour compiler
sudo pacman -S --needed base-devel git

# Cloner la recette
git clone https://aur.archlinux.org/visual-studio-code-bin.git
cd visual-studio-code-bin

# TOUJOURS lire le PKGBUILD avant de construire
less PKGBUILD

# Construire et installer (s = installer les dépendances, i = installer le paquet)
makepkg -si

yay وparu: مساعدا AUR

تؤتمت المساعدات (AUR helpers) عمليات الاستنساخ والبناء، والأهم من ذلك تحديثات حزم AUR. المرجعان الحاليان هما yay (مكتوب بلغة Go) وparu (مكتوب بلغة Rust، من المطوّر التاريخي لـ yay).

# Installer yay... depuis l'AUR, à la main (une seule fois)
git clone https://aur.archlinux.org/yay.git
cd yay && makepkg -si

# Ensuite, yay unifie dépôts officiels et AUR
yay -S spotify              # installer (dépôts ou AUR)
yay -Syu                    # tout mettre à jour, AUR compris
yay -Ss teams               # rechercher partout
yay -Qua                    # lister les mises à jour AUR en attente

يُستخدم paru بالخيارات نفسها تمامًا. الفرق الملحوظ: يعرض paru ملف PKGBUILD افتراضيًا قبل البناء، وهو إعداد أكثر أمانًا يمكنك تفعيله في yay أيضًا.

تشريح ملف PKGBUILD

# Exemple minimal de PKGBUILD
pkgname=mon-outil
pkgver=1.2.0
pkgrel=1
pkgdesc="Un outil d'exemple"
arch=('x86_64')
url="https://exemple.com"
license=('MIT')
depends=('glibc')
makedepends=('go')
source=("$url/releases/$pkgname-$pkgver.tar.gz")
sha256sums=('...')

build() {
    cd "$pkgname-$pkgver"
    go build -o "$pkgname"
}

package() {
    cd "$pkgname-$pkgver"
    install -Dm755 "$pkgname" "$pkgdir/usr/bin/$pkgname"
}

ما ينبغي التحقق منه عند قراءة PKGBUILD: هل يشير المصدر إلى الموقع الرسمي للمشروع؟ هل تفعل الدالتان build() وpackage() شيئًا آخر غير التجميع ونسخ الملفات؟ يمكن لـ PKGBUILD خبيث أن ينفذ أي شيء بصلاحياتك.

5. صيانة توزيعة Rolling Release

هنا يتحدد عمر تثبيتك. يعمل Arch المصان جيدًا سنوات، أما Arch المهمَل ستة أشهر فتحديثه مؤلم.

روتين التحديث

# 1. Consulter les annonces avant une grosse mise à jour
# https://archlinux.org/news/ (interventions manuelles éventuelles)

# 2. Mettre à jour
sudo pacman -Syu

# 3. Traiter les fichiers .pacnew (voir ci-dessous)

# 4. Redémarrer après une mise à jour du noyau ou de systemd

التكرار الموصى به: مرة واحدة في الأسبوع على الأقل. بعد عدة أشهر دون تحديث، حدّث أولًا سلسلة المفاتيح (sudo pacman -Sy archlinux-keyring ثم -Su) لتجنب أخطاء التوقيع.

ملفات .pacnew

عندما تُسلِّم حزمة نسخة جديدة من ملف إعداد قمت بتعديله، لا يستبدل pacman نسختك، بل يضع النسخة الجديدة بجانبها بالامتداد .pacnew. وتجاهلها إلى ما لا نهاية ينتهي بمشكلات في التشغيل.

# Localiser les .pacnew et .pacsave en attente
sudo pacman -S pacman-contrib
pacdiff --output

# Fusionner interactivement (utilise vim -d par défaut)
sudo pacdiff

# Avec un autre outil de fusion
DIFFPROG=meld sudo -E pacdiff

الرجوع إلى إصدار سابق (downgrade)

إذا تسبب تحديث في عطل ما، فإن ذاكرة pacman المؤقتة تتيح إعادة تثبيت الإصدار السابق:

# Réinstaller une version depuis le cache local
sudo pacman -U /var/cache/pacman/pkg/firefox-128.0-1-x86_64.pkg.tar.zst

# Geler temporairement le paquet pendant que le bug est corrigé en amont
# (ajouter dans /etc/pacman.conf, section [options])
# IgnorePkg = firefox

بالنسبة إلى الإصدارات غير الموجودة في الذاكرة المؤقتة، يحتفظ Arch Linux Archive بجميع الحزم المنشورة، وتؤتمت الأداة downgrade (من AUR) عملية البحث. اجعل التجميد مؤقتًا: فتوزيعة rolling release ذات حزم مثبّتة بشكل دائم ينتهي بها الأمر إلى تحديث جزئي، وهي الحالة التي يجب تجنبها تمامًا.

6. مزالق Rolling Release

  • التحديث الجزئي: لا pacman -Sy paquet أبدًا، ولا IgnorePkg دائم. يتقدم النظام كله معًا.
  • التحديث قبل السفر أو قبل موعد نهائي مهم: إن تعطل شيء فلن يكون لديك وقت لإصلاحه. حدّث حين يتوفر لديك ساعة كاملة.
  • تحديث النواة دون إعادة تشغيل: تُحذف وحدات النواة القديمة من القرص؛ وقد يفشل توصيل مفتاح USB حينها حتى إعادة التشغيل.
  • حزم AUR التي تتعطل بعد تحديث المكتبات: أعد بناءها (yay -S paquet --rebuild) بعد القفزات الكبيرة في الإصدارات (Python وICU وOpenSSL).
  • غياب النسخ الاحتياطي: تحوّل لقطات Btrfs مع snapper، أو Timeshift، تحديثًا فاشلًا إلى حادث يُحل في خمس دقائق.

7. Arch Wiki: مرجعك الدائم

يُعدّ Arch Wiki (wiki.archlinux.org) بإجماع الجميع أفضل وثائق لينكس الموجودة، حتى إن مستخدمي Debian وFedora وGentoo يرجعون إليه يوميًا. تتبع كل صفحة البنية نفسها: التثبيت، والإعداد، وحالات الاستخدام، واستكشاف الأخطاء.

# Consulter le wiki hors ligne, depuis le terminal
sudo pacman -S arch-wiki-lite
wiki-search "systemd-boot"

عادة ينبغي اكتسابها: قبل طرح أي سؤال في منتدى، ابحث عن صفحة الويكي الخاصة بالبرنامج المعني. في تسع حالات من عشر تجد الجواب هناك، مع توثيق خصوصيات Arch.

أفضل الممارسات

  • نفّذ التثبيت اليدوي مرة واحدة على الأقل قبل استخدام archinstall: فهو أفضل دورة مكثفة في كيفية عمل نظام لينكس.
  • نفّذ pacman -Syu كاملًا مرة أسبوعيًا على الأقل، ولا تستخدم -Sy الجزئي أبدًا.
  • اطّلع على إعلانات archlinux.org قبل التحديثات المهمة.
  • عالج ملفات .pacnew باستخدام pacdiff بعد كل تحديث.
  • اقرأ كل PKGBUILD قبل تثبيته من AUR، حتى عند استخدام yay أو paru.
  • نظّف الذاكرة المؤقتة بـ paccache -r، لكن احتفظ ببعض الإصدارات لتتمكن من الرجوع إلى إصدار سابق.
  • أعدّ اللقطات (snapper مع Btrfs أو Timeshift) قبل أن تحتاج إليها.
  • احتفظ بملف ISO للتثبيت على مفتاح USB: فـ arch-chroot من النظام الحي هو أداة الإنقاذ الشاملة.

الخلاصة

يطلب Arch Linux منك أكثر في البداية ويمنحك أكثر بعد ذلك: نظام أدنى جمعتَه بنفسك، وحزم محدَّثة دائمًا، ولا ترقية رئيسية تخشاها، ووثائق مرجعية. وفي المقابل هناك مسؤولية دائمة: تحديثات منتظمة، وقراءة الإعلانات، وإدارة ملفات .pacnew. إذا كان هذا الانضباط يناسبك فربما لن تعود إلى الوراء أبدًا؛ وحتى لو بقيت على توزيعة تقليدية، فإن تثبيت Arch أكملته حتى النهاية سيكون قد علّمك عن لينكس أكثر من أشهر من الاستخدام العادي. الخطوة التالية الطبيعية: استكشاف لقطات Btrfs، وخطافات pacman (hooks) لأتمتة صيانتك، وربما إنشاء ملفات PKGBUILD خاصة بك.

InSkillCoach

نبذة عن InSkillCoach

خبير في التدريب والتقنيات

مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.

الشهادات:

  • AWS Certified Solutions Architect – Professional
  • شهادات Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
1.4k
293

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!