De pakketlijst aanpassen

Aanpassen hoe pakketten weergegeven worden
De pakkethiërarchie aanpassen
Aanpassen hoe pakketten gesorteerd worden

De pakketlijst kan grondig aangepast worden: hoe pakketten weergegeven worden, hoe de pakkethiërarchie opgebouwd wordt, hoe pakketten geordend worden en zelfs de manier waarop het scherm georganiseerd wordt, zijn allemaal elementen die kunnen veranderd worden.

Aanpassen hoe pakketten weergegeven worden

Dit onderdeel beschrijft hoe u de inhoud en de indeling van de pakketlijst kunt configureren, evenals de statusregel, de kopregel en de uitvoer van aptitude search.

De indeling van elk van deze plekken wordt gedefinieerd door een indelingstekenreeks. Een indelingstekenreeks is een tekstfragment met %-stuurcodes, zoals %p, %S, enzovoort. De uitvoer die er het resultaat van is, wordt aangemaakt door de tekst te nemen en er de %-stuurcodes mee te vervangen naargelang hun betekenis (die hieronder gegeven wordt).

Een %-stuurcode kan ofwel een vaste lengte hebben of uitrekbaar zijn. Bij een vaste lengte wordt ze steeds vervangen door een even grote hoeveelheid tekst (die als dat nodig is met extra spaties uitgevuld wordt). Een uitrekbare stuurcode neemt de ruimte in die niet door kolommen met een vaste grootte opgeëist wordt. Als er meerdere zijn die uitrekbaar zijn, dan wordt de beschikbare ruimte gelijkmatig onder hen verdeeld.

Alle %-stuurcodes hebben een standaardwaarde voor grootte of uitrekbaarheid. De grootte van een %-stuurcode kan aangepast worden door ze in te schrijven tussen het %-teken en het letterteken dat de identiteit van de stuurcode aangeeft. Bijvoorbeeld, %20V gebruikt een ruimte van 20 lettertekens voor de weergave van de kandidaatversie van het pakket. Een vraagteken (?) tussen het %-teken en het letterteken dat de identiteit van de stuurcode aangeeft, heeft tot gevolg dat de basale breedte van de kolom varieert afhankelijk van zijn inhoud. Merk op dat dan de resulterende kolommen niet mooi verticaal uitgelijnd zullen zijn.

Indien u wenst dat een bepaalde %-stuurcode uitrekbaar is, ook al heeft die normaal een vaste breedte, dan moet u onmiddellijk erachter een hekje (#) plaatsen. Om bijvoorbeeld de kandidaatversie van een pakket weer te geven, ongeacht de lengte ervan, gebruikt u de indelingstekenreeks %V#. U kunt # ook plaatsen na iets dat geen %-stuurcode is. Dan zal aptitude de aan het #-teken voorafgaande tekst uitrekken door er achteraan extra spaties aan toe te voegen.

Samengevat is de syntaxis van een %-stuurcode:

%[breedte][?]code[#]

De configuratievariabelen Aptitude::UI::Package-Display-Format, Aptitude::UI::Package-Header-Format en Aptitude::UI::Package-Status-Format definiëren de standaardindeling van respectievelijk de pakketlijst, de kopregel bovenaan de pakketlijst en de statusregel onderaan de pakketlijst. Gebruik de optie -F om aan te passen hoe het resultaat van het commando aptitude search weergegeven wordt.

De volgende %-stuurcodes kunt u gebruiken in een indelingstekenreeks:

[Opmerking]Opmerking

In sommige van de onderstaande beschrijvingen wordt verwezen naar het pakket. In de GUI gaat het dan ofwel over het pakket dat weergegeven wordt, ofwel over het pakket dat momenteel geselecteerd is. In een zoekopdracht aan de commandoregel betreft het dan het weergegeven pakket.

StuurcodeNaamStandaardgrootteUitrekbaarOmschrijving
%%Letterlijke %1Neen Dit is geen echte stuurcode. Het voegt in de uitvoer gewoon een percentteken in op de plaats waar het voorkomt.
%#getalParametersubstitutieVariabeleNeen In sommige omstandigheden zal de tekenreeks die de indeling van de weergave bepaalt, parameters bevatten: bij een zoekopdracht aan de commandoregel bijvoorbeeld, zullen de groepen die beantwoorden aan de zoekopdracht gebruikt worden als parameters bij de weergave van het resultaat. Deze indelingscode zal vervangen worden door de parameter die met getal aangegeven wordt.
%aActieteken1Neen Een enkel letterteken dat de actie aangeeft die op het pakket uitgevoerd moet worden en beschreven wordt in Afbeelding 2.10, “Waarden voor de vlag actie.
%AActie10Neen Een iets uitgebreidere beschrijving van de actie die op het pakket uitgevoerd moet worden.
%BAantal defecte12Neen Produceert niets als er geen defecte pakketten zijn. Anders produceert het een tekenreeks die het aantal defecte pakketten beschrijft, zoals Defect: 10.
%cVlag voor de huidige toestand1Neen Een uit een letter bestaand teken dat de huidige toestand van het pakket samenvat, zoals beschreven in Afbeelding 2.9, “Waarden voor de vlag huidige toestand.
%CHuidige toestand11Neen Een meer uitgebreide beschrijving van de huidige toestand van het pakket.
%dOmschrijving40Ja Een korte pakketbeschrijving.
%DPakketgrootte8Neen De grootte van het pakketbestand dat het pakket bevat.
%EArchitectuur10Neen Geeft de tekenreeks weer die verwijst naar de architectuur, bijvoorbeeld amd64.
%eBroncode30Neen Geeft weer wat het broncodepakket is, bijvoorbeeld, aptitude voor aptitude-doc-nl.
%HComputernaam15Neen De naam van de computer waarop aptitude uitgevoerd wordt.
%iPinprioriteit4Neen Geeft de hoogste prioriteit weer die aan een pakketversie toegekend wordt. Toont van pakketten de prioriteit van de versie waarvan de installatie afgedwongen zal worden (in voorkomend geval).
%IGrootte na installatie8Neen De (geschatte) hoeveelheid schijfruimte die het pakket zal innemen.
%mPakketbeheerder30Ja De pakketbeheerder die het pakket onderhoudt.
%MKenteken automatisch1Neen Toon de letter A als het pakket automatisch geïnstalleerd werd. Geef anders niets weer.
%nProgrammaversieDe lengte van 0.8.8.Neen Toont de versie van aptitude die uitgevoerd wordt, momenteel 0.8.8.
%NProgrammanaamDe lengte van de naam.Neen Toont de naam van het programma, gewoonlijk aptitude.
%oOphaalgrootte17Neen Geen uitvoer als er geen pakketten geïnstalleerd zullen worden. Geeft anders een tekenreeks weer die de totale grootte aangeeft van alle pakketbestanden die geïnstalleerd zullen worden (een schatting van hoeveel er opgehaald moet worden). Bijvoorbeeld, DL-grootte: 1000B.
%OOrigine30Neen Geeft een tekenreeks weer die de origine van het pakket aanduidt, bijvoorbeeld Debian:unstable [amd64].
%pPakketnaam30Ja Geeft de naam van het pakket weer. Als een pakket weergegeven wordt in de context van een boomstructuur, dan zal de naam van het pakket zo mogelijk inspringen overeenkomstig zijn niveau in de boomstructuur.
%PPrioriteit9Neen Geeft de prioriteit van het pakket weer.
%rAantal achterwaartse afhankelijkheden2Neen Toont bij benadering het aantal geïnstalleerde pakketten dat van het pakket afhankelijk is.
%RVerkorte weergave van de prioriteit3Neen Geeft een verkorte beschrijving van de prioriteit van het pakket: bijvoorbeeld, Important wordt Imp.
%sSectie10Neen Geeft de sectie van het pakket weer.
%SBetrouwbaarheidsstatus1Neen Toont de letter "U" als het pakket niet vertrouwd wordt.
%tArchief10Ja Het archief waarin het pakket te vinden is.
%TGemerkt (en gebruikerslabels)30Neen

Geeft met een * weer dat een pakket gecategoriseerd werd en geeft anders niets weer.[19]

Dit veld bevat ook gebruikerslabels (user-tags).

%uVerschil in schijfgebruik30Neen Indien de geplande acties tot gevolg hebben dat er een verschil zal zijn op het vlak van gebruikte schijfruimte , beschrijft het dat verschil. Bijvoorbeeld, 100MB schijfruimte zal worden gebruikt.
%vHuidige versie14Neen Geeft de huidige geïnstalleerde versie van het pakket weer, of <geen> als het pakket momenteel niet geïnstalleerd is.
%VKandidaatversie14Neen Geeft de versie van het pakket weer die zou geïnstalleerd worden mocht men er de opdracht PakketInstalleren (+) voor uitvoeren of <geen> als het pakket momenteel niet beschikbaar is.
%ZVerschil in grootte9Neen Geeft weer hoeveel bijkomende ruimte gebruikt zal worden of hoeveel ruimte er vrijgemaakt zal worden bij het installeren, opwaarderen of verwijderen van een pakket.

De pakkethiërarchie aanpassen

De hiërarchie wordt opgebouwd aan de hand van een groeperingsbeleid: regels die aangeven hoe de hiërarchie opgebouwd moet worden. Het groeperingsbeleid beschrijft een opeenvolging van regels. Elke regel kan pakketten weglaten, sub-hiërarchieën van pakketten maken of de boomstructuur op een andere manier bewerken. De configuratie-items Aptitude::UI::Default-Grouping en Aptitude::UI::Default-Preview-Grouping stellen het groeperingsbeleid in voor respectievelijk nieuw aangemaakte pakketlijsten en voorafbeeldingen. U kunt het groeperingsbeleid voor de huidige pakketlijst instellen door op G te drukken.

Het groeperingsbeleid wordt omschreven in een lijst met door komma's gescheiden regels: regel1,regel2,.... Elke regel bestaat uit de naam van de regel, eventueel gevolgd door argumenten: bijvoorbeeld, versions of section(subdir). Of argumenten nodig zijn en hoeveel er nodig (of toegelaten) zijn, hangt af van het type regel.

Een regel kan de slotregel of niet de slotregel zijn. Een regel die niet de slotregel is, zal een pakket verwerken door een deel van de hiërarchie te genereren en het pakket dan overdragen aan een volgende regel. Een regel die de slotregel is daarentegen, zal ook een deel van de boomstructuur genereren (doorgaans items die bij het pakkethoren), maar zal het pakket niet aan een volgende regel doorgeven. Indien er geen slotregel opgegeven werd, zal aptitude de standaardregel gebruiken, die erin bestaat de standaard pakketitems aan te maken.

actie

Groepeert pakketten volgens de actie die voor hen gepland is; pakketten die niet opgewaardeerd kunnen worden en ongewijzigd zullen blijven, worden genegeerd. Dit is het soort groepering dat gebruikt wordt voor de boomstructuur van de voorafbeeldingen.

architectuur

Groepeert pakketten volgens hun architectuur.

deps

Dit is een slotregel.

Maakt standaard pakketitems aan die uitvouwbaar zijn om de vereisten van het pakket te tonen.

filter(patroon)

Neem enkel pakketten op waarvan ten minste een versie beantwoordt aan patroon.

Indien patroon ontbreekt, worden geen pakketten weggelaten. Dit is een functionaliteit met het oog op neerwaartse compatibiliteit en kan in de toekomst verwijderd worden.

firstchar[(modus)]

Groepeert pakketten op basis van de eerste letter van hun naam.

Eigenlijk is het, om precies te zijn, niet altijd de eerste letter -- voor pakketten die met lib* beginnen, is de groepsnaam liba, libb, ... zoals op een Debian FTP-site.

modus kan een van de volgende zijn:

binary

Het groeperen gebeurt op basis van de naam van het binaire pakket. Dit is het standaardgedrag als geen modus opgegeven werd.

Voorbeeld 2.7. Groeperingsrichtlijn firstchar of firstchar(binary)

Als we het broncodepakket dpkg als voorbeeld nemen, dan zouden de binaire pakketten dselect, dpkg en dpkg-dev gegroepeerd worden onder d, terwijl libdpkg-dev en libdpkg-perl onder de groep libd geplaatst zouden worden.


source

Het groeperen gebeurt op basis van de naam van het broncodepakket.

Het kan bijvoorbeeld nuttig zijn om bij het bekijken van pakketten die afkomstig zijn van hetzelfde broncodepakket (groeperingsrichtlijn source) binnen een grote verzameling (bijvoorbeeld: alle geïnstalleerde pakketten, alle opwaardeerbare pakketten, alle pakketten uit de sectie "main") een intermediair groeperingsniveau toe te voegen. Op die manier kan men bijvoorbeeld de hiërarchie op de FTP-site nabootsen (probeer eens de groepering: "section(topdir),firstchar(source),source").

Voorbeeld 2.8. Groeperingsrichtlijn firstchar(source)

Met opnieuw het broncodepakket dpkg als voorbeeld, zouden hierdoor alle binaire pakketten, dselect, dpkg, dpkg-dev, libdpkg-dev en libdpkg-perl, gegroepeerd worden onder d.


pattern(patroon [=> titel] [{ richtlijn }] [, ...])

Een aanpasbare groeperingsrichtlijn. Elke versie van elk pakket wordt getoetst aan het/de opgegeven patro(o)n(en). De eerste overeenkomst die gevonden wordt, wordt gebruikt om aan het pakket een titel toe te kennen. Daarna worden de pakketten gegroepeerd volgens hun titel. Als een tekenreeks in de vorm van \N in de titel voorkomt, zal die vervangen worden door de Nde gevonden overeenkomst. Indien er geen titel opgegeven is, wordt verondersteld dat het \1 is. Merk op dat pakketten die met geen enkel patroon overeenkomen, helemaal niet in de boomstructuur zullen voorkomen.

Voorbeeld 2.9. Het gebruik van patroon om pakketten volgens pakketbeheerder te groeperen

pattern(?maintainer() => \1)


Het bovenstaande voorbeeld zal pakketten groeperen op basis van het veld Maintainer (pakketbeheerder). De richtlijn pattern(?maintainer()) zal hetzelfde effect hebben, aangezien een ontbrekende titel standaard de waarde \1 heeft.

In plaats van op => titel, mag een richtlijn ook eindigen op ||. Dit geeft aan dat pakketten die beantwoorden aan het overeenkomstige patroon in de boomstructuur op hetzelfde niveau opgenomen zullen worden als de groepering pattern en niet in sub-bomen geplaatst zullen worden.

Voorbeeld 2.10. Het gebruik van pattern met enkele pakketten die op het bovenste niveau geplaatst worden.

pattern(?action(remove) => Pakketten die verwijderd worden, ?true ||)


Het bovenstaande voorbeeld plaatst pakketten die verwijderd zullen worden in een sub-boom en alle andere pakketten op het huidige niveau in groepen overeenkomstig de beleidsrichtlijnen die op patroon volgen.

Standaard worden alle pakketten die overeenkomen met een patroon, gegroepeerd volgens de regels die het beleid van patroon bepalen. Om voor sommige pakketten een andere richtlijn op te geven, moet u de richtlijn tussen accolades ({}) plaatsen na de titel van de groep, na de || of na het patroon indien geen van beide voorgaande gebruikt werd. Bijvoorbeeld:

Voorbeeld 2.11. Het gebruik van een groeperingsbeleid met sub-richtlijnen op basis van een patroon

pattern(?action(remove) => Pakketten die verwijderd worden {}, ?action(install) => Pakketten die geïnstalleerd worden, ?true || {status})


De richtlijn uit het bovenstaande voorbeeld heeft de volgende effecten:

  • Pakketten die verwijderd zullen worden, worden in een sub-boom geplaatst met als titel Pakketten die verwijderd worden. Het groeperingsbeleid voor deze sub-boom is leeg, waardoor de pakketten in een vlakke lijst geplaatst worden.

  • Pakketten die geïnstalleerd zullen worden, worden in een sub-boom geplaatst met als titel Pakketten die geïnstalleerd worden en gegroepeerd volgens de richtlijnen die aan patroon beantwoorden.

  • Alle overige pakketten worden in de boomstructuur op het hoogste niveau geplaatst en volgens hun status gegroepeerd.

Zie de paragraaf met de naam “Zoekpatronen” voor meer informatie over de indeling van patroon.

prioriteit

Groepeert pakketten op basis van hun prioriteit.

section[(modus[,passthrough])]

Groepeert pakketten volgens het veld Section (sectie).

modus kan een van de volgende zijn:

none

Groepering gebaseerd op het volledige veld Section (sectie), zodat categorieën zoals non-free/games gemaakt worden. Dit is het standaardgedrag als geen modus opgegeven werd.

topdir

Groepering gebaseerd op het deel van het veld Section (sectie) dat voor het eerste /-teken komt. Indien dit deel van de sectie niet herkend wordt of indien er geen / is, zal in de plaats daarvan het eerste item uit de lijst Aptitude::Sections::Top-Sections gebruikt worden.

subdir

Groepering gebaseerd op het deel van het veld Section (sectie) dat volgt op het eerste /-teken, indien het in de lijst Aptitude::Sections::Top-Sections voorkomt. Indien dit niet het geval is of indien er geen / voorkomt, wordt in plaats daarvan gegroepeerd op basis van het volledige veld Section.

subdirs

Groepering gebaseerd op het deel van het veld Section (sectie) na het eerste /-teken, indien het deel van het veld dat eraan voorafgaat, voorkomt in de lijst Aptitude::Sections::Top-Sections. Indien dit niet het geval is, of indien er geen / voorkomt, zal het volledige veld gebruikt worden. Indien er meerdere /-tekens voorkomen in het deel van het veld dat gebruikt wordt, zal een hiërarchie van groepen gemaakt worden. Indien bijvoorbeeld games geen deel uitmaakt van Aptitude::Sections::Top-Sections, zal een pakket met een sectie games/arcade geplaatst worden onder de hoofding van het hoogste niveau games, in een sub-boom met als naam arcade.

Indien passthrough vermeld werd, zullen pakketten die om een of andere reden niet echt tot een sectie behoren (bijvoorbeeld virtuele pakketten), onmiddellijk doorgegeven worden naar het volgende groeperingsniveau, zonder dat ze eerst in subcategorieën geplaatst worden.

status

Groepeert pakketten in de volgende categorieën:

  • Veiligheidsupdates

  • Opwaardeerbaar

  • Nieuw

  • Geïnstalleerd

  • Niet geïnstalleerd

  • Verouderd en lokaal aangemaakt

  • Virtueel

Broncode

Groepeert pakketten op basis van de naam van het broncodepakket.

tag[(aspect)]

Groepeert pakketten op basis van de informatie die in de Debian package-bestanden onder Tag opgeslagen is. Indien aspect opgegeven werd, zullen enkel categorieën die met dat aspect overeenkomen, weergegeven worden en pakketten waarbij dat aspect ontbreekt, zullen verborgen worden. Anders zullen alle pakketten minstens eens weergegeven worden (waarbij pakketten zonder categorisering apart vermeld worden van pakketten die wel in categorieën ondergebracht werden).

Zie voor meer informatie over debtags http://debtags.alioth.debian.org.

taak

Maakt een boomstructuur met de naam Taken aan die de beschikbare taken bevat (informatie over taken wordt uit debian-tasks.desc uit het pakket tasksel opgehaald). De categorieën die aangemaakt worden door de regel die na task volgt, bevinden zich op hetzelfde niveau als Taken.

versies

Dit is een slotregel.

Maakt standaard pakketitems aan die de pakketversie weergeven als ze uitgevouwen worden.

Aanpassen hoe pakketten gesorteerd worden

Standaard worden pakketten in de pakketlijst of in de uitvoer van aptitude search op naam gesorteerd. Het is nochtans vaak nuttig om ze te sorteren volgens andere criteria (bijvoorbeeld pakketgrootte). Dit is mogelijk in aptitude door het sorteringsbeleid aan te passen.

Zoals het in het vorige onderdeel beschreven groeperingsbeleid, bestaat ook het sorteringsbeleid uit een door komma's gescheiden lijst van elementen. Elk element uit de lijst is de naam van een sorteringsrichtlijn. Indien pakketten op basis van de eerste richtlijn gelijk zijn, wordt de tweede richtlijn gebruikt om ze te sorteren en zo verder. Een tilde-teken (~) voor de richtlijn keert de gewone betekenis ervan om. Bijvoorbeeld, priority,~name zal pakketten op basis van prioriteit sorteren, maar pakketten met dezelfde prioriteit zullen op basis van hun naam in omgekeerde volgorde geplaatst worden.

Om voor een actieve pakketlijst het sorteringsbeleid te veranderen, moet u op S drukken. Om voor alle pakketlijsten het standaard sorteringsbeleid aan te passen, moet u de configuratieoptie Aptitude::UI::Default-Sorting instellen. Om voor aptitude search het sorteringsbeleid aan te passen, moet u de commandoregeloptie --sort gebruiken.

De beschikbare richtlijnen zijn:

installsize

Sorteert pakketten volgens de geschatte schijfruimte die ze na installatie gebruiken.

installsizechange

Sorteert pakketten op basis van het verschil in schijfgebruik na installatie (de geschatte hoeveelheid schijfruimte die na installatie gebruikt wordt), waarbij de huidige versie (als die geïnstalleerd is) vergeleken wordt met de versie die kandidaat is voor installatie, opwaardering of verwijdering.

debsize

Sorteert pakketten op basis van de pakketgrootte.

name

Sorteert pakketten op naam.

priority

Sorteert pakketten volgens prioriteit.

version

Sorteert pakketten op basis van hun versienummer.



[19] Momenteel wordt merktekens geven niet ondersteund. Deze stuurcode is voor toekomstig gebruik bedoeld.