Arch Linux
Το Archlinux είναι μια διανομή linux με στόχο το την ευστάθεια και το μινιμαλισμό.
Το archlinux ξεκίνησε το Μάρτιο του 2002 από τον Judd Vinet ο οποίος αποχώρησε από τα καθήκοντά του την 1η Οκτωβρίου του 2007. Έκτοτε καθήκοντα project leader έχει αναλάβει ο Aaron Griffin.
Σχεδιασμός και αρχές
Το package management του archlinux είναι σχεδιασμένο να δουλεύει με binary πακέτα και υποστηρίζει αρχιτεκτονικές i686 και x86_64. Επίσης υπάρχει ένα σύστημα σαν τα ports των BSD που ονομάζεται ABS (Arch Build System).
Επειδή το archlinux έχει σαν στόχο το μινιμαλισμό, η βοήθεια που παρέχει στο χρήστη δεν επεκτείνεται σε γραφικά εργαλεία (για παράδειγμα, ο package manager δεν έχει κάποιο επίσημο γραφικό εργαλείο). Παρ' όλα αυτάχρησιμοποιεί πολύ καλά τεκμηριωμένα αρχεία ρυθμίσεων και αρκετά shell scripts. Εξαιτίας αυτού, έχει τη φήμη μιας διανομής linux για έμπειρους χρήστες linux και χρήστες που δεν φοβούνται τη γραμμή εντολών.
Το init
Το Arch αντιγράφει τα BSD συστήματα στον τρόπο εκκίνησης, ανταλλάσσοντας ευελιξία για απλότητα. Επίσης περιλαμβάνει και επιτρέπει τη χρήση runlevels από το System V και του inittab με μερικές διαφορές ανάμεσα στα runlevels. Αυτό συμβαίνει επειδή τα modules και οι daemons που φορτώνονται κατά την εκκίνηση είναι μέσα σε ένα κεντρικό αρχείο ρυθμίσεων, το /etc/rc.conf, αντίθετα με τους καταλόγους του System V που για κάθε runlevel περιέχουν ένα symbolic link για κάθε daemon. Ακόμα υπάρχει η επιλογή για ασύγχρονη εκκίνηση των daemons, επιλογή που ούτε το αρχικό BSD ούτε το αρχικό System V είχαν.
Εγκατάσταση
Το site του archlinux παρέχει εικόνες ISO που μπορούν να τρέξουν από ένα CD ή ένα USB stick. Το πρόγραμμα εγκατάστασης είναι ένα shell script που χρησιμοποιεί την εντολή dialog για την επικοινωνία με το χρήστη. Η προεπιλεγμένη εγκατάσταση είναι πολύ μικρή. Περαιτέρω παραμετροποίηση και επέκταση του συστήματος (για παράδειγμα εγκατάσταση γραφικού περιβάλλοντος) πρέπει να γίνει χειροκίνητα, εγκαθιστώντας πακέτα από δικτυακά repositories.
Εναλλακτικός τρόπος περιλαμβάνει τη χρήση της στατικής έκδοσης του package manager (pacman) από ένα άλλο λειτουργικό GNU/Linux. Ο χρήστης μπορεί να κάνει mount το partition/filesystem που θέλει να εγκαταστήσει το λειτουργικό, και να χρησιμοποιήσει τον pacman με τις κατάλληλες παραμέτρους ώστε να χρησιμοποιήσει εκείνο το filesystem σαν root. Έτσι μπορεί ο χρήστης να περάσει τα βασικά στοιχεία του νέου του συστήματος χειροκίνητα. Παρ' όλα αυτά, χρειάζονται μερικές ρυθμίσεις ακόμα τις οποίες δεν κάνει από μόνος του ο pacman, όπως για παράδειγμα η εγκατάσταση ενός bootloader (αν χρειάζεται) ή ο ορισμός του κωδικού του χρήστη root.
Διαχείριση πακέτων
Pacman
Όλα τα πακέτα ελέγχονται από τον package manager της διανομής που λέγεται pacman. Ο pacman χειρίζεται την εγκατάσταση, ανανέωση, και υποβάθμιση πακέτων, και υποστηρίζει και την αυτόματη επίλυση προαπαιτούμενων πακέτων. Τα πακέτα του archlinux παρέχονται από τα repositories της διανομής και είναι βελτιστοποιημένα για αρχιτεκτονικές i686 και x86_64. Τα πακέτα που χρησιμοποιούσε ο pacman μέχρι το 2010 ήταν της μορφής .tar.gz, ενώ από το 2010 και μετά τα πακέτα που χρησιμοποιούνται κατά προτίμηση είναι της μορφής .tar.xz.
Repositories
Επί του παρόντος, τα ακόλουθα επίσημα repositories υπάρχουν:
- core, περιέχει όλα τα πακέτα που απαιτούνται για τη λειτουργία ενός βασικού συστήματος.
- extra, περιέχει πακέτα που δεν απαιτούνται από το βασικό σύστημα, όπως προγράμματα και γραφικά περιβάλλοντα.
- testing, ένα ειδικό repository, με πακέτα που προορίζονται για να μπουν στο core ή στο extra αλλά δεν έχουν δοκιμαστεί αρκετά.
- community, περιέχει πακέτα που ζητήθηκαν από την κοινότητα του arch. Περιλαμβάνει πακέτα που έχουν αρκετούς ψήφους και έχουν υιοθετηθεί από έναν "trusted user".
- community-testing, είναι σαν το testing repository, αλλά για πακέτα που θα μπουν στο community.
- multilib, ένα κεντρικοποιημένο repository για χρήστες x86_64 συστημάτων ώστε να έχουν πιο εύκολα υποστήριξη για 32-bit εφαρμογών σε 64-bit συστήματα.
Το unstable repository καταργήθηκε τον Ιούλιο του 2008 και τα περισσότερα πακέτα του πήγαν σε άλλα repositories. Επίσης υπάρχουν πολλά ανεπίσημα repositories καθώς και το AUR (Βλ. παρακάτω).
Ασφάλεια των Repositories
Το Archlinux έχει δεχθεί επιθέσεις για την έλλειψη υπογεγραμμένων πακέτων. Τα πακέτα και τα μεταδεδομένα δεν ελέγχονται για την αυθεντικότητά τους κατά την εγκατάσταση με αποτέλεσμα να είναι δυνατόν να υπάρχουν κακόβουλοι mirrors που μπορούν να διακινδυνεύσουν την ασφάλεια ενός συστήματος.
Arch Build System
Το Arch Build System (ή ABS) είναι ένα σύστημα δημιουργίας πακέτων όπως τα ports που κάνει compile πηγαία αρχεία κώδικα σε binary πακέτα, που εγκαθιστούνται μετά από τον Pacman. Το ABS παρέχει ένα δέντρο καταλόγων με shell scripts που λέγονται PKGBUILD, που επιτρέπουν σε οποιοδήποτε επίσημο πακέτο του Arch να παραμετροποιηθεί και να γίνει compile. Επίσης το ABS επιτρέπει την επαναδημιουργία όλου του συστήματος χρησιμοποιώντας αλλαγμένες παραμέτρους στον compiler. Το εργαλείο makepkg μπορεί να χρησιμοποιηθεί για τη δημιουργία προσαρμοσμένων πακέτων .pkg.tar.xz από κώδικα τρίτων ατόμων. Τα τελικά πακέτα μπορούν επίσης να εγκατασταθούν και να ανανεωθούν χωρίς πρόβλημα από τον Pacman.
AUR
Επιπρόσθετα στα repositories είναι το Arch User Repository που παρέχει PKGBUILD φτιαγμένα από χρήστες, τα οποία δεν υπάρχουν στα κύρια repositories. Τα PKGBUILD απλοποιούν το compile ορίζοντας ρητά και ελέγχοντας για προαπαιτούμενα πακέτα καθώς και ορίζοντας παραμέτρους απαραίτητες για ένα σύστημα Arch. Αυτά τα script/PKGBUILD μπορούν να κατεβούν από το http://aur.archlinux.org. Υπάρχουν ορισμένα προγράμματα που αυτοματοποιούν τη δημιουργία πακέτων με τα PKGBUILD που βρίσκονται στο AUR, αλλά αυτά δεν γίνεται να συμπεριληφθούν στα επίσημα repositories για λόγους ασφαλείας.
Το AUR δίνει πακέτα στην κοινότητα τα οποία δεν βρίσκονται στα επίσημα repositories για κάποιο λόγο. Τέτοιοι λόγοι μπορεί να είναι οι παρακάτω:
- Προβλήματα αδειών χρήσης. Λογισμικό που απαγορεύει την αναδιανομή, αλλά είναι δωρεάν, μπορεί να μπει στο AUR αφού το μόνο που αναδιανέμει το archlinux είναι τα PKGBUILD και όχι τα αρχεία/πακέτα. Παραδείγματα αυτών των προγραμμάτων περιλαμβάνουν το Google Earth και το Real Player.
- Αλλαγμένα επίσημα πακέτα. Το AUR περιλαμβάνει αλλαγμένες καθώς και δοκιμαστικές εκδόσεις των πακέτων που υπάρχουν στα επίσημα repositories. Τέτοια παραδείγματα περιλαμβάνουν ειδικές εκδόσεις του kernel για συγκεκριμένα hardware και beta εκδόσεις προγραμμάτων.
- Ηλικία του λογισμικού. Κάποια λογισμικά είναι πολύ νέα και λιγότερο δοκιμασμένα από άλλα ώστε να μπουν σε επίσημα repositories, ή η χρήση τους είναι πολύ περιορισμένη.
Τα PKGBUILD μπορούν να ανεβούν από απλούς χρήστες και οποιοδήποτε PKGBUILD δεν περιορίζεται από κάποιο λόγο, μπορεί να μπει στο community repository, αν το ψηφίσουν αρκετοί χρήστες.