pacman (Suomi)

From ArchWiki
Jump to navigation Jump to search

Pacman-paketinhallintajärjestelmä on yksi tunnusosaisimmista ominaisuuksista Arch Linuxissa. Se yhdistää yksinkertaisen binääripakettiformaatin ja helppokäyttöisen koontijärjestelmän. Tavoitteena pacman paketinhallintajärjestelmällä on tehdä mahdolliseksi pakettien helppo hallinta, olivat ne sitten virallisista pakettivarastoista tai käyttäjän omista koonneista.

Pacman pitää järjestelmän ajan tasalla synkronisoimalla pakettilistoja isäntä palvelimen kanssa. Tämä palvelin/asiakasohjelma malli antaa myös mahdollisuuden käyttäjälle ladata/asentaa paketteja yksinkertaisella komennolla, jotka tulevat sitten kaikkien tarvittavien riippuvuuksien kanssa kokonaisuutena.

Pacman on kirjoitettu C-ohjelmointikielellä ja käyttää bsdtar(1) tar formaattia paketeissa.

Vinkki: pacman paketti sisältää työkalut kuten makepkg ja vercmp(8). Muut käytännölliset työkalut kuten pactree ja checkupdates löytyy pacman-contrib paketista (ennen osana pacmania). Suorita pacman -Ql pacman pacman-contrib | grep -E 'bin/.+' täydelle listalle.

Käyttö

Seuraavat mallit ovat vain osa asioista, mitä pacman voi tehdä ja suorittaa. Enemmän esimerkkejä löytyy pacman(8) manuaalista.

Vinkki: Niille joilla on aiempaa kokemusta muista Linux jakeluista, on olemassa hyödyllinen Pacman Rosetta artikkeli.

Pakettien asennus

Paketti on arkisto, joka sisältää:

  • kaikki (käännetyt) tiedostot sovelluksesta
  • metadataa liittyen sovellukseen, kuten sovelluksen nimen, version, riippuvuudet, ...
  • asennus tiedostot ja toimintaohjeet pacmanille
  • (vaihtoehtoisesti) lisätiedostoja elämän helpottamiseksi, kuten käynnistys/pysäytys skriptit

Archin paketinhallintajärjestelmä pacman voi asentaa, päivittää, ja poistaa näitä paketteja. Pakettien käyttö ohjelmien kääntämisen ja asentamisen sijaan tuo paljon etuja:

  • helposti päivitettävä: pacman päivittää olemassa olevat paketit niin pian, kuin päivityksiä on vain saatavilla
  • riippuvuuksien tarkistelu: pacman käsittelee riippuvuudet käyttäjän puolesta, täytyy vain tarkentaa ohjelma ja pacman asentaa sen kaikkien muiden tarvittavien ohjelmien kanssa
  • puhdas poistaminen: pacmanilla on lista jokaisesta tiedostosta paketissa; tällä ominaisuudella varmistetaan se, ettei yhtäkään tiedostoa jätetä järjestelmään, kun jokin ohjelma päätetään poistaa.
Huomautus:
  • Paketeilla on usein vaihtoehtoisia riippuvuuksia, jotka ovat paketteja tuomassa lisätoiminnallisuutta sovellukseen, mutta näitä ei varsinaisesti tarvita ohjelman toimimiseen. Kun pakettia asennetaan, pacman listaa paketin vaihtoehtoiset riippuvuudet, mutta ne eivät löydyt pacman.log tiedostosta. Käytä #Kysely pakettitietokannassa komentoja näyttääksesi vaihtoehtoisia riippuvuuksia paketista.
  • Kun asennetaan paketti, joka tarvitaan vain vaihtoehtoisena riippuvuutena johonkin muuhun pakettiin (eli toisin sanoen ei tarvita muutoin erityisesti), kehotetaan käyttämään --asdeps merkintää. Lisätiedolle, katso #Asennuksen syy kohta.
Varoitus: Kun paketteja asennetaan Archissa, vältä listan päivittämistä ilman järjestelmän päivittämistä (esimerkiksi, kun pakettia ei enää löydy virallisissa pakettivarastoissa). Käytännössä, älä suorita pacman -Sy paketin_nimi pacman -Syu paketin_nimi sijasta, koska tämä voi johtaa riippuvuus ongelmiin. Katso System maintenance#Partial upgrades are unsupported ja BBS#89328.

Tiettyjen pakettien asentaminen

Yhden tai useamman paketin asentamiseen, mukaanlukien riippuvuudet, käytä seuraavaa komentoa:

# pacman -S paketin_nimi1 paketin_nimi2 ...

Useiden pakettien asentamiseen regexin avulla (katso tämä foorumi keskustelu):

# pacman -S $(pacman -Ssq paketti_regex)

Joskus paketista on olemassa useita versioita eri pakettivarastoissa (esim. extra ja testing). Paketin asentamiseen extra pakettivarastosta tässä esimerkissä, pakettivarasto täytyy määrittää paketin nimen edessä:

# pacman -S extra/paketin_nimi

Useiden pakettien asentamiseksi käyttäen samantapaisia nimiä voidaan käyttää aaltosulkeita. Esimerkiksi:

# pacman -S plasma-{desktop,mediacenter,nm}

Tämä voidaan laajentaa hyvinkin monelle tasolle:

# pacman -S plasma-{workspace{,-wallpapers},pa}
Virtuaaliset paketit

Virtuaali paketti erityinen paketti, joka ei ole olemassa yksisteen, vaan sen antaa yksi tai useampi toinen paketti. Virtuaali paketti ei salli paketteja nimeämään erityistä pakettia riippuvuutena, siinä tapauksessa kun ehdokkaita on useita. Virtuaali pakettia ei pystytä asentamaan sen nimellä, sen sijaan ne asennetaan järjestelmään, kun asennetaan paketti joka sitten antaa tämän virtuaalisen paketin.

Pakettiryhmien asentaminen

Jotkin paketit kuuluvat pakettiryhmään, jotka voidaan asentaa kaikki samanaikaisesti. Esimerkiksi, tällä komennolla:

# pacman -S gnome

ohjataan valitsemaan paketteja gnome ryhmästä, joita haluat asentaa.

Joskus pakettiryhmä sisältää paljon paketteja ja saattaa olla että vain muutama niistä halutaan asentaa. Numeroiden erikseen kirjoittamisen sijaan voi joskus olla kätevämpää valita tai erotella paketit tai valikoima paketteja seuraavalla syntaksilla:

Enter a selection (default=all): 1-10 15

joka valitsee paketit 1 - 10 ja 15 asennusta varten, tai:

Enter a selection (default=all): ^5-8 ^2

joka valitsee kaikki paketit paitsi 5 - 8 ja 2 asennusta varten.

Nähdäksesi mitä kuuluu gnome pakettiryhmään, suorita:

# pacman -Sg gnome

Vieraile myös sivulla https://archlinux.org/groups/ nähdäksesi mitä pakettiryhmiä on saatavilla.

Huomautus: Jos paketti listassa on jo asennetu järjestelmääsi, se tullaan uudelleen asentamaan vaikka se olisi päivitetty ajan tasalle. Tämä voidaan ohittaa --needed merkinnällä.

Pakettien poistaminen

Yhden paketin poistamista varten, jättäen kaikki riippuvuudet asennettuna:

# pacman -R paketin_nimi

Paketin ja sen riippuvuuksien poistaminen, joita mikään muu paketti ei tarvitse:

# pacman -Rs paketin_nimi

Yläpuolella oleva ei välttämättä aina toimi kun paketti kuuluu johonkin pakettiryhmään. Siinä tapauksessa koita:

# pacman -Rsu paketin_nimi

Paketin, sen riippuvuuksien ja kaikkien pakettien, jotka riippuvat tästä poistettavasta paketista, poistamiseen:

Varoitus: Tämä operaatio on itseään toistava, ja sitä täytyy käyttää huolella ja varmuudella, sillä se saattaa poistaa monia potentiaalisesti tarvittavia paketteja.
# pacman -Rsc paketin_nimi

Pelkä paketin poistamiseen, eikä pakettien poistamiseen joiden toiminta riippuu kyseisestä paketista:

Varoitus: Seuraava operaatio voi rikkoa järjestelmän ja sitä tulisi siis välttää. Katso System maintenance#Avoid certain pacman commands.
# pacman -Rdd paketin_nimi

Pacman tallentaa tärkeät konfiguraatio tiedostot, kun poistetaan tiettyjä sovelluksia ja nimeää ne liitteellä: .pacsave. Näiden tiedostojen muodostamisen välttämiseksi voidaan käyttää -n merkkiä:

# pacman -Rn paketin_nimi
Huomautus: Pacman ei poista konfiguraatioita, joita sovellus itse luo (esimerkiksi "pistetiedostot" koti polussa).

Pakettien päivitys

Varoitus:

Pacman voi päivittää kaikki paketit järjestelmässä yhdellä komennolla. Tämän suorittaminen voi kumminkin viedä aikaa, riippuen siitä onko järjestelmä kuinka ajan tasalla. Seuraava komento synkronoi pakketivarastojen tietokannat ja päivittää järjestelmän paketit, poislukien "paikalliset" paketit jotka eivät ole konfiguroiduissa pakettivarastoissa:

# pacman -Syu

Kysely pakettitietokannassa

Pacman kyselee paikallista pakettitietokantaa -Q merkillä, synkronoi tietokanna -S merkillä ja tiedosto tietokannan -F merkillä. Katso pacman -Q --help, pacman -S --help ja pacman -F --help jokaisen komennon omille vaihtoehdoille.

Pacman voi etsiä paketteja tietokannasta, etsien niin myös pakettien nimiä kuin kuvauksia:

$ pacman -Ss merkkijono1 merkkijono2 ...

Joskus, -sn sisään rakennettu ERE (Extended Regular Expressions) voi aiheuttaa ei-toivottuja tuloksia, joten se pitää rajata vastaamaan paketin nimeä; ei paketin kuvausta tai mitään muuta kenttää:

$ pacman -Ss '^vim-'

Jo asennetujen pakettien hakeminen:

$ pacman -Qs merkkijono1 merkkijono2 ...

Paketti tiedostojen nimien hakeminen etäpaketeista:

$ pacman -F merkkijono1 merkkijono2 ...

Laajamittaisen lisätiedon näyttäminen annetusta paketista:

$ pacman -Si paketin_nimi

Paikallisten pakettien hakeminen:

$ pacman -Qi paketin_nimi

Kaksi -i merkkiä näyttää listan varmuuskopioista ja näiden muokkaustilasta:

$ pacman -Qii paketin_nimi

Hae lista paketin asentamista tiedostoista:

$ pacman -Ql paketin_nimi

Hae lista etäpaketin asentamista tiedostoista:

$ pacman -Fl paketin_nimi

Todenna paketin asentamien tiedostojen olemassa olo:

$ pacman -Qk paketin_nimi

Kaksi k merkkiä tekee läpikotaisen todennuksen.

Kyselemällä tietokantaa, jotta saadaan selville mille paketille tiedosto kuuluu:

$ pacman -Qo /polku/kyseiselle/tiedostolle

Kyselemällä tietokantaa, jotta saadaan selville mille etäpaketille tiedosto kuuluu:

$ pacman -F /polku/kyseiselle/tiedostolle

Listaa kaikki paketit joita ei enää tarvita riippuvuuksina (orvot):

$ pacman -Qdt
Vinkki: Lisää ylläoleva komento pacman jälkitoimille hookeihin, jotta saat ilmoituksia mikäli jokin toimi on tehnyt riippuvuudesta orvon. Tämä voi olla myös hyödyllinen, kun paketti pudotetaan pakettivarastosta, sillä kaikki pudotetut paketit orpoutuvat paikallisessa asennuksessa (ellei tätä pakettia ole erikseen asennettu). Välttääksesi "failed to execute command" virheilmoitukset, kun orpoja ei löydy, käytä seuraavaa komentoa Exec:ille omassa hook:issa: /usr/bin/bash -c "/usr/bin/pacman -Qtd || /usr/bin/echo '=> None found.'"

Listaa kaikki erityisesti erikseen asennetut paketit, joita ei tarvita riippuvuuksina:

$ pacman -Qet

Katso Pacman/Tips and tricks lisä esimerkeillä.

Pactree

Huomautus: pactree(8) ei ole enää osana pacman pakettia. Sen sijaan se löytyy pacman-contrib paketista.

Nähdäksesi riippuvuuden puumallin halutusta paketista:

$ pactree paketin_nimi

Nähdäksesi riippuu-puumallin halutusta paketista, anna reverse merkki -r pactree komennolle, tai käytä whoneeds pkgtoolsAUR paketista.

Tietokannan rakenne

Pacman tietokannat löytyvät normaalisti polusta /var/lib/pacman/sync. Jokaista määriteltyä pakettivarastoa kohden, tiedostossa /etc/pacman.conf, on olemassa vastaava tietokanta tiedosto samassa sijainnissa. Tietokanta tiedostot on gzipattu tar-arkistoiksi sisältäen polun jokaiselle paketille, kuten esimerkiksi which paketille:

$ tree which-2.21-5
which-2.21-5
|-- desc

desc tiedosto sisältää metadataa kuten paketin kuvauksen, riippuvuudet, tiedoston koon ja MD5 tarkisteen.

Pakettien kätkömuistin putsaaminen

Pacman säilyttää ladattuja paketteja polussa /var/cache/pacman/pkg/ ja ei poista vanhoja tai poistettuja paketteja automaattisesti. Tässä käytännössä on joitain etuja:

  1. Tälläin pystytään palauttamaan paketti ilman paketin hakemista erikseen ja asentamista muilla tavoilla, kuten esimerkiksi Arch Linux Archiven kautta.
  2. Paketti, jonka asennus on poistettu, voidaan suoraan uudelleen asentaa kätkömuistikansiosta, ilman uutta latausta pakettitietokannasta.

On kumminkin tarpeellista putsata kjätkömuistia ajoittain näin välttämällä tämän loputtoman kasvun.

paccache(8) skripti, joka tulee paketin pacman-contrib mukana, poistaa kaikki kätketyt versiot asennetuista ja poistetuista paketeista, paitsi 3 kaikkein tuoreinta, oletukselta:

# paccache -r

Aktivoi ja käynnistä paccache.timer poistaaksesi käyttämättömiä paketteja viikoittain.

Vinkki: Voit luoda hookin suorittamaan tämä automaattisesti jokaisen pacman siirron yhteydessä, katso esimerkkejä ja pacman-cleanup-hookAUR.

Voidaan myös määrittää kuinka monta versiota halutaan pitää. Vain yhden menneen version pitämistä varten voidaan suorittaa:

# paccache -rk1

Lisää -u/--uninstalled merkki rajaamaan paccache toimintaa poistetuille paketeille. Esimerkiksi jos halutaan poistaa kaikki poistetut versiot, käytä seuraavaa:

# paccache -ruk0

Tai voit yhdistää sen molemmille asennetuille poistetuille paketeille. Esimerkiksi pitääksesi viimeisimmät kaksi asennettua pakettia, mutta poistaaksesi kaikki poistetut paketit kätkömuistista, käytä seuraavaa:

# paccache -rk2 -ruk0

Katso paccache -h lisäasetuksille.

Pacman sisältää myös sisään rakennetun asetuksen kätkömuistin ja tietokanta tiedostojen jäämien putsaamiseen pakettivarastoista, joita ei enää ole listattuna konfiguraatiossa /etc/pacman.conf. Pacman ei kumminkaan onnistu tarjoamaan mahdollisuutta pitää tiettyä määrää edellisiä versioita ja on siksi aggressiivisempi kuin paccachen oletusasetukset.

Poistaaksesi kaikki kätketyt paketit, jotka eivät ole asennettuna, ja käyttämättömät synkronointi tietokannat, suorita:

# pacman -Sc

Kaikkien tiedostojen poistamiseen kätkömuistista, käytä "clean" merkintää kahdesti, tämä on kaikkein agresiivisin lähestymistapa ja ei jätä mitään jälkeensä koko kansioon:

# pacman -Scc
Varoitus: Kaikkien vanhojen asennettujen pakettiversioiden ja poistettujen pakettien tyhjentämistä kätkömuistista tulisi välttää ellei levytilaa ole ihan välttämätöntä vapauttaa. Tämä estää versioiden palauttamisen tai pakettien uudelleen asennuksen ilman erillistä latailua.

pkgcachecleanAUR ja pacleanerAUR ovat kaksi muuta vaihtoehtoista ohjelmaa putsaamiseen.

Muita komentoja

Lataa paketti ilman asennusta:

# pacman -Sw paketin_nimi

Asenna 'paikallinen' paketti, joka ei tuke etänä pakettivarastosta (esim. paketti on AUR:sta):

# pacman -U /polku/halutulle/paketille/paketin_nimi-versio.pkg.tar.zst

Pitääksesi kopion asennetusta paketista pacmanin kätkömuistissa, käytä:

# pacman -U file:///polku/halutulle/paketille/paketin_nimi-versio.pkg.tar.zst

Asenna 'etä' paketti (ei pakettivarastosta, joka on määriteltynä pacmanin konfiguraatio tiedostossa):

# pacman -U http://www.esimerkki.com/repo/esimerkki.pkg.tar.zst

Hillitäksesi -S, -U ja -R tapahtumien käyttöä, voidaan myös käyttää -p.

Pacman listaa asennettavat tai poistettavat paketit aina ja kysyy käyttäjältä lupaa ennenkuin mitään muutoksia tehdään.

Asennuksen syy

Pacman tietokanta jakaa asennetut paketit kahteen ryhmään syyn mukaan, miksi ne on asennettu:

  • selvästi asennetut: paketit, jotka kirjaimellisesti annettiin yleisinä pacman -S tai -U komentoina;
  • riippuvuudet: paketit ,joita ei erikseen ole asennettu (yleisesti) antamalla erillistä argumenttia pacman asennus komennolle. Nämä on asennettu epäsuorasti toisen paketin tarvitsemana joka on selvästi asennettu.

Kun pakettia asennetaan, on mahdollista pakottaa sen asennus syy riippuvuudeksi komennolla:

# pacman -S --asdeps paketin_nimi
Vinkki: Vaihtoehtoisien riippuvuuksien asentelu merkinnällä --asdeps tekee tästä sellaisen, että jos poistetaan orpoja, pacman myös poistaa jääneet vaihtoiset riippuvuudet.

Kun uudelleen asennetaan pakettia, kuitenkin, sen hetkinen asennus syy pidetään oletukselta.

Lista selvästi asennetuista paketeista voidaan näyttää komennolla pacman -Qe ja täydentävä lista riippuvuuksista voidaan näyttää komennolla pacman -Qd.

Vaihtaaksesi aiemmin asennetun paketin asennus syytä, suorita:

# pacman -D --asdeps paketin_nimi

Käytä --asexplicit tehdäksesi vastakkaisen operaation.

Huomautus: --asdeps ja --asexplicit asetusten käyttö päivitettäessä, kuten komennolla pacman -Syu paketin_nimi --asdeps, on hyvin epäsuosiollista. Tämä vaihtaisi asennus syyn toki myös paketille jota asennetaan, mutta myös paketeille joita ollaan päivittämässä.

Etsi pakettia joka sisältää tietyn tiedoston

Synkronoi tiedostotietokanta:

# pacman -Fy

Etsi pakettia, joka sisältää tiedoston kuten:

$ pacman -F pacman
core/pacman 5.2.1-1 (base base-devel) [installed]
    usr/bin/pacman
    usr/share/bash-completion/completions/pacman
extra/xscreensaver 5.43-1
    usr/lib/xscreensaver/pacman
Vinkki: Voit asettaa cron toiminnon tai systemd ajastimen synkronoimaan tiedostotietokannan säännöllisesti.

Edistyneempää toimintaa varten voidaan asentaa pkgfile, joka käyttää erillistä tietokantaa kaikilla tiedostoilla ja niihin liittyvillä paketeilla.

Konfiguraatio

Pacmanin asetukset löytyvät /etc/pacman.conf tiedostosta: tämä on se paikka minne käyttäjä konfiguroi ohjelman toimimaan halutulla tavalla. Syvällisemmin tietoa tästä löytyy pacman.conf(5) manuaalisivulta.

Yleiset asetukset

Yleiset asetukset löytyvät [options] osassa. Lue pacman.conf(5) tai katso oletus pacman.conf tiedostoon lisätiedolle mitä on mahdollista tehdä.

Versioiden vertaaminen ennen päivitystä

Vanhojen ja uusien versioiden näkeminen saatavilla olevista paketeista, poista kommentointi "VerbosePkgLists" riviltä tiedostossa /etc/pacman.conf. Ulostulo komennolla pacman -Syu on seuraavanlainen:

Package (6)             Old Version  New Version  Net Change  Download Size

extra/libmariadbclient  10.1.9-4     10.1.10-1      0.03 MiB       4.35 MiB
extra/libpng            1.6.19-1     1.6.20-1       0.00 MiB       0.23 MiB
extra/mariadb           10.1.9-4     10.1.10-1      0.26 MiB      13.80 MiB

Ohita paketin päivittäminen

Varoitus: Ole varovainen pakettien ohittamisessa, sillä osittaiset päivitykset eivät ole tuettuna.

Tietyn paketin ohittamista varten järjestelmän päivityksessä, määritä tämä seuraavasti:

IgnorePkg=linux

Useampia paketteja varten käytä välilyönnillä eroteltu lista, tai käytä useampia IgnorePkg rivejä. Myös glob mallia voidaan käyttää. Jos halutaan ohittaa paketteja vain kerran, voidaan myös käyttää --ignore merkintää komentorivillä - mutta tämän listan paketit pitää erotella pilkulla.

On silti mahdollista päivittää sivuutettu paketti käyttämällä pacman -S: tässä tapauksessa pacman muistuttaa siitä, että paketti on sisälletty IgnorePkg lauseessa.

Ohita pakettiryhmä päivityksessä

Varoitus: Ole varovainen pakettiryhmien ohittamisessa, sillä osittaiset päivitykset eivät ole tuettuna.

Kuten yksitäisten pakettienkin kanssa, on pakettien ryhmien ohittaminen myös mahdollista:

IgnoreGroup=gnome

Ohita tiedostojen päivittäminen

Kaikki tiedostot, jotka listataan NoUpgrade direktiivillä, jätetään kokonaan huomioimatta paketin asennuksesta/päivityksestä, ja uudet tiedostot asennetaan .pacnew laajennuksella.

NoUpgrade=polku/kyseiseen/tiedostoon
Huomautus: Polku osoittaa tiedostoihin pakettiarkistossa. Tästä syystä ei tule polun alussa olla kauttaviivaa.

Ohita tiedostoja asennuksessa

Ohittaaksesi asennuksen aina joidenkin tiettyjen polkujen kohdalla, listaa ne NoExtract alle. Esimerkiksi, systemd yksiköiden asennuksen välttämiseksi kokeile seuraavaa:

NoExtract=usr/lib/systemd/system/*

Myöhemmät säännöt menevät aikaisempien päälle ja voit kieltää säännön lisäämällä alkuun ! merkin.

Vinkki: Pacman antaa varoitusviestit puuttuvista paikallistuksista, kun pakettia päivitellään jonka paikallistukset on tyhjennetty localepurgen tai bleachbitin avulla. Kommentoimalla CheckSpace asetuksen pacman.conf tiedostossa vaimentaa tälläiset varoitukset, mutta sitä, että väliä tutkiva toiminnallisuus otetaan käytöstä pois kaikille paketeille.

Ylläpidä useita konfiguraatio tiedostoja

Jos on olemassa useita konfiguraatio tiedostoja (esim. pääkonfiguraatio ja konfiguraatio, jossa testing pakettivarasto on aktivoituna) ja asetuksia halutaan jakaa konfiguraatioiden välillä, voidaan käyttää Include asetusta, joka aina määritetään itse konfigurointi tiedostoissa, esim.:

Include = /polku/yleisiin/asetuksiin

missä /polku/yleisiin/asetuksiin tiedosto sisältää samat asetukset molemmille konfiguraatioille.

Hookit

Pacman voi suorittaa esi- ja jälki toimia hookien avulla /usr/share/libalpm/hooks/ polusta; useampia polkuja voidaan määrittää HookDir asetuksella pacman.conf tiedostossa, joka oletukselta on /etc/pacman.d/hooks. Hook tiedostojen nimet pitää olla nimettynä .hook päätteellä. Pacman hookit eivät ole interaktiivisia.

Pacman hookeja käytetään, esimerkiksi, yhdessä systemd-sysusers ja systemd-tmpfiles kanssa automaattisesti luomaan järjestelmän käyttäjiä ja tiedostoja pakettien asennuksen aikana. Esimerkiksi, tomcat8 määrittää, että tämä haluaa järjestelmän käyttäjän nimellä tomcat8 ja joitain tämän käyttäjän omistamia polkuja, omistukseensa. Pacman hookit systemd-sysusers.hook ja systemd-tmpfiles.hook herättävät systemd-sysusers ja systemd-tmpfiles, kun pacman päättää, että tomcat8 sisältää tiedostoja, jotka määrittävät käyttäjiä ja tmp tiedostoja.

Lisätiedolle alpm hookeille, katso alpm-hooks(5).

Pakettivarastot ja peilit

Erityisen [options] osan lisäksi, jokainen [section] tiedostossa pacman.conf määrittää pakettiriippuvuuden käytettäväksi. Pakettivarasto on looginen kokoelma paketteja, jotka ovat fyysisesti varastoituna yhdellä tai useammalla palvelimella: tästä syystä jokainen palvelin on peilinä pakettivarastolle.

Pakettivarastot jaetaan virallisiin ja epävirallisiin pakettivarastoihin. Pakettivarastojen järjestyksellä konfiguraatio tiedostossa on merkitystä; pakettivarastot listattuna ensimmäisenä ovat arvojärjestyksen päällimäiset ja joita käytetään ennen myöhemmin listattuja pakettivarastoja, kun paketeilla on identtinen nimi näissä varastoissa. Versionumeroa ei huomioida tässä tapauksessa. Pakettivaraston käyttöä varten, sen jälkeen kun se on lisätty, pitää ensin päivittää koko järjestelmä.

Jokainen pakettivarasto osa sallii peililistan määrittämisen, joko suoraan tiedostoon tai erillisessä tähän tarkoitukseen tarkoitetussa tiedostossa Include toimintaohjeella: esimerkiksi, peilit virallisille pakettivarastoille ovat sisälletynä /etc/pacman.d/mirrorlist tiedostosta. Katso Mirrors artikkeli peilien konfiguroinille.

Paketin turvallisuus

Pacman tukee pakettien allekirjoituksia, mikä luo lisäturvakerroksen paketeille. Oletus konfiguraatiossa, SigLevel = Required DatabaseOptional, aktivoidaan allekirjoitus varmenne kaikille paketeille globaalilla tasolla: tämä voidaan ohittaa pakettivarastoa kohden SigLevel riveillä. Lisätietoa pakettien allekirjoituksista ja näiden varmentamisesta löytyy artikkelista pacman-key.

Vianmääritys

"Failed to commit transaction (invalid or corrupted package)" virheilmoitus

Katso .part tiedostoja (osittain ladattu tiedosto) polusta /var/cache/pacman/pkg/ ja poista ne (johtuu usein oman komennon XferCommand käytöstä tiedostossa pacman.conf).

# find /var/cache/pacman/pkg/ -iname "*.part" -delete

Paketteja ei voida hakea asennuksessa

Tämä virhe ilmenee ilmoituksena Not found in sync db, Target not found tai Failed retrieving file.

Ensin, varmistu siitä että paketti on oikeasti olemassa. Jos olet varma sen olemassa olosta, pakettilistasi saattaa olla päivittämättä. Yritä suorittaa komento pacman -Syu päivityksen pakottamiseksi kaikille pakettilistoille ja lopulta päivittääksesi järjestelmä. Varmistu myös siitä, että valitut peilit ovat ajan tasalla ja pakettivarastot ovat oikein konfiguroitu.

Voi olla mahdollista myös ettei pakettivarastoa, joka sisältää tämän paketin, ole aktivoituna järjestelmässäsi, esimerkiksi kyseinen paketti voisi olla multilib pakettivarastossa, mutta multilib ei ole aktivoituna pacman.conf tiedostossa.

Katso myös Frequently asked questions (Suomi)#Miksi virallisissa varastoissa on vain yksi versio jokaista jaettua kirjastoa?.

Signature from "Käyttäjä <email@esimerkki.org>" is unknown trust, installation failed

Mahdollisia ratkaisutapoja:

  • Päivitä avaimet, toisin sanoen suorita pacman-key --refresh-keys
  • Manuaalisesti päivitä archlinux-keyring paketti ensin, toisin sanoen suorita pacman -Sy archlinux-keyring && pacman -Su
  • Seuraa ohjeita täältä.

"Warning: current locale is invalid; using default "C" locale" virheilmoitus

Kuten virheilmoituksessa sanotaan, paikallistusasetukset eivät ole oikein konfiguroituna. Katso Locale.

Pacman ei kunnioita välityspalvelimen asetuksia

Varmistu siitä että tarpeelliset ympäristömuuttujat ($http_proxy, $ftp_proxy jne.) ovat asetettuna. Jos käytät pacmania sudon kanssa, täytyy konfiguroida sudo antamaan nämä ympäristömuuttujat pacmaniin. Varmista myös, että dirmngr konfiguraatiossa honor-http-proxy on /etc/pacman.d/gnupg/dirmngr.conf tiedostossa kunniottamassa välityspalvelinta kun avaimia päivitetään.

Kuinka asennan kaikki paketit uudelleen, pitämällä tiedon siitä mitkä paketit ovat erityisesti asennettuna tai riippuvuutena?

Asentaaksesi uudelleen kaikki alkuperäiset paketit: pacman -Qnq | pacman -S - tai pacman -S $(pacman -Qnq) (-S asetus säilyttää asennus syyt oletukselta).

Sen jälkeen pitää uudelleen asentaa kaikki ulkopuoliset paketit, jotka voidaan listata komennolla pacman -Qmq.

Katso myös