pacman (Suomi) - ArchWiki

Jump to content
From ArchWiki

Aiheeseen liittyen

- Creating packages
- Downgrading packages
- pacman/Package signing
- pacman/Pacnew and Pacsave
- pacman/Restore local database
- pacman (Suomi)/Rosetta (Suomi)
- pacman/Tips and tricks
- FAQ (Suomi)#Paketinhallinta
- System maintenance
- Arch build system
- Official repositories
- Arch User Repository

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:

- Käyttäjien oletetaan seuraavan ohjeistusta System maintenance#Upgrading the system osassa järjestelmän päivitykseen säännöllisesti eikä vain sokeasti suorittamaan seuraavaa komentoa.
- Arch tukee vain täysiä järjestelmäpäivityksiä. Katso System maintenance#Partial upgrades are unsupported ja #Pakettien asennus lisätiedolle.

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, `-s`n 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

- Pacman Kotisivu
- libalpm(3)
- pacman(8)
- pacman.conf(5)
- repo-add(8)

Categories:

- Package manager (Suomi)
- Arch projects (Suomi)
- Commands (Suomi)