Pacman (Ελληνικά)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngΑυτό το άρθρο χρειάζεται μετάφραση.Tango-preferences-desktop-locale.png

Σημειώσεις: Περιέχει αμετάφραστους συνδέσμους/παραπομπές. (Discuss)

O Pacman είναι ο διαχειριστής πακέτων του Arch Linux. Ο διαχειριστής πακέτων κάνει την εγκατάσταση, αναβάθμιση ή αφαίρεση λογισμικού. Αυτό το άρθρο καλύπτει την βασική του χρήση καθώς και συμβουλές αντιμετώπισης προβλημάτων.

Contents

Περίληψη

Ο διαχειριστής πακέτων Pacman είναι ένα από τα σπουδαία χαρακτηριστικά του Arch Linux. Συνδυάζει ένα απλό σύστημα διαχείρισης δυαδικών πακέτων με ένα εύκολο στην χρήση σύστημα χτισίματος (μεταγλώττισης) πακέτων (δείτε makepkg and ABS). Ο Pacman κάνει δυνατή την εύκολη διαχείριση πακέτων, είτε αυτά προέρχονται από τα επίσημα αποθετήρια (repositories) του Αrch είτε είναι χτισμένα από τον ίδιο τον χρήστη.

Ο Pacman κρατάει το σύστημα ενημερωμένο, συγχρονίζοντας την λίστα πακέτων με τον κύριο server. Αυτό το μοντέλο server/client σας επιτρέπει επίσης να κατεβάζετε/εγκαθιστάτε πακέτα με μια απλή εντολή, μαζί με όλες τις απαιτούμενες εξαρτήσεις.

Ο Pacman είναι γραμμένος στην γλώσσα προγραμματισμού C, οπότε έιναι γρήγορος, ελαφρύς και πολύ ευέλικτος. Χρησιμοποιεί τον τύπο πακέτων .tar.gz, που βελτιώνει περαιτέρω την ταχύτητα του -τα αρχεία .tar.gz, αν και ελαφρώς μεγαλύτερα, αποσυμπιέζονται πολύ γρηγορότερα από τα αρχεία .tar.bz2, οπότε γενικά εγκαθίστανται πιο γρήγορα.

Συμβουλή: Ο pacman ως επίσημο πακέτο, περιέχει και πολλά χρήσιμα εργαλεία, όπως makepkg, pactree, vercmp και πολλά άλλα. Για να δείτε την πλήρη λίστα δώστε pacman -Ql pacman | grep bin

Διαμόρφωση

Οι ρυθμίσεις του pacman βρίσκονται στο /etc/pacman.conf Αυτό είναι το αρχείο που με την επεξεργασία του κάνει τον pacman να λειτουργεί με τον επιθυμητό από τον χρήστη τρόπο. Περισσότερες πληροφορίες και σε βάθος ανάλυση σχετικά με την διαμόρφωση του pacman μπορούν να βρεθούν στο man pacman.conf.

Γενικές Επιλογές

Στην κατηγορία [options] του αρχείου /etc/pacman.conf βρίσκονται οι Γενικές ρυθμίσεις του pacman Διαβάστε το man page ή δείτε το pacman.conf στην προεπιλεγμένη του μορφή, για πληροφορίες που αφορούν τις Γενικές ρυθμίσεις.

Παράλειψη πακέτου κατά την αναβάθμιση

Για να παραλείψετε κάποιο πακέτο κατά την διαδικασία της αναβάθμισης, δηλώστε ως εξής:

IgnorePkg=linux

Για περισσότερα του ενός πακέτα, χρησιμοποιήστε κενά διαστήματα μεταξύ των ονομάτων τους, ή δημιουργήστε νέες γραμμές IgnorePkg κάτω από την αρχική.

Παράλειψη ομάδας πακέτων κατά την αναβάθμιση

Όπως και για τα μεμονωμένα πακέτα, είναι δυνατή η παράλειψη ολόκληρης ομάδας πακέτων:

IgnoreGroup=gnome

Αποκλεισμός εγκατάστασης συγκεκριμένων καταλόγων στο σύστημα

Για να αποκλείσετε εγκατάσταση συγκεκριμένων καταλόγων στο σύστημά σας, σημειώστε τες κάτω από την επιλογή Noextract. Για παράδειγμα, αν θέλουμε να αποκλείσουμε την εγκατάσταση καταλόγων του systemd,

NoExtract=usr/lib/systemd/system/*.

Αποθετήρια

Σε αυτόν τον τομέα του /etc/pacman.conf δηλώνουμε ποια Αποθετήρια θα χρησιμποούνται κατά την εγκατάσταση ή αναβάθμιση πακέτων του συστήματός μας. Υπάρχει δυνατότητα να δηλωθούν άμεσα εδώ, ή να συμπεριληφθούν από ένα άλλο αρχείο όπως το /etc/pacman.d/mirrorlist). Για την ρύθμμιση των mirrors δείτε: mirrors

/etc/pacman.conf
#[testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

#[multilib]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
Προσοχή: Μεγάλη προσοχή πρέπει να δοθεί αν χρησιμοποιείται το αποθετήριο [testing]. Βρίσκεται κάτω από συνεχή εξέλιξη και η ενημέρωση είναι δυνατόν να έχει ως αποτέλεσμα ορισμένα πακέτα να σταματήσουν να λειτουργούν. Όσοι χρησιμοποιούν το [testing] προτείνεται να εγγραφούν στο arch-dev-public mailing list για καλύτερη ενημέρωση
.

Ασφάλεια πακέτων

Ο pacman 4, υποστηρίζει ψηφιακή υπογραφή πακέτων. Αυτή η λειτουργία, προσθέτει άλλο ένα επίπεδο ασφαλείας. Η προεπιλεγμένη επιλογή

SigLevel = Required DatabaseOptional, ενεργοποιεί την επαλήθευση υπογραφής για όλα τα πακέτα σε όλα τα επίπεδα. Αυτή η ρύθμιση μπορεί να αλλάξει από την γραμμή

SigLevel

όπως φαίνεται παραπάνω, ανα αποθετήριο.

Για περισσότερες πληροφορίες που αφορούν την υπογραφή πακέτων και την επαλήθευσή της, δείτε: pacman-key.

Χρήση

Για να μάθετε τι μπορεί να κάνει ο pacman, διαβάστε το εξής: man pacman. Τα παρακάτω είναι απλώς ένα μικρό δείγμα από μερικές λειτουργείες που μπορούν να πραγματοποιηθούν.

Εγκατάσταση Πακέτων

Για να εγκαταστήσετε ή να αναβαθμίσετε ένα πακέτο, ή μια λίστα από πακέτα (μαζί με τις εξαρτήσεις τους), δώστε την παρακάτω εντολή:

pacman -S package_name1 package_name2 ...

Μερικές φορές υπάρχουν περισσότερες εκδόσεις από ένα πακέτο σε διαφορετικά αποθετήρια (π.χ. στο extra και στο testing). Μπορείτε να προσδιορίσετε ποιο θέλετε να εγκατασταθεί/αναβαθμιστεί ως εξής:

pacman -S extra/package_name
pacman -S testing/package_name


Εγκατάσταση ομάδας πακέτων

Ορισμένα πακέτα, ανήκουν σε ομάδα πακέτων τα οποία μπορούν να εγκατασταθούν ταυτόχρονα.

Για παράδειγμα, δίνοντας την εντολή

# pacman -S gnome

θα σας ζητηθεί να επιλέξετε τα πακέτα από τo group gnome που επιθυμείτε να εγκατασταθούν.

Μερικές φορές ένα group περιέχει μεγάλο αριθμό πακέτων από τα οποία ίσως είναι μερικά μόνο αυτά που θέλετε να εγκαταστήσετε ή να αποφύγετε την εγκατάστασή τους.

Αντί να πρέπει να εισάγετε όλους τους αριθμούς των πακέτων που σας ενδιαφέρουν παραλέιποντας αυτούς που δεν σας χρειάζονται, μπορείτε να επιλέξετε ή να απορρίψετε ένα εύρος πακέτων με τις ακόλουθες εντολές:

Enter a selection (default=all): 1-10 15

με την οποία επιλέγετε το εύρος που θέλετε να εγκαταστήσετε, ή

Enter a selection (default=all): ^5-8 ^2

με την οποία επιλέγετε το εύρος των πακέτων που θέλετε να απορρίψετε ως προς την εγκατάσταση.

Για να δείτε ποια πακέτα ανήκουν στο group gnome, δώστε:

# pacman -Sg gnome

Επισκεφτείτε την τοποθεσία https://www.archlinux.org/groups/ για να δείτε ποια group πακέτων είναι διαθέσιμα.

Σημείωση: Ακόμα και αν ένα πακέτο είναι ήδη εγκατεστημένο στο σύστημά σας, θα επανεγκατασταθεί ακόμα και αν είναι ενημερωμένο. Αυτή η διαδικασία μπορεί να παρακαμφθεί, προσθέτοντας την μεταβλητή --needed
Προσοχή: Όταν εγκαθιστάτε πακέτα μην κάνετε μόνο ανανέωση της λίστας πακέτων χωρίς αναβάθμιση[broken link: invalid section] του συστήματος (π.χ. pacman -Sy package_name. Αυτό μπορεί να οδηγήσει σε προβλήματα με τις εξαρτήσεις των πακέτων. Δείτε #Μερική αναβάθμιση δεν υποστηρίζεται[broken link: invalid section] και https://bbs.archlinux.org/viewtopic.php?id=89328
.

Απεγκατάσταση πακέτων

Για να απεγκαταστήσετε ένα πακέτο, αφήνοντας όλες τις εξαρτήσεις του εγκατεστημένες:

pacman -R package_name

Για να αφαιρέσετε όλες τις εξαρτήσεις οι οποίες δεν χρησιμοποιούνται από άλλα εγκατεστημένα πακέτα:

pacman -Rs package_name

Για να αφαιρέσετε ένα πακέτο, τις εξαρτήσεις του και όλα τα πακέτα που εξαρτώνται από αυτό

Προσοχή: Αυτή η εντολή είναι αναδρομική και πρέπει να χρησιμοποιείται με προσοχή, μιας και είναι πιθανή η απομάκρυνση αρκετών πιθανά απαιτούμενων πακέτων.

# pacman -Rsc package_name

Για να αφαιρέσετε ένα πακέτο που απαιτείται από κάποιο, χωρίς να απομακρύνεται το εξαρτώμενο

# pacman -Rdd package_name

Ο pacman αποθηκεύει σημαντικά αρχεία ρυθμίσεων κατά την διάρκεια αφαίρεσης κάποιου πακέτου ή εφαρμογής και τα ονομάζει δίνοντας την επέκταση: .pacsave.

Για να αποφύγετε αυτή την διαδικασία, περάστε την μεταβλητή -n:

# pacman -Rn package_name

Σημείωση: Ο pacman δεν θα αφαιρέσει αρχεία ρυθμίσεων τα οποία έχουν δημιουργηθεί από την αφαιρούμενη εφαρμογή.

Αναβαθμίζοντας το Σύστημα

Ο Pacman μπορεί να αναβαθμίσει όλα τα πακέτα που βρίσκονται εγκατεστημένα στο σύστημα σας με μια μόνο εντολή. Η παρακάτω εντολή, συγχρονίζει την βάση δεδομένων σας με αυτή των αποθετηρίων που έχετε ορίσει ως ενεργά, και τα αναβαθμίζει στην τελευταία διαθέσιμη έκδοση (εκτός από αυτά που έχουν εγκατασταθεί τοπικά και δεν βρίσκονται στην βάση δεδομένων τους).

Αυτό μπορεί να διαρκέσει αρκετά λεπτά ανάλογα με το πόσο πρόσφατα είχε αναβαθμιστεί το σύστημα σας παλιότερα.

# pacman -Syu

Προσοχή: Αντί να προχωρούμε σε άμεση αναβάθμιση του συστήματός μας μόλις αυτή είναι διαθέσιμη, οι χρήστες δεν θα πρέπει να παραγνωρίζουν ότι το Arch είναι κυλιόμενη διανομή και μια αναβάθμιση ίσως να έχει απρόβλεπτες συνέπειες. Αυτό σημαίνει πως δεν είναι σοφό να αναβαθμίσουμε όταν είμαστε στο μέσον μιας σοβαρής εργασίας. Καλύτερα να κάνουμε την αναβάθμιση σε ελεύθερο χρόνο και να είμαστε προετοιμασμένοι να αντιμετωπίσουμε τα όποια προβλήματα πιθανώς εμφανιστούν.

Ο pacman είναι ένα πολύ δυνατό εργαλείο διαχείρισης πακέτων, αλλά ο σκοπός του δεν είναι να τα χειρίζεται όλα. Διαβάστε το The Arch Way αν χρειάζεστε διευκρινήσεις. Οι χρήστες πρέπει να είναι προσεκτικοί και να αναλαμβάνουν την ευθύνη της συντήρησης του συστήματός τους. Όταν πραγματοποιείται μια αναβάθμιση συστήματος είναι αναγκαίο οι χρήστες να παρακολουθούν τις πληροφορίες που δίνει ο pacman και να χρησιμοποιούν την κοινή λογική. Εάν μια ρύθμιση που έχει κάνει ο χρήστης χρειαστεί να αναβαθμιστεί για την νέα έκδοση του πακέτου που αφορά, θα δημιουργηθεί ένα αρχείο .pacnew, ώστε να μην αντικατασταθούν οι ρυθμίσεις που έχει επιλέξει. Ο pacman θα προτείνει στον χρήστη την συγχώνευση του παλιού με το νέο αρχείο που μόλις δημιούργησε. Αυτά τα αρχεία, απαιτούν διερεύνηση από τον χρήστη και προτείνεται να διαχειρίζονται μόλις δημιουργηθούν. Δείτε το Pacnew and Pacsave files για περισσότερες πληροφορίες.

Σημείωση: Μην ξεχνάτε πως η έξοδος του pacman αποθηκεύεται στην διαδρομή /var/log/pacman.log.

Πρίν την αναβάθμιση, προτείνουμε να επισκέπτεστε την σελίδα Arch Linux home page ώστε να διαβάζετε να τελευταίες ανακοινώσεις (εναλλακτικά κάντε εγγραφή στα RSS feed, arch-announce mailing list, ή κάντε follow @archlinux. Όταν μια αναβάθμιση απαιτεί μια πέρα-από-τα-συνηθισμένα εμπλοκή του χρήστη (περισσότερα από ότι μπορεί να κάνει ακολουθώντας τις οδηγίες του pacman), θα υπάρχει μια κατάλληλη δημοσίευση.

Αν κάποιος εξακολουθεί να έχει προβλήματα παρά το ότι έχει ακολουθήσει τις οδηγίες που υπάρχουν εκεί, κάντε αναζήτηση στο forum. Είναι πολύ πιθανό να έχουν αντιμετωπίσει και άλλοι το ίδιο με εσάς πρόβλημα και να έχουν δημοσιεύσει οδηγίες επίλυσής του.

Κάνοντας αναζήτηση στην βάση δεδομένων των πακέτων

Ο Pacman μπορεί να κάνει αναζητήσεις στην τοπική βάση δεδομένων των εγκατεστημένων πακέτων σας με την σημαία (flag) -Q. Δείτε το

pacman -Q --help

και αναζήτηση στην βάση δεδομένων των αποθετηρίων με την σημαία (flag) -S

pacman -S --help

O pacman μπορεί να αναζητήσει στην βάση δεδομένων του πακέτα, ψάχνοντας στα ονόματά τους και στην περιγραφή τους

pacman -Ss πακέτο1 πακέτο2 ...

Για αναζήτηση σε εγκατεστημένα πακέτα

pacman -Qs πακέτο1 πακέτο2 ...

Για εμφάνιση εκτενών πληροφοριών πακέτων στην βάση δεδομένων του

pacman -Si όνομα_πακέτου

για εμφάνιση εκτενών πληροφοριών σε ήδη εγκατεστημένα πακέτα

pacman -Qi όνομα_πακέτου

Δίνοντας δύο φορές την σημαία (flag) -i βλέπουμε και τα τυχόν αντίγραφα ασφαλείας καθώς και τις τροποποιήσεις του πακέτου

pacman -Qii όνομα_πακέτου

Για να δούμε την λίστα των αρχείων που έχουν εγκατασταθεί από ένα πακέτο δίνουμε

-Ql όνομα_πακέτου

Για τα μη εγκατεστημένα πακέτα, χρησιμοποιούμε το pkgfile

Μπορεί να γίνει αναζήτηση στην τοπική βάση δεδομένων, ώστε να μάθουμε σε ποιο πακέτο ανήκει ένα αρχείο με:

pacman -Qo /διαδρομή/προς/όνομα_πακέτου

Για να βρούμε ποια αρχεία δεν χρειάζονται πλέον ως εξαρτήσεις (orphans) δίνουμε

pacman -Qdt

Για να δούμε την δομή των εξαρτήσεων (pactree) ενός πακέτου, δίνουμε

pactree όνομα_πακέτου

Για να δούμε όλα τα πακέτα που εξαρτώνται από το εγκατεστημένο πακέτο, χρησιμοποιούμε την whoneeds από το πακέτο pkgtools.

Συμπληρωματικές εντολές

Αναβάθμιση συστήματος και εγκατάσταση πακέτων σε μια γραμμή

pacman -Syu όνομα_πακέτου1 όνομα_πακέτου2 ...

Λήψη πακέτου χωρίς να γίνει εγκατάστασή του

pacman -Sw όνομα_πακέτου

Εγκατάσταση πακέτου που βρίσκεται τοπικά και όχι σε αποθετήριο (πχ το πακέτο είναι από το AUR)

pacman -U /διαδρομή/προς/πακέτο/όνομα_πακέτου-έκδοση.pkg.tar.xj

Σημείωση: Για να κρατήσουμε αντίγραφο του τοπικού πακέτου στην προσωρινή μνήμη του pacman, χρησιμοποιούμε

pacman -U file://διαδρομή/προς/πακέτο/όνομα_πακέτου-έκδοση.pkg.tar.xj

Εγκατάσταση αρχείου από τοποθεσία web

pacman -U http://www.example.com/repo/example.pkg.tar.xz

Εκκαθάριση μνήμης cache του pacman από μη εγκατεστημένα πακέτα (/var/cache/pacman/pkg)

Προσοχή: Προχωρήστε σε αυτή την διαδικασία, μόνο όταν είστε σίγουροι πως τα εγκατεστημένα πακέτα είναι σταθερά, και δεν θα απαιτηθεί διαδικασία υποβάθμισης, μιας και θα αφαιρεθούν όλες οι παλαιές εκδόσεις από την μνήμη cache του pacman, αφήνοντας μόνο τις ήδη εγκατεστημένες. Το να υπάρχουν παλαιότερες εκδόσεις πακέτων, μπορεί να αποδειχθεί πολύ χρήσιμο σε μια προσεχή ίσως αποτυχημένη αναβάθμισή του.

pacman -Sc

Εκκαθάριση όλης της προσωρινής μνήμης (cache) του pacman

Προσοχή: Αυτή η διαδικασία έχει ως αποτέλεσμα την ολοκληρωτική εκκαθάριση της προσωρινής (cache) μνήμης. Αυτό θεωρείται κακή πρακτική και αφαιρεί την δυνατότητα της υποβάθμησης κάποιου πακέτου απευθείας από την προσωρινή μνήμη (cache). Οι χρήστες σε αυτή την περίπτωση, θα υποχρεωθούν να χρησιμοποιήσουν εναλλακτική πηγή ξεπερασμένων πακέτων όπως το Arch Rollback Machine[broken link: invalid section].

pacman -Scc

Συμβουλή: Ως εναλλακτική διαδικασία για τις pacman -Sc & pacman -Scc μπορείτε με ασφάλεια να χρησιμοποιήσετε την paccache του pacman. Αυτή δίνει μεγαλύτερο έλεγχο στο τι αφαιρείται και τι παραμένει από πακέτα στην μνήμη cache.

Τρέξτε paccache -h

για οδηγίες.

Δεν υποστηρίζεται η μερική αναβάθμιση

Το Arch Linux, είναι μια κυλιόμενη διανομή, και νέες εκδόσεις βιβλιοθηκών θα μπουν στα αποθετήρια. Οι προγραμματιστές (Developers) και οι Trusted Users θα δημιουργήσουν ξανά όποια αρχεία απαιτούν τέτοια ενέργεια μετά την αναβάθμιση των βιβλιοθηκών. Αν το σύστημα περιέχει αρχεία τοπικά εγκατεστημένα (όπως τα αρχεία από το AUR) οι χρήστες θα πρέπει να τα δημιουργήσουν ξανά όταν οι εξαρτήσεις τους λάβουν ένα σήμα soname.

Αυτό σημαίνει πως η μερική αναβάθμιση δεν υποστηρίζεται. Μην χρησιμοποιείται pacman -Sy package ή οποιοδήποτε ισοδύναμο όπως pacman -Sy και μετά pacman -S package. Πάντα κάντε την διαδικασία της αναβάθμισης πριν την εγκατάσταση νέου πακέτου, ιδιαίτερα αν ο pacman έχει ανανεώσει την βάση δεδομένων σας, Να είστε πολύ προσεκτικοί με τις IgnorePkg & IgnoreGroup για τον ίδιο λόγο.

Αν μια διαδικασία μερικής αναβάθμισης έχει δημιουργηθεί, και τα εκτελέσιμα έχουν πάψει να λειτουργούν εξαιτίας της αδυναμίας εύρεσης των συνδεδεμένων βιβλιοθηκών, μην το "λύσετε" απλά δημιουργώντας έναν σύνδεσμο (symlink). Οι βιβλιοθήκες λαμβάνουν σήματα soname όταν δεν είναι συμβατές προς τα πίσω. Ένα απλό pacman -Syu προς έναν ενημερωμένο εξυπηρετητή θα λύσει το πρόβλημα, αρκεί ο pacman να είναι λειτουργικός.

Αντιμετώπιση προβλημάτων

Η αναβάθμιση του ΧΥΖ πακέτου, έσπασε το σύστημά μου.

Τo Arch Linux είναι μια κυλιόμενη-διανομή αιχμής. Αναβαθμίσεις πακέτων εμφανίζονται αμέσως μόλις φτάσουν σε σταθερό για γενική χρήση επίπεδο. Παρ' όλα αυτά, οι αναβαθμίσεις μερικές φορές απαιτούν παρέμβαση από τον χρήστη: Αρχεία ρυθμίσεων ίσως χρειαστούν να ενημερωθούν, προαιρετικές εξαρτήσεις ίσως αλλάξουν κ.λ.π.

Το σημαντικότερο πράγμα που πρέπει να θυμάστε είναι να μην αναβαθμίζεται "τυφλά" το Arch σύστημά σας. Πάντα να διαβάζεται την λίστα με τα πακέτα που είναι προς αναβάθμιση. Δώστε προσοχή στα "κρίσιμα" πακέτα που πρόκειται να αναβαθμιστούν (linux, xorg-server, κ.λ.π.). Αν ναι, τότε είναι καλή ιδέα να επισκεφτείτε την σελίδα https://www.archlinux.org/ και να δείτε αν κάποιοι αντιμετώπισαν προβλήματα μετά την πρόσφατη αναβάθμιση.

Αν η αναβάθμιση κάποιου πακέτου αναμένεται ή είναι γνωστό να δημιουργήσει προβλήματα, τότε ο δημιουργός του σιγουρεύεται πως ο pacman θα εμφανίσει ένα ανάλογο μήνυμα κατά την αναβάθμιση του. Αν αντιμετωπίσετε πρόβλημα μετά από αναβάθμιση δείτε ξανά την έξοδο του pacman στην διαδρομή

(/var/log/pacman.log).

Σε αυτό το σημείο και μόνο αν έχετε βεβαιωθεί πως δεν υπάρχει πληροφόρηση από την έξοδο του pacman, δεν υπάρχουν σχετικά άρθρα στην σελίδα https://www.archlinux.org/ και πως δεν υπάρχουν σχετικές με την πρόσφατη αναβάθμιση δημοσιεύσεις στο forum, αναζητήστε βοήθεια στο forum, στο IRC, ή στο σημείο υποβάθμιση προβληματικού πακέτου.

Γνωρίζω πως ένα πακέτο ΑΒΓ έχει αναβαθμιστεί, αλλά ο pacman δίνει πως το σύστημά μου είναι πλήρως ενημερωμένο.

Όλες οι βάσεις δεδομένων (mirrors) δεν ενημερώνονται άμεσα και ταυτόχρονα με την κεντρική. Ίσως να απαιτηθούν και 24 ώρες έως ότου μια αναβάθμιση γίνει δυνατή από εσάς. Οι μόνες επιλογές που έχετε είναι να δείξετε υπομονή ή να χρησιμοποιήσετε διαφορετικό mirror.

To MirrorStatus σας βοηθά να βρείτε τους ενημερωμένους mirrors.

Λαμβάνω το ακόλουθο σφάλμα κατά την αναβάθμιση: "Το αρχείο υπάρχει ήδη στο σύστημα αρχείων".

Τμήμα: Από την δημοσίευση https://bbs.archlinux.org/viewtopic.php?id=56373 by Misfit138.

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
package: /path/to/file exists in filesystem
Errors occurred, no packages were upgraded.

Γιατί συμβαίνει αυτό: Ο pacman διέκρινε μια σύγκρουση αρχείων και από προεπιλογή δεν αντικαθιστά αρχεία σας. αυτό είναι χαρακτηριστικό του σχεδιασμού του και όχι ελάττωμα. Το πρόβλημα είναι συνήθως απλό στην λύση του. Ο ασφαλής τρόπος είναι να εξετάσετε κατ' αρχάς αν το αρχείο προς αναβάθμιση ανήκει σε κάποιο άλλο πακέτο με (pacman -Qo /διαδρομή/προς/αρχείο). Αν το αρχείο ανήκει σε κάποιο άλλο πακέτο τότε πρέπει να ανοίξετε αναφορά σφάλματος (bug report).

Αν το αρχείο δεν ανήκει σε κάποιο άλλο πακέτο, τότε, μετονομάστε το 'ήδη υπάρχον στο σύστημά σας', και αναβαθμίστε το σύστημά σας. Αν όλα πάνε καλά, τότε το ήδη υπάρχον αρχείο μπορεί με ασφάλεια να διαγραφεί.

Αν έχετε εγκαταστήσει κάποια εφαρμογή τοπικά ή με την βοήθεια κάποιας διεπαφής (frontend) του pacman, τότε πρέπει να την αφαιρέσετε μαζί με όλα τα πακέτα της και να την εγκαταστήσετε πάλι μέσω του pacman.

Κάθε εγκατεστημένο πακέτο δίνει /var/lib/pacman/local/$package-$version/files ένα αρχείο με δεδομένα (metadata). Αν αυτό είναι μη συνεχές (κενό ή απουσιάζει) δίνει το λάθος "file exists in filesystem" όταν προσπαθείτε να αναβαθμίσετε το σύστημά σας.

Τέτοια λάθη, συνήθως αφορούν μόνο ένα πακέτο, και αντί να μπείτε στην διαδικασία νε κάνετε μετονομασία και μετά αφαίρεση όλων των αρχείων που του ανήκουν, μπορείτε να χρησιμοποιήσετε την

pacman -S --force $όνομα_πακέτου

ώστε να υποχρεώσετε τον pacman να τα αντικαταστήσει με τα νέα της αναβάθμισης.

Μην χρησιμοποιείται ποτέ την

pacman -Syu --force.

Προσπαθώ να εγκαταστήσω ένα πακέτο και λαμβάνω το σφάλμα "δεν βρέθηκε στην βάση δεδομένων"

Πρώτα απ' όλα βεβαιωθείτε πως το πακέτο υπάρχει πραγματικά (και προσέξτε την ορθογραφία). Αν βεβαιωθείτε πως το πακέτο υπάρχει, τότε πιθανότατα η λίστα πακέτων στο σύστημά σας είναι παλαιά ή έχετε διαμορφώσει λάθος τα αποθετήρια. Προσπαθήστε να τρέξετε το pacman -Syy ώστε ο pacman να ανανεώσει την λίστα πακέτων σας.

Προσπαθώ να εγκαταστήσω ένα πακέτο και λαμβάνω το σφάλμα "το πακέτο δεν βρέθηκε (target not found)"

Πρώτα απ' όλα βεβαιωθείτε πως το πακέτο υπάρχει πραγματικά (και προσέξτε την ορθογραφία). Αν βεβαιωθείτε πως το πακέτο υπάρχει, τότε πιθανότατα η λίστα πακέτων στο σύστημά σας είναι παλαιά ή έχετε διαμορφώσει λάθος τα αποθετήρια. Προσπαθήστε να τρέξετε το pacman -Syy ώστε ο pacman να ανανεώσει την λίστα πακέτων σας.

Ίσως το αποθετήριο που βρίσκεται το πακέτο, να μην είναι ενεργό στο σύστημά σας (π.χ. μπορεί να είναι στο [multilib] αλλά εσείς να μην το ορίσει ως ενεργό στο αρχείο /etc/pacman.conf.

Ο pacman συνεχώς αναβαθμίζει το ίδιο πακέτο

Αυτό συμβαίνει διότι υπάρχουν δύο εγγραφές στο /var/lib/pacman/local/, όπως δύο παρουσίες του linux. Η pacman -Qi δίνει έξοδο την σωστή έκδοση, αλλά η pacman -Qu αναγνωρίζει την παλαιά και προσπαθεί να την αναβαθμίσει.

Λύση: Διαγράψτε την λάθος έκδοση στο /var/lib/pacman/local/

Σημείωση: Από την έκδοση 3.4 και μετά ο pacman θα πρέπει να εμφανίζει μήνυμα λάθους στην περίπτωση των διπλών καταχωρήσεων, πράγμα που κάνει το παρόν κομμάτι ξεπερασμένο.

Ο pacman καταρρέει κατά την διάρκεια της αναβάθμισης.

Στην περίπτωση που ο pacman καταρρέει δίνοντας το σφάλμα "database write" ενώ παράλληλα το ίδιο συμβαίνει και η αφαίρεση και εγκατάσταση πακέτων αποτυγχάνει

  1. Εκκινήστε με δίσκο-εκκίνησης (live cd)
  2. Προσαρτήστε το root σύστημα αρχείων σας
  3. Αναβαθμίστε την βάση δεδομένων του pacman pacman -Syy
  4. Εγκαταστήστε ξανά το προβληματικό πακέτο με την pacman -r /διαδρομή/προς/root -S package.

Εγκατέστησα λογισμικό χρησιμοποιώντας την "make install", αυτά τα αρχεία δεν ανήκουν σε κανένα πακέτο!

Αν λαμβάνεται ένα σφάλμα "σύγκρουση αρχείων" ("conflicting files") θα πρέπει να γνωρίζετε πως ο pacman θα αντικαταστήσει οποιοδήποτε χειροκίνητα-εγκατεστημένο πακέτο, αν του περάσετε την μεταβλητή --force (pacman -S --force). Δείτε Pacman tips#Identify files not owned by any package ένα αρχείο φλοιού (script) που αναζητά τέτοια αρχεία στο δικός σύστημα αρχείων.

Προσοχή: Να είστε πολύ προσεκτικοί όταν χρησιμοποιείτε την μεταβλητή --force . Αν χρησιμοποιηθεί λάθος μπορεί να δημιουργήσει δυσεπίλυτα προβλήματα στο σύστημά σας. Προτείνεται να την χρησιμοποιείτε μόνο αν ζητηθεί στα Arch νέα της αρχικής σελίδας.

Χρειάζομαι ένα πακέτο που περιέχει ένα συγκεκριμένο αρχείο. Πως θα ξέρω ποιο είναι?

Εγκαταστήστε το πακέτο pkgfile το οποίο χρησιμοποιεί διαφορετική βάση δεδομένων με όλα τα πακέτα και όλα τα αρχεία που περιέχουν.

Ο pacman έχει καταρρεύσει. Πως τον εγκαθιστώ ξανά?

Αν ο pacman έχει καταρρεύσει και είναι πέρα από κάθε προσπάθεια επιδιόρθωσης, κατεβάστε χειροκίνητα τα απαιτούμενα πακέτα (openssl, libarchive, and pacman) και αποσυμπιέστε τα στον κατάλογο του root σας. Ο pacman θα αποκατασταθεί μαζί με την προεπιλεγμένη διαμόρφωσή του. Κατόπιν εγκαταστήστε τα ίδια αρχεία ξανά, μέσω του pacman ώστε να κρατήσετε την ακεραιότητα της βάσης δεδομένων σας.

μετά από αναβάθμιση δεν μπορώ να εκκινήσω το σύστημά μου και λαμβάνω το σφάλμα "Αδυναμία εύρεσης του διαμερίσματος root" ("unable to find root device"). Το σύστημά μου πλέον δεν εκκινεί.

Πιθανότατα το αρχείο initramfs υπέστη βλάβη κατά την αναβάθμιση του kernel. Αυτό είναι αποτέλεσμα πιθανότατα κακής χρήσης της μεταβλητής --force. Έχετε δύο επιλογές.

  1. Δοκιμάστε να εκκινήσετε με την επιλογή Υποβάθμισης (fallback entry)
Συμβουλή: Κατά την περίπτωση που έχετε αφαιρέσει αυτή την επιλογή για οποιονδήποτε λόγο, έχετε την δυνατότητα πατώντας το πλήκτρο Tab κατά την εμφάνιση του μενού επιλογών του εκκινητή σας (boot loader) (Syslinux) ή το πλήκτρο e (Grub), μετονομάστε το σε initramfs-linux-fallback.img και πατήστε Enter ή e ανάλογα με τον εκκινητή που χρησιμοποιείτε ώστε να εκκινήσετε με τις νέες παραμέτρους.

Όταν το σύστημα εκκινήσει, τρέξτε αυτή την εντολή σε τερματικό

mkinitcpio -p linux ώστε να επαναδημιουργηθεί το initrmfs αρχείο σας.

  1. Αν δεν έχει αποτέλεσμα η παραπάνω διαδικασία, εκκινήστε με ένα live cd, και δώστε κατά σειρά
# mount /dev/sdxY /mnt         #Your root partition.
# mount /dev/sdxZ /mnt/boot    #If you use a separate /boot partition.
# arch-chroot /mnt
# pacman -Syu mkinitcpio systemd linux

Εγκαθιστώντας ξανά τον kernel (the linux package) θα δημιουργηθεί αυτόματα ένα νέο αρχείο initrmfs με την mkinitcpio -p linux. Δεν απαιτείται να δώσετε χειρόγραφα την παραπάνω εντολή.

Τέλος προτείνεται να δώσετε τις παρακάτω εντολές

exit, umount /mnt/{boot,} και reboot.

Σημείωση: Αν δεν μπορείτε να εισέλθετε στο σύστημά σας μέσω της εντολής arch-chroot αλλά πρέπει να επανεγκαταστήσετε πακέτα, μπορείτε να το κάνετε δίνοντας την pacman -r /mnt -Syu foo bar ώστε να χρησιμποιήσετε τον pacman στο διαμέρισμα του root σας


Σημείωση: Το αρχείο initramfs έχει αντικατασταθεί από το αρχείο mkinitcpio

Η υπογραφή από "User <email@gmail.com>" δεν είναι αξιόπιστη, η εγκατάσταση απέτυχε.

Ακολουθήστε τις οδηγίες εδώ pacman-key#Resetting all the keys. Ή μπορείτε να προσπαθήσετε να αναβαθμίσετε χειροκίνητα πρώτα το πακέτο archlinux-keyring, π.χ. pacman -S archlinux-keyring.

Συνεχώς λαμβάνω τα σφάλματα

error: PackageName: signature from "User <email@archlinux.org>" is invalid
error: failed to commit transaction (invalid or corrupted package (PGP signature))
errors occured, no packages were upgraded. 

Συμβαίνει όταν η ώρα συστήματος δεν είναι σωστή. Ρυθμίστε την ώρα και τρέξτε

# hwclock -w
πριν προσπαθήσετε να εγκαταστήσετε ή να αναβαθμίσετε κάποιο πακέτο.

Συνεχώς εμαφανίζεται το σφάλμα "Αποτυχία ολοκλήρωσης εργασίας.Μη έγκυρο ή κατεστραμένο πακέτο"

Ερευνήστε για *.part αρχεία (μερικώς κατεβασμένα πακέτα) στην διαδρομή /var/cache/pacman/pkg και διαγράψτε τα (συχνά είναι αποτέλεσμα χρήσης προσαρμοσμένης XferCommand στο αρχείο pacman.conf).

Πως μπορώ να εγκαταστήσω ξανά όλα τα πακέτα διατηρώντας τις πληροφορίες για ρητή εγκατάσταση πακέτου ή εγκατάστασή του ως εξάρτηση

Για εγκατάσταση ξανά, όλων των εγγενών (native) πακέτων χρησιμποιείστε την pacman -S $(pacman -Qnq) (η μεταβλητή -S διατηρεί τους λόγους εγκατάστασης κάθε πακέτου από προεπιλογή).
Κατόπιν φυσικά θα χρειαστεί να εγκαταστήσετε όλα τα πακέτα που έχετε εγκαταστήσει τοπικά και τα οποία βρίσκετε με την pacman -Qmq.


Opanos (talk) 07:47, 4 November 2013 (UTC)

Σχετικοί σύνδεσμοι

man-pages:

Άλλες εγγραφές στο wiki:

Improve pacman performance
Colored Pacman output
Downgrade packages
Editing pacman.conf
Redownloading all installed packages
Arch User Repository
Local repository HOW-TO
Custom local repository with ABS and gensync
Howto Upgrade via Home Network (Network Shared Pacman Cache)
Pacman GUI Frontends
Pacman Aliases (for bash)
Mirrors

Εξωτερικοί σύνδεσμοι

Using Pacman

GUI Frontends