Debian

Debian-pakkesøgning

Debian-pakkesøgning

Debian 9, der hedder 'Stretch', har et kæmpe lager med mere end 68.000 pakker. Uanset om det er spil, skrifttyper, redaktører, databaser eller udviklingsværktøjer, er chancen for, at du finder det der. Nøglen er dog at finde det. Medmindre du kender det nøjagtige pakkenavn, er det at finde en bestemt pakke i et så stort arkiv som at lede efter en nål i en høstak. Nogle gange er pakkenavnet forskelligt fra programmets navn. For eksempel er iostat, et nyttigt program til rapportering af CPU- og disk I / O-statistik, pakket under navnet sysstat. Andre gange kender du hverken pakkenavnet eller kommandonavnet. I stedet kender du kun dens funktion, hvad den skal gøre.

For at se efter pakker findes der flere metoder med forskellige niveauer af magt og brugervenlighed. Debians websted har en liste over alle Debian-pakker. Så du kan bruge din browsers søgefunktion eller downloade listen som en komprimeret tekstfil og bruge grep. Uanset hvad kræves der meget manuelt arbejde for at filtrere listen. Den gode nyhed er, at der findes kraftfulde automatiserede værktøjer til at fremskynde filtreringen.

Debian giver både grafiske og kommandolinjepakkehåndtering til søgning og filtrering af pakker. GUI-baserede værktøjer, såsom Synaptic, udmærker sig generelt i brugervenlighed. Imidlertid har ikke alle maskiner, især produktionsservere, det grafiske skrivebord installeret. For disse maskiner er Synaptic simpelthen ikke en mulighed. I dette indlæg fokuserer vi på kommandolinjeværktøjer til at søge efter Debian-pakker.


Baggrundsinformation

Debians systemadministratorer definerer kilderne til pakker i filen / etc / apt / sources.liste. Filen specificerer blandt andet, at kun pakker fra en bestemt Debian-udgivelse (f.eks.g., Stretch vs Buster) og fra visse komponentkategorier (e.g., main, contrib og non-free) kan downloades. Metadata for alle kvalificerede pakker downloades til den lokale pakkecache via kommandoen apt-get update.

Upstream pakkeholdere kan til enhver tid tilføje og fjerne pakker. For at sikre, at din lokale pakkecache har de nyeste metadataoplysninger, skal du opdatere cachen ('apt-get update'), før du foretager en søgning.

Nu hvor du er klar til at søge, kan du gøre det som en almindelig bruger. Der er ikke behov for at blive rod for at udføre en søgning. Dette skyldes, at en søgning blot foretager forespørgsler, ikke ændringer, i pakkecachen. Derudover behøver maskinen ikke engang at være online, fordi søgekommandoer kun har adgang til den lokale cache, ikke fjernopbevaringssteder.

Omfanget af en søgning er begrænset til det, der er specificeret i kilderne.listefil. For eksempel, hvis filen kun tillader hoved- og bidrags-komponentpakker, returnerer dine søgninger ikke ikke-gratis pakker.

At opsummere:

  1. Inden du udfører en søgning, skal du køre 'apt-get update' for at opdatere pakkecachen.
  2. Du kan køre en søgekommando som en almindelig bruger (ingen root-privilegium krævet).
  3. Der kræves ingen internetforbindelse for at køre en søgekommando.
  4. Søgeresultater er begrænset til det omfang, der er defineret af kilderne.listefil.

apt-cache

Hvis du kender pakkens navn, om end delvis, kan du videresende det delvise navn som et regulært udtryksargument til apt-cache. For eksempel ved du, at pakkens navn er en variation af temaet dos til unix, såsom dostounix, dos2unix, dos-to-unix osv. Søgekommandoen og dens output er som følger:

$ apt-cache søgning - kun navne doser.+unix
dos2unix - konverter tekstfilelinjeendelser mellem CRLF og LF

Bemærkninger:

  1. -names-only (eller kort sagt -n) angiver, at kun pakkenavne, ikke beskrivelser, matches. (Standard er både navn og beskrivelse.)
  2. doser.+unix er et regulært udtryk, der matcher pakkenavnet dos2unix. Se regex (7) for syntakshjælp.

Hvad gør du, hvis du kun ved, hvad pakken gør, dvs.e., dens funktion, men ikke dens navn? I dette tilfælde leder du efter et program til at konvertere tekstfiler fra DOS-format til UNIX. Den søgekommando, der skal bruges, og dens output er følgende:

$ Apt-cache søgning konverterer dos unix
dos2unix - konverter tekstfillinjeendelser mellem CRLF og LF
flip - konverter tekstfillinjeendelser mellem Unix- og DOS-formater
fondu - konverter mellem Mac og UNIX skrifttypeformater
tofrodos - Konverterer DOS <-> Unix tekstfiler, alias tofromdos

Som standard forsøger apt-cache at matche søgeordene mod både pakkenavnet og pakkens lange beskrivelse. Håbet her er, at de funktionelle nøgleord vil matche de ord, som pakkeholderen bruger i sin lange beskrivelse. Bemærk, at flere nøgleord (konverter, doser, unix) OG-ed sammen.

apt

Apt-kommandoen er et nyere pakkehåndteringsværktøj, der fletter de grundlæggende funktioner i apt-get og apt-cache. Det er designet til at blive brugt interaktivt snarere end i et script. For eksempel er apt output farvet for at forbedre læsbarheden. Estetik til side deler apt- og apt-cache-kommandoerne en lignende syntaks inklusive kommandomuligheder.

Eksemplet nedenfor søger efter en pakke ved at matche doserne med regulært udtryk.+unix, kun mod pakkenavne (som standard mod både navn og beskrivelse).

$ Apt søgning - kun navne doser.+unix
Sortering ... Udført
Fuld tekstsøgning ... Udført
dos2unix / stabil, nu 7.3.4-3 amd64 [installeret]
konvertere tekstfillinjeendelser mellem CRLF og LF

apt-fil

Selvom apt-cache (og apt) kan hjælpe dig med at lede efter en pakke ved at matche funktionelle nøgleord, er søgningen ofte ramt og savnet. Succes afhænger for meget af, hvordan pakkeholderen skriver pakkens lange beskrivelse. I virkeligheden kan du dog vide yderligere oplysninger om pakken, såsom navnet på kommandoen eller en fil, der er inkluderet i pakken. Værktøjet, der skal bruges, er derefter apt-file.

Apt-file-kommandoen er ikke installeret som standard på et Debian-system. For at installere skal du køre som root:

$ apt-get install apt-file

Inden du kører apt-fil for første gang, skal du opdatere pakkecachen ved at opdatere den lokale pakkecache ('apt-get update').

Antag, at du vil finde den pakke, der indeholder kommandoen iostat. Kommandoen til brug og den forkortede output er som følger:

$ apt-fil søgning iostat
..   <12 lines snipped>..
linux-manual-4.9: / usr / share / man / man9 / rpc_count_iostats_metrics.9.gz
linux-manual-4.9: / usr / share / man / man9 / rpc_free_iostats.9.gz
manpages-fr-extra: / usr / share / man / fr / man8 / nfsiostat.8.gz
munin-plugins-ekstra: / usr / share / munin / plugins / iostat
munin-plugins-ekstra: / usr / share / munin / plugins / iostat_ios
nagios-plugin-check-multi: / usr / share / doc / nagios-plugin-check-multi / eksempler / nagiostats.cmd
nfs-common: / usr / sbin / nfsiostat
nfs-common: / usr / share / man / man8 / nfsiostat.8.gz
nixstatsagent: / usr / lib / python2.7 / dist-pakker / 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 fungerer ved at matche argumentet iostat som en substring mod stienavne på alle filer i en pakke. Ovenstående søgning returnerer 46 hits, dvs.e., i alt 46 filer i den lokale cache indeholder iostat i deres stienavne, hvilket er meget at manuelt undersøge.

For at indsnævre søgningen skal du omdanne argumentet til et regulært udtryk ved hjælp af -x-flag.

$ Apt-fil -x søgning '/ iostat $'
munin-plugins-ekstra: / usr / share / munin / plugins / iostat
sysstat: / usr / bin / iostat

Det regulære udtryk / iostat $ matcher kun stienavne, der ender nøjagtigt med iostat. For syntaks for regulært udtryk, se perlreref (1).

Den nye output har kun 2 hits, og du kan hurtigt aflæse navnet på den pakke (sysstat), der indeholder kommandoen iostat.


Konklusion

Linux-distributioner generelt og Debian, især, er kendt for deres enorme officielle pakkeopbevaringssteder. Men at finde den, du ønsker blandt titusinder af pakker, kan være en ret udfordring. Vær sikker på at du ikke behøver at kende det nøjagtige pakke navn. Kommandoerne apt-cache og apt kan filtrere pakker baseret på nøgleord i pakkebeskrivelsen. Alternativt, hvis du kender navnet på programmets binære fil, kan apt-file-kommandoen bruge den til at identificere pakker, der indeholder en fil med samme navn.

OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...
SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...
Kæmp om Wesnoth-vejledning
Slaget om Wesnoth er et af de mest populære open source-strategispil, som du kan spille på dette tidspunkt. Ikke kun har dette spil været under udvikl...