Debian

Debian-pakkesøk

Debian-pakkesøk

Debian 9, kodenavnet 'Stretch', har et enormt lager med 68 000+ pakker. Enten det er spill, skrift, redaktører, databaser eller utviklingsverktøy, er sjansen for at du finner den der. Nøkkelen er imidlertid å finne den. Med mindre du vet det eksakte pakkenavnet, er det å finne en bestemt pakke i et så stort depot som å lete etter en nål i en høystak. Noen ganger er pakkenavnet forskjellig fra navnet på programmet. For eksempel er iostat, et nyttig program for rapportering av CPU- og disk I / O-statistikk, pakket under navnet sysstat. Andre ganger kjenner du verken pakkenavnet eller kommandonavnet. I stedet vet du bare dens funksjon, hva den skal gjøre.

For å se etter pakker finnes det flere metoder med varierende nivåer av kraft og brukervennlighet. Debian-nettstedet har en liste over alle Debian-pakker. Så du kan bruke nettleserens søkefunksjon, eller laste ned listen som en komprimert tekstfil og bruke grep. Uansett kreves det mye manuelt arbeid for å filtrere listen. Den gode nyheten er at kraftige automatiserte verktøy er tilgjengelige for å øke hastigheten på filtreringen.

Debian tilbyr både grafiske og kommandolinjepakkeforvaltere for å søke og filtrere pakker. GUI-baserte verktøy, som Synaptic, utmerker seg generelt i brukervennlighet. Imidlertid har ikke alle maskiner, spesielt produksjonsservere, det grafiske skrivebordet installert. For disse maskinene er Synaptic rett og slett ikke et alternativ. I dette innlegget fokuserer vi på kommandolinjeverktøy for å søke etter Debian-pakker.


Bakgrunnsinformasjon

Debian-systemadministratorer definerer kildene til pakker i filen / etc / apt / sources.liste. Blant annet spesifiserer filen at bare pakker fra en bestemt Debian-utgivelse (f.eks.g., Stretch vs Buster), og fra visse komponentkategorier (f.eks.g., main, contrib og non-free) kan lastes ned. Metadata for alle kvalifiserte pakker lastes ned til den lokale pakkecachen via kommandoen apt-get update.

Oppstrøms pakkeholdere kan legge til og fjerne pakker når som helst. For å sikre at den lokale pakkebufferen har den nyeste metadatainformasjonen, bør du oppdatere hurtigbufferen ('apt-get update') før du gjør et søk.

Nå som du er klar til å søke, kan du gjøre det som en vanlig bruker. Det er ikke nødvendig å bli rot for å utføre et søk. Dette er fordi et søk bare gjør spørsmål, ikke endringer, i pakkebufferen. I tillegg trenger maskinen ikke engang å være online fordi søkekommandoer bare har tilgang til den lokale hurtigbufferen, ikke eksterne lagringssteder.

Omfanget av et søk er begrenset til det som er spesifisert i kildene.listefil. For eksempel, hvis filen bare tillater hoved- og bidragskomponentpakker, vil ikke søkene dine returnere ikke-gratis pakker.

Å oppsummere:

  1. Før du utfører et søk, kjør 'apt-get update' for å oppdatere pakkebufferen.
  2. Du kan kjøre en søkekommando som en vanlig bruker (ingen root-rettigheter kreves).
  3. Ingen Internett-tilkobling er nødvendig for å kjøre en søkekommando.
  4. Søkeresultater er begrenset til omfanget som er definert av kildene.listefil.

apt-cache

Hvis du vet pakkenavnet, om enn delvis, kan du sende delnavnet som et vanlig uttrykksargument til apt-cache. For eksempel vet du at pakkenavnet er en variant av temaet dos til unix, for eksempel dostounix, dos2unix, dos-to-unix, etc. Søkekommandoen og utgangen er som følger:

$ apt-cache-søk - kun navn.+unix
dos2unix - konverter tekstfilens endinger mellom CRLF og LF

Merknader:

  1. -bare navn (eller kort sagt -n) spesifiserer at bare pakkenavn, ikke beskrivelser, samsvarer. (Standard er både navn og beskrivelse.)
  2. dos.+unix er et vanlig uttrykk som samsvarer med pakkenavnet dos2unix. Se regex (7) for syntakshjelp.

Hva gjør du hvis du bare vet hva pakken gjør, jeg.e., funksjonen, men ikke navnet? I dette tilfellet leter du etter et program for å konvertere tekstfiler fra DOS-format til UNIX. Søkekommandoen som skal brukes og utdataene er følgende:

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

Som standard prøver apt-cache å matche søkeordene mot både pakkenavnet og pakkens lange beskrivelse. Håpet her er at de funksjonelle nøkkelordene vil matche ordene som pakkeholderen bruker i den lange beskrivelsen. Vær oppmerksom på at flere nøkkelord (konvertere, dosere, unix) blir AND-ed sammen.

apt

Apt-kommandoen er et nyere verktøy for pakkehåndtering som slår sammen de grunnleggende funksjonene til apt-get og apt-cache. Den er designet for å brukes interaktivt, i stedet for i et skript. For eksempel er apt-utgang fargelagt for å forbedre lesbarheten. Estetikk til side, apt- og apt-cache-kommandoene deler en lignende syntaks inkludert kommandoalternativer.

Eksemplet nedenfor søker etter en pakke ved å matche doseringsreguleringsuttrykket.+unix, kun mot pakkenavn (som standard, både mot navn og beskrivelse).

$ Apt søk - kun navn.+unix
Sortering… Ferdig
Fulltektssøk ... Ferdig
dos2unix / stabil, nå 7.3.4-3 amd64 [installert]
konvertere tekstfillinjeendelser mellom CRLF og LF

apt-fil

Selv om apt-cache (og apt) kan hjelpe deg med å lete etter en pakke ved å matche funksjonelle nøkkelord, blir søket ofte rammet. Suksess avhenger for mye av hvordan pakkeholderen skriver pakkens lange beskrivelse. I virkeligheten kan du imidlertid vite ytterligere informasjon om pakken, for eksempel navnet på kommandoen eller en fil som er inkludert i pakken. Verktøyet som skal brukes da er apt-file.

Apt-file-kommandoen er ikke installert som standard på et Debian-system. For å installere, kjør som root:

$ apt-get install apt-file

Før du kjører apt-file for første gang, oppdaterer du pakkebufferen ved å oppdatere den lokale pakkebufferen ('apt-get update').

Anta at du vil finne pakken som inneholder kommandoen iostat. Kommandoen for bruk og forkortet utgang er som følger:

$ apt-filsøk 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-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 fungerer ved å matche argumentet iostat som en substring mot banenavnene til alle filene i en pakke. Ovennevnte søk returnerer 46 treff, dvs.e., Totalt 46 filer i den lokale hurtigbufferen inneholder iostat i banenavnene sine, noe som er mye å undersøke manuelt.

For å begrense søket, gjør argumentet om til et vanlig uttrykk ved å bruke -x-flagget.

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

Regulært uttrykk, / iostat $, samsvarer bare med stienavn som slutter nøyaktig med iostat. For syntaks for vanlig uttrykk, se perlreref (1).

Den nye utgangen har bare 2 treff, og du kan raskt lese av navnet på pakken (sysstat) som inneholder iostat-kommandoen.


Konklusjon

Linux-distribusjoner generelt og Debian, spesielt, er kjent for sine enorme offisielle pakkelager. Men å finne den du vil ha blant titusenvis av pakker, kan være ganske utfordrende. Vær trygg på at du ikke trenger å vite det nøyaktige pakkenavnet. Kommandoene apt-cache og apt kan filtrere pakker basert på nøkkelord i pakkebeskrivelsen. Alternativt, hvis du vet navnet på programmets binære fil, kan apt-file-kommandoen bruke den til å identifisere pakker som inneholder en fil med samme navn.

Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...
Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...
Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...