Debian

Debian-paket Sök

Debian-paket Sök

Debian 9, kodnamnet 'Stretch', har ett jätteförvar med 68 000+ paket. Oavsett om det är spel, teckensnitt, redigerare, databaser eller utvecklingsverktyg, är chansen att du hittar det där. Nyckeln är dock att hitta Det. Om du inte vet det exakta paketnamnet, är det att hitta ett visst paket i ett så stort förvar som att leta efter en nål i en höstack. Ibland skiljer sig paketnamnet från programmets namn. Exempelvis är iostat, ett användbart program för rapportering av CPU- och disk I / O-statistik, förpackat under namnet sysstat. Andra gånger känner du varken paketnamnet eller kommandonamnet. Istället vet du bara dess funktion, vad den ska göra.

För att leta efter paket finns flera metoder med olika nivåer av kraft och användbarhet. Debians webbplats har en lista över alla Debians paket. Så du kan använda din webbläsares sökfunktion eller ladda ner listan som en komprimerad textfil och använda grep. Hur som helst krävs mycket manuellt arbete för att filtrera listan. Den goda nyheten är att kraftfulla automatiserade verktyg är tillgängliga för att påskynda filtreringen.

Debian tillhandahåller både grafiska paketchefer och kommandoradshanterare för att söka och filtrera paket. GUI-baserade verktyg, som Synaptic, utmärker sig i allmänhet i användbarhet. Men inte alla maskiner, särskilt produktionsservrar, har det grafiska skrivbordet installerat. För dessa maskiner är Synaptic helt enkelt inte ett alternativ. I det här inlägget fokuserar vi på kommandoradsverktyg för att söka efter Debian-paket.


Bakgrundsinformation

Debians systemadministratörer definierar källorna till paket i filen / etc / apt / sources.lista. Filen specificerar bland annat att endast paket från en viss Debian-utgåva (t.ex.g., Stretch vs Buster), och från vissa komponentkategorier (e.g., main, contrib och non-free) kan laddas ner. Metadata för alla kvalificerade paket laddas ner till det lokala paketets cache via kommandot apt-get update.

Uppströms pakethållare kan lägga till och ta bort paket när som helst. För att se till att din lokala paketcache har den senaste metadatainformationen bör du uppdatera cachen ("apt-get update") innan du gör en sökning.

Nu när du är redo att söka kan du göra det som en vanlig användare. Det finns ingen anledning att bli rot för att utföra en sökning. Detta beror på att en sökning bara gör frågor, inte ändringar, i paketets cache. Dessutom behöver maskinen inte ens vara online eftersom sökkommandona bara har åtkomst till det lokala cachen, inte fjärrförråd.

Omfattningen av en sökning är begränsad till vad som anges i källorna.listfilen. Om filen till exempel endast tillåter huvud- och bidragskomponentpaket, kommer dina sökningar inte att returnera icke-fria paket.

För att sammanfatta:

  1. Innan du utför en sökning, kör 'apt-get update' för att uppdatera paketets cache.
  2. Du kan köra ett sökkommando som en vanlig användare (ingen root-behörighet krävs).
  3. Ingen internetanslutning krävs för att köra ett sökkommando.
  4. Sökresultaten är begränsade till det omfång som definieras av källorna.listfilen.

apt-cache

Om du känner till paketnamnet, om än delvis, kan du skicka det partiella namnet som ett argument för reguljärt uttryck till apt-cache. Du vet till exempel att paketnamnet är en variant av temat dos till unix, såsom dostounix, dos2unix, dos-to-unix, etc. Sökkommandot och dess utdata är som följer:

$ apt-cache-sökning - endast namn.+unix
dos2unix - konvertera textfilradsändningar mellan CRLF och LF

Anmärkningar:

  1. -names-only (eller kort sagt -n) anger att endast paketnamn, inte beskrivningar, matchas. (Standard är både namn och beskrivning.)
  2. dos.+unix är ett vanligt uttryck som matchar paketnamnet dos2unix. Se regex (7) för syntaxhjälp.

Vad gör du om du bara vet vad paketet gör, jag.e., dess funktion, men inte dess namn? I det här fallet letar du efter ett program för att konvertera textfiler från DOS-format till UNIX. Sökkommandot som ska användas och dess utdata är följande:

$ Apt-cache sök omvandla dos unix
dos2unix - konvertera textfilradsändningar mellan CRLF och LF
flip - konvertera textfilens radslut mellan Unix- och DOS-format
fondu - konvertera mellan Mac- och UNIX-typsnitt
tofrodos - Konverterar DOS <-> Unix textfiler, alias tofromdos

Som standard försöker apt-cache att matcha sökordet mot både paketnamnet och paketets långa beskrivning. Förhoppningen här är att de funktionella nyckelorden kommer att matcha de ord som pakethållaren använder i sin långa beskrivning. Observera att flera sökord (konvertera, dos, unix) är OCH-ed tillsammans.

benägen

Apt-kommandot är ett nyare verktyg för pakethantering som slår samman de grundläggande funktionerna i apt-get och apt-cache. Den är utformad för att användas interaktivt snarare än i ett manus. Exempelvis färgas apt-utdata för att förbättra läsbarheten. Estetik åt sidan delar apt- och apt-cache-kommandona en liknande syntax inklusive kommandoalternativ.

I exemplet nedan söker du efter ett paket genom att matcha doseringsmallen för reguljära uttryck.+unix, endast mot paketnamn (som standard, mot både namn och beskrivning).

$ Apt-sökning - endast namn dos.+unix
Sorterar ... Klar
Fulltext-sökning ... Klar
dos2unix / stabil, nu 7.3.4-3 amd64 [installerad]
konvertera textfilradsändningar mellan CRLF och LF

apt-fil

Även om apt-cache (och apt) kan hjälpa dig att leta efter ett paket genom att matcha funktionella nyckelord, är sökningen ofta hit och miss. Framgång beror för mycket på hur pakethållaren skriver paketets långa beskrivning. I verkligheten kan du dock veta ytterligare information om paketet, till exempel namnet på kommandot eller en fil som ingår i paketet. Verktyget som sedan används är apt-file.

Apt-file-kommandot är inte installerat som standard i ett Debian-system. För att installera, kör som root:

$ apt-get install apt-file

Innan du kör apt-file för första gången, uppdatera paketcachen genom att uppdatera den lokala paketcachen ('apt-get update').

Antag att du vill hitta paketet som innehåller kommandot iostat. Kommandot att använda och den förkortade utdata är följande:

$ apt-filsökning iostat
..   <12 lines snipped>..
linux-manual-4.9: / usr / dela / man / man9 / rpc_count_iostats_metrics.9.gz
linux-manual-4.9: / usr / dela / man / man9 / rpc_free_iostats.9.gz
manpages-fr-extra: / usr / share / man / fr / man8 / nfsiostat.8.gz
munin-plugins-extra: / usr / share / munin / plugins / iostat
munin-plugins-extra: / usr / share / munin / plugins / iostat_ios
nagios-plugin-check-multi: / usr / share / doc / nagios-plugin-check-multi / exempel / nagiostats.cmd
nfs-common: / usr / sbin / nfsiostat
nfs-common: / usr / share / man / man8 / nfsiostat.8.gz
nixstatsagent: / usr / lib / python2.7 / dist-packages / nixstatsagent / plugins / iostat.py
sysstat: / usr / bin / cifsiostat
sysstat: / usr / bin / iostat
sysstat: / usr / share / man / man1 / cifsiostat.1.gz
sysstat: / usr / share / man / man1 / iostat.1.gz
zsh-common: / usr / share / zsh / functions / Completion / Unix / _iostat

apt-file fungerar genom att matcha argumentet iostat som en substring mot sökvägarna för alla filer i ett paket. Ovanstående sökning ger 46 träffar, dvs.e., totalt 46 filer i det lokala cachen innehåller iostat i sina sökvägar, vilket är mycket att manuellt undersöka.

För att begränsa sökningen, förvandla argumentet till ett reguljärt uttryck med flaggan -x.

$ Apt-file -x search '/ iostat $'
munin-plugins-extra: / usr / share / munin / plugins / iostat
sysstat: / usr / bin / iostat

Det reguljära uttrycket / iostat $ matchar bara sökvägar som slutar exakt med iostat. För syntax för reguljära uttryck, se perlreref (1).

Den nya utgången har bara två träffar och du kan snabbt läsa av namnet på paketet (sysstat) som innehåller kommandot iostat.


Slutsats

Linux-distributioner i allmänhet och Debian, i synnerhet, är kända för sina enorma officiella paketförvar. Men att hitta den du vill ha bland tiotusentals paket kan vara en ganska utmaning. Var säker på att du inte behöver veta exakt paketnamn. Kommandona apt-cache och apt kan filtrera paket baserat på nyckelord i paketbeskrivningen. Alternativt, om du vet namnet på programmets binära fil, kan apt-file-kommandot använda det för att identifiera paket som innehåller en fil med samma namn.

Mus Hur man använder Xdotool för att stimulera musklick och tangenttryckningar i Linux
Hur man använder Xdotool för att stimulera musklick och tangenttryckningar i Linux
Xdotool är ett ledigt verktyg för öppen källkod för simulering av musklick och tangenttryckningar. Den här artikeln kommer att täcka en kort guide om ...
Mus Topp 5 Ergonomiska datormusprodukter för Linux
Topp 5 Ergonomiska datormusprodukter för Linux
Ger långvarig datoranvändning smärta i handleden eller fingrarna? Lider du av styva leder och måste ständigt skaka hand? Känner du en brännande smärta...
Mus Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
De flesta Linux-distributioner levereras med "libinput" -bibliotek som standard för att hantera inmatningshändelser i ett system. Den kan bearbeta inm...