EN · EL · FR · ES · IT · RU · ZH · AR · HI · PT · DE
Dépôts et priorité
C'est l'idée fondatrice de slacker, et ce qui le distingue d'un simple outil de miroir : chaque dépôt vit dans un unique modèle ordonné par priorité, et la priorité n'est jamais violée en silence.
La règle de priorité
Quand le même nom de paquet est proposé par plusieurs dépôts, c'est celui du dépôt de priorité la plus élevée qui l'emporte. Plus important encore :
Un paquet installé n'est jamais migré en silence vers un autre dépôt, et jamais rétrogradé. Un candidat n'est proposé que depuis un dépôt de priorité supérieure ou égale. La seule exception est un
repo:nameexplicite.
Ainsi, donner à un dépôt une priorité élevée et distincte verrouille ses paquets : rien venant d'un dépôt inférieur ne peut les remplacer, même avec un numéro de version plus récent.
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#161b22','primaryBorderColor':'#1f6feb','primaryTextColor':'#e6edf3','lineColor':'#6e7781','fontFamily':'monospace'}}}%%
flowchart TB
I["paquet installé<br/>(son build tag = sa source)"] --> D{"priorité du dépôt candidat<br/>vs la source installée"}
D -->|supérieure ou égale| U["peut mettre à niveau / remplacer"]
D -->|inférieure| K["conservé - jamais rétrogradé<br/>jamais migré"]
PIN["repo:name"] -. "force un dépôt,<br/>passant outre la priorité" .-> U
classDef grey fill:#0d1117,stroke:#6e7781,color:#8b949e;
classDef blue fill:#0d1117,stroke:#1f6feb,color:#e6edf3;
classDef green fill:#0d1117,stroke:#2ea043,color:#e6edf3;
class I,PIN grey
class D blue
class U green
class K grey
Comment slacker connaît-il la « source » d'un paquet installé sans base de
données ? Par son build tag — le champ build moins les chiffres de tête
(1_SBo → _SBo, 7cf → cf, 1 → officiel). Une ligne tag-priority de
l'utilisateur, ou le dépôt binaire de plus haute priorité qui livre cette
étiquette (cf → conraid, alien → alienbob, détecté automatiquement), décide de
la priorité à laquelle il appartient.
Le fichier repos
# priority name url|mirror|mirror/<subpath> [flags]
100 slackware mirror official
200 patches mirror/patches subtree immutable
90 extras mirror/extra subtree immutable
85 testing mirror/testing subtree immutable
80 conraid https://slackers.it/repository/slackware64-current immutable
60 alienbob https://slackware.nl/people/alien/sbrepos/current/x86_64
# lignes tag-priority (peuvent partager une priorité) :
100 SBo _SBo
100 local _rtz
Le champ URL
| Forme | Signification |
|---|---|
| une URL littérale | https://, http://, ou file:// (ce dernier pour un clone local / NFS / média monté — trois barres obliques pour un chemin absolu) |
mirror |
la ligne active de mirrors, telle quelle — à utiliser pour le dépôt officiel |
mirror/<sous-chemin> |
le miroir actif avec un sous-chemin ajouté (mirror/extra, mirror/testing, mirror/patches) — un sous-arbre qui suit le miroir que vous avez choisi |
Une URL pointe vers la racine du dépôt contenant PACKAGES.TXT ; pour les
miroirs officiels, MANIFEST.bz2 se trouve dans un sous-répertoire par
architecture que slacker localise automatiquement.
Les flags
| Flag | Ce qu'il fait |
|---|---|
official |
Marque le dépôt suivi : il alimente show-changelog et sert de défaut à install-new. Le placement reste uniquement déterminé par la priorité — le dépôt officiel peut se trouver n'importe où. |
immutable |
Tout paquet attribué à ce dépôt est tenu à l'écart de clean-system. À utiliser pour extra/testing/patches que vous gardez installés, au lieu de les blacklister un par un. |
subtree |
Cette URL est un sous-arbre de distribution Slackware (extra, patches, testing, pasture). Leur PACKAGES.TXT liste les emplacements relatifs à la racine de la distribution ; les paquets et GPG-KEY sont donc récupérés depuis l'URL parente (racine) tandis que les métadonnées viennent de l'URL elle-même. Sans ce flag, ces paquets renvoient 404 avec un segment de chemin dédoublé. Les quatre sous-arbres doivent toujours porter ce flag. |
verify=... |
Surcharge de vérification par dépôt (voir Security). |
mirror/extra+subtreevont de pair.mirror/extrarésout l'URL ;subtreecorrige la façon dont les paquets et la clé en sont récupérés.
Épinglage (pinning) et sélecteurs
Un PATTERN en ligne de commande peut être :
| Forme | Correspond à |
|---|---|
firefox |
un nom de paquet exact |
python |
une sous-chaîne de nom — tous les python-* |
kde |
une série Slackware (a, ap, d, k, kde, l, n, t, x, xap, xfce, y, …) — cette série seulement, jamais des sous-chaînes |
repo:name |
un pin — force un dépôt indépendamment de la priorité (p. ex. alienbob:vlc) |
@repo |
un sélecteur d'ensemble — tous les paquets de ce dépôt (install @gnome, remove @gnome) |
@_tag |
tous les paquets portant cette étiquette de build (remove @_SBo) |
Le
@est obligatoire, de sorte qu'un mot nu n'est jamais pris pour un dépôt. Un@repo/@_taginconnu donne une suggestion « did you mean » et liste les dépôts et étiquettes disponibles.
Quand un pattern correspond à plus d'un paquet, install/upgrade/reinstall/
remove affichent une liste numérotée — Entrée pour tout, des numéros/plages comme
1 3 5 ou 2-4, n pour annuler.
Il n'existe aucun joker
*pour la sélection en ligne de commande. Un*non protégé est étendu par votre shell en noms de fichiers du répertoire courant avant que slacker ne s'exécute (slacker ne voit jamais le*et ne lit jamais votre répertoire) ; si cela produit un flot d'arguments non-paquets, slacker le reconnaît et refuse la commande, sans rien changer. Protégez un pattern littéral par des guillemets, ou utilisez@repopour tout un dépôt. (La Blacklist est le seul endroit où les patterns sont des globs/regex.)
Gérer les dépôts depuis le CLI
slacker add-repo 85 ktown https://slackware.nl/people/alien/ktown/current/x86_64
slacker add-repo 90 extras mirror/extra subtree immutable
slacker del-repo ktown
slacker pri-repo 95 extras # réajuster la priorité d'un dépôt existant
slacker add-tag 100 SBo _SBo
slacker del-tag _SBo
slacker list-repos # priorité, verify, flags, nombre d'installés
add-repo valide la ligne et, après confirmation, récupère et contrôle (vets)
le dépôt (voir Security).
pri-repo PRIORITY NAME change la priorité d'un dépôt que vous avez déjà. Il
vérifie que NAME est un dépôt actif (suggérant la correspondance la plus proche
en cas de faute de frappe) et refuse une PRIORITY qu'un autre dépôt détient
déjà, en nommant le conflit pour que vous choisissiez une autre valeur — les
priorités doivent rester distinctes. Seule la priorité de cette ligne est
réécrite ; l'URL et les flags restent exactement tels quels.
slacker
Getting started
Using slacker
- Commands
- Common Workflows
- Distribution Upgrade
- Repositories and Priority
- Package History
- Dependencies
- Docker
- Templates
- Blacklist
Trust & safety
Reference
For contributors
slacker - slackpkg + slackpkg+ in one - Apache-2.0 - by Ioannis Anagnostakis (rizitis) - beta / WIP, for Slackware -current (64-bit & 32-bit)