-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ.el
EN · EL · FR · ES · IT · RU · ZH · AR · HI · PT · DE
Συχνές ερωτήσεις κι επίλυση προβλημάτων. Δες επίσης Configuration, Security, και Repositories and Priority.
Όχι — και δε θα δουλέψει ποτέ. Ο slacker στοχεύει στο Slackware -current: 64-bit (x86_64) και, από την 0.9.0, 32-bit (i586/i686). Δες Status and Roadmap.
Ναι — αυτό είναι το slacker upgrade-dist {current|VERSION}. Ξαναδείχνει το mirror
και τα repos σου στην έκδοση-στόχο κι αντικαθιστά κάθε πακέτο με το build του στόχου
(η μία εντολή που σκόπιμα παρακάμπτει το μοντέλο προτεραιότητας), μετά τρέχει
install-new + clean-system και σου θυμίζει για τον kernel πριν κάνεις reboot. Πάντα
δοκίμασέ το πρώτα με --dry-run και κράτα backups. Σημείωσε ότι για ν' αναβαθμίσεις
σύστημα 15.0 χρειάζεσαι binary slacker που τρέχει στην παλιότερη glibc του
15.0 (το διανεμόμενο πακέτο είναι χτισμένο για -current)· κι η επιλογή τοπικής
πηγής (DISTRO_UPGRADE_MIRROR) δεν έχει δοκιμαστεί ακόμη. Πλήρεις
λεπτομέρειες στο Distribution Upgrade.
Αυτό είναι το guard ταιριάσματος έκδοσης. Ένα repo χτισμένο για άλλη έκδοση
Slackware (για παράδειγμα ένα alienbob -current repo ακόμη ενεργό σε 15.0) μπορεί
να περάσει GPG/md5 κι όμως να εγκαταστήσει πακέτα που σπάνε το σύστημά σου, οπότε ο
slacker το αρνείται. Δείξε το repo στην έκδοση του συστήματός σου, ή πέρασε --yes
για να το παρακάμψεις αν είσαι σίγουρος. Το slacker status δείχνει την ίδια
αναντιστοιχία στη γραμμή Repo release. Δες Security.
Όχι. Το δυαδικό πακέτο βάζει τα αρχεία ρυθμίσεων στη θέση τους κάτω από το
/etc/slacker/. Επεξεργάζεσαι μόνο δύο απ' αυτά — το mirrors (διάλεξε ένα) και το
repos (όρισε προτεραιότητες). Δες Installation.
Τρέξε slacker find-mirror. Δοκιμάζει την επίσημη λίστα mirror του Slackware,
χρονομετρά το καθένα, πετάει όσα έχουν μείνει πίσω από τον upstream master, κατατάσσει
τα υπόλοιπα κατά ταχύτητα, και τυπώνει το πιο γρήγορο ως τη γραμμή για το mirrors
— δεν αλλάζει ποτέ το config σου. Δουλεύει πριν ρυθμιστεί οποιοδήποτε mirror,
οπότε είναι η φυσική πρώτη εντολή σ' ένα φρέσκο σύστημα. Αργότερα το slacker status
επισημαίνει mirror που ξεπεράστηκε (πάνω από 48 ώρες πίσω από τον upstream). Δες
Quick Start.
Αυτό το repo είναι subtree διανομής (extra, patches, testing, pasture)
και χρειάζεται το flag subtree στο repos. Το PACKAGES.TXT του παραθέτει
τοποθεσίες σχετικά με τη ρίζα της διανομής· το flag λέει στον slacker να λαμβάνει τα
πακέτα και το κλειδί από το γονικό URL. Δες Repositories and Priority.
Οι προτεραιότητες δυαδικών repo πρέπει να είναι διακριτές. Δώσε σε κάθε δυαδικό repo μοναδικό αριθμό. (Οι γραμμές tag-priority μπορούν να μοιράζονται προτεραιότητα — αυτό είναι εντάξει.)
Στο mirrors, ακριβώς μία γραμμή πρέπει να είναι uncommented. Μηδέν αφήνει το
επίσημο URL κενό· δύο ή περισσότερες είναι σφάλμα.
Προτεραιότητα. Ο slacker δε μεταναστεύει ποτέ ένα εγκατεστημένο πακέτο σε πηγή άλλης
προτεραιότητας ούτε το υποβαθμίζει. Ένας υποψήφιος προτείνεται μόνο από repo
υψηλότερης ή ίσης προτεραιότητας. Αν θες το build ενός συγκεκριμένου repo,
κάνε το pin: slacker upgrade alienbob:vlc. Για να κερδίζει πάντα μια πηγή, δώσ' της
tag priority. Δες Repositories and Priority.
Ναι, για επίσημα πακέτα σε -current. Το slacker revert-pkg NAME παραθέτει τα
προηγούμενα builds αυτού του πακέτου (από το removed_packages), λαμβάνει αυτό που
διαλέγεις από το σωρευτικό αρχείο (GPG-επαληθευμένο έναντι του pinned Slackware
κλειδιού), και το υποβαθμίζει με upgradepkg --reinstall. Δοκίμασε πρώτα --dry-run
για να δεις το ακριβές build. Μετά προσφέρεται να παγώσει το πακέτο ώστε το
upgrade-all να μην το ξανατραβήξει μπροστά — άρε το αργότερα με
slacker unfrozen NAME. Πακέτα τρίτων δεν καλύπτονται (το σωρευτικό αρχείο φέρει
μόνο επίσημα), και δουλεύει μόνο σε -current: ο κώδικας διαβάζει το
VERSION_CODENAME και αρνείται σε σταθερή έκδοση (σκληρό, fail-closed guard).
Δες Common Workflows.
slacker unfrozen RULE — το αντίστοιχο του frozen. Τρέξε slacker unfrozen χωρίς
όρισμα για λίστα των τρεχόντων κανόνων, μετά πέρασε έναν ακριβώς όπως φαίνεται
(το ταίριασμα είναι κυριολεκτικό, οπότε .* / * / / δεν αντιμετωπίζονται ποτέ
ως pattern). Η επεξεργασία του /etc/slacker/blacklist με το χέρι δουλεύει επίσης.
Δες Blacklist.
Το install-new μου προτείνει συνέχεια πράγματα που αφαίρεσα / δεν προτείνει ποτέ ένα πακέτο που αφαίρεσα.
Το install-new είναι για πακέτα των οποίων το όνομα προστέθηκε πρόσφατα στη
διανομή — όχι για πακέτα που αφαίρεσες (αυτά υπάρχουν ήδη στο δέντρο). Για να
ξαναβάλεις αφαιρεμένο πακέτο, χρησιμοποίησε slacker install NAME (ή
install @repo). Δες Commands.
Τα ονόματα ταιριάζουν ακριβώς. Αν το πακέτο είναι aircrack-ng, το
history aircrack δε βρίσκει τίποτα — χρησιμοποίησε το ακριβές όνομα. Δες
Package History.
Ο κατάλογος removed_packages/ των pkgtools κρατά ένα όνομα αρχείου ανά id
πακέτου, οπότε μια μεταγενέστερη αφαίρεση γράφει πάνω σ' ένα παλιότερο record —
μέρος του ιστορικού χάνεται από τα ίδια τα εργαλεία. Ο slacker ανακατασκευάζει όσα
μπορεί και συμπεραίνει έναν χαμένο στόχο αναβάθμισης από την επόμενη γνωστή
καταχώρηση. Δες Package History.
Ο slacker βάζει σε quarantine ένα repo που αποτυγχάνει στον έλεγχο (μη προσβάσιμο ή
κακοσχηματισμένα/εχθρικά metadata). Ξαναέλεγξε με slacker vet-repo NAME· αν κρίνεις
ότι είναι false positive, το slacker trust-repo NAME το άρει (με δική σου ευθύνη).
Δες Security.
Ο slacker κάνει pin το GPG fingerprint κάθε repo στην πρώτη εισαγωγή (trust on first
use). Ένα μεταγενέστερο κλειδί με διαφορετικό fingerprint απορρίπτεται. Αν το κλειδί
άλλαξε νόμιμα, θα χρειαστεί να καθαρίσεις το pin αυτού του repo κάτω από το
STATE_DIR (/var/lib/slacker/gpg/<repo>.fpr) και να το ξαναεισάγεις. Δες
Security.
Σημείωσε αυτά τα repos ως immutable στο repos. Τα εγκατεστημένα πακέτα τους
διατηρούνται τότε χωρίς να κάνεις blacklist το καθένα. Δες Common Workflows.
Ο slacker δεν έχει wildcard * για επιλογή πακέτων. Ολόκληρο repository είναι
@repo (π.χ. install @gnome)· ένα μεμονωμένο πακέτο είναι το ακριβές του όνομα·
ένα substring ταιριάζει μια οικογένεια. Ένα * χωρίς εισαγωγικά το επεκτείνει το
shell σου στα ονόματα αρχείων του τρέχοντος καταλόγου πριν τρέξει ο slacker —
ο slacker δε βλέπει ποτέ το * και δε διαβάζει ποτέ τον κατάλογό σου. Όταν αυτό
παράγει πλημμύρα από μη-πακέτα ορίσματα, ο slacker το αναγνωρίζει και αρνείται την
εντολή χωρίς ν' αλλάξει τίποτα (ένα remove * δε θα διαγράψει πραγματικά πακέτα
που τυχαίνει να μοιράζονται substring μ' ένα όνομα αρχείου). Βάλε σε εισαγωγικά ένα
κυριολεκτικό pattern, ή χρησιμοποίησε @repo. Σημείωσε ότι το blacklist είναι
διαφορετικό: το frozen δέχεται glob και regex patterns — δες Blacklist.
Ναι. Τα search, info, file-search, check-updates, show-changelog,
history, και find-mirror τρέχουν ως οποιοσδήποτε χρήστης. Ό,τι αλλάζει το
σύστημα χρειάζεται root.
Οι εντολές που μεταβάλλουν παίρνουν αποκλειστικό lock (/run/slacker.lock)· τρέχει
μόνο μία τη φορά. Το lock απελευθερώνεται αυτόματα αν ο slacker τερματίσει ή
σκοτωθεί. Τα queries δεν παίρνουν lock.
Όρισε NO_COLOR=1 (το χρώμα απενεργοποιείται αυτόματα κι όταν η έξοδος δεν είναι
terminal). Ο pager για μεγάλη έξοδο είναι το $PAGER ή το less -FRX.
Άνοιξε ένα issue στο https://forge.slackware.nl/rizitis/slacker/issues.
slacker - slackpkg + slackpkg+ in one - Apache-2.0 - by Ioannis Anagnostakis (rizitis) - beta / WIP, for Slackware -current (64-bit & 32-bit)
Getting started
Using slacker
- Commands
- Common Workflows
- Distribution Upgrade
- Repositories and Priority
- Package History
- Dependencies
- Docker
- Templates
- Blacklist
Trust & safety
Reference
For contributors