pacman (Bahasa Indonesia) - ArchWiki

Jump to content

# pacman (Bahasa Indonesia)

From ArchWiki

Related articles

- /Package signing
- /Pacnew and Pacsave
- /Restore local database
- /Rosetta
- /Tips and tricks
- Arch User Repository
- Creating packages
- Downgrading packages
- namcap
- FAQ#Package management
- System maintenance
- Package proxy cache

Manajer paket pacman adalah salah satu fitur pembeda utama dari Arch Linux. Ia menggabungkan format paket biner sederhana dengan Arch build system yang mudah digunakan. Tujuan dari pacman adalah untuk memungkinkan pengelolaan paket dengan mudah, baik yang berasal dari official repositories maupun hasil kompilasi pengguna sendiri.

pacman menjaga sistem tetap mutakhir dengan menyinkronkan daftar paket dengan server utama. Model server/klien ini juga memungkinkan pengguna untuk mengunduh/menginstal paket dengan perintah sederhana, lengkap dengan semua dependensi yang diperlukan.

pacman ditulis dalam bahasa pemrograman C dan menggunakan format tar bsdtar(1) untuk pengemasan.

Tip Paket pacman berisi alat-alat seperti makepkg dan vercmp(8). Alat berguna lainnya seperti pactree dan checkupdates dapat ditemukan di pacman-contrib (sebelumnya merupakan bagian dari pacman). Jalankan `pacman -Ql pacman pacman-contrib | grep -E 'bin/.+'` untuk melihat daftar lengkapnya.

## Penggunaan

Berikut ini hanyalah sebagian kecil dari operasi yang dapat dilakukan oleh pacman. Untuk membaca lebih banyak contoh, silakan merujuk ke pacman(8).

Tip Bagi mereka yang telah menggunakan distribusi Linux lain sebelumnya, terdapat artikel Pacman/Rosetta yang sangat membantu.

### Menginstal paket

Sebuah paket adalah arsip yang berisi:

- semua file (terkompilasi) dari sebuah aplikasi
- metadata tentang aplikasi tersebut, seperti nama aplikasi, versi, dependensi, dll.
- file instalasi dan arahan untuk pacman

Manajer paket Arch, pacman, dapat menginstal, memperbarui, dan menghapus paket-paket tersebut. Menggunakan paket alih-alih mengompilasi dan menginstal program sendiri memiliki berbagai manfaat:

- mudah diperbarui: pacman akan memperbarui paket yang ada segera setelah pembaruan tersedia
- pemeriksaan dependensi: pacman menangani dependensi untuk Anda, Anda hanya perlu menentukan programnya dan pacman akan menginstalnya bersama dengan setiap program lain yang dibutuhkannya
- penghapusan bersih: pacman memiliki daftar setiap file dalam sebuah paket; dengan cara ini, tidak ada file yang tertinggal secara tidak sengaja saat Anda memutuskan untuk menghapus sebuah paket.

Note

- Paket sering kali memiliki dependensi opsional yang merupakan paket untuk menyediakan fungsionalitas tambahan ke aplikasi tetapi tidak mutlak diperlukan untuk menjalankannya. Saat menginstal sebuah paket, pacman akan mencantumkan dependensi opsional paket tersebut, tetapi mereka tidak akan ditemukan di `pacman.log`. Gunakan perintah #Querying package databases untuk melihat dependensi opsional dari sebuah paket.
- Saat menginstal paket yang Anda butuhkan hanya sebagai dependensi (opsional) dari paket lain (yaitu tidak Anda butuhkan secara eksplisit), disarankan untuk menggunakan opsi `--asdeps`. Untuk rinciannya, lihat bagian #Alasan instalasi.

Warning Saat menginstal paket di Arch, hindari menyegarkan daftar paket tanpa memperbarui sistem (misalnya, ketika sebuah paket tidak lagi ditemukan di repositori resmi). Dalam praktiknya, jangan pernah menjalankan `pacman -Sy nama_paket` sebagai pengganti `pacman -Syu nama_paket`, karena hal tersebut dapat menyebabkan masalah dependensi. Lihat Sistem pemeliharaan#Pembaruan parsial tidak didukung dan BBS#89328.

#### Menginstal paket tertentu

Untuk menginstal satu paket atau daftar paket, termasuk dependensinya, jalankan perintah berikut:

    # pacman -S nama_paket1 nama_paket2 ...

Untuk menginstal daftar paket dengan regex (lihat utas forum ini):

    # pacman -S $(pacman -Ssq regex_paket)

Terkadang terdapat beberapa versi paket di repositori yang berbeda (misalnya extra dan extra-testing). Untuk menginstal versi dari repositori extra dalam contoh ini, repositori perlu ditentukan di depan nama paket:

    # pacman -S extra/nama_paket

Untuk menginstal sejumlah paket yang memiliki pola serupa dalam namanya, seseorang dapat menggunakan ekspansi kurung kurawal. Sebagai contoh:

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

Ini dapat diperluas ke tingkat sebanyak apa pun yang diperlukan:

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

##### Virtual packages

A virtual package is a special package which does not exist by itself, but is provided by one or more other packages. Virtual packages allow other packages to not name a specific package as a dependency, in case there are several candidates. Virtual packages cannot be installed by their name, instead they become installed in your system when you have installed a package providing the virtual package. An example is the dbus-units package.

Tip When there are multiple candidates, the list of choices presented will sort first by repositories in the order they appear in `pacman.conf`, then alphabetically when multiple results exist from the same repository.

##### Paket virtual

Paket virtual adalah paket khusus yang tidak berdiri sendiri, tetapi disediakan oleh satu atau lebih paket lainnya. Paket virtual memungkinkan paket lain untuk tidak menyebutkan paket spesifik sebagai dependensi, jika terdapat beberapa kandidat. Paket virtual tidak dapat diinstal berdasarkan namanya, melainkan terinstal di sistem Anda ketika Anda telah menginstal paket yang *menyediakan* paket virtual tersebut. Contohnya adalah paket dbus-units.

Tip Ketika terdapat beberapa kandidat, daftar pilihan yang disajikan akan diurutkan terlebih dahulu berdasarkan repositori sesuai urutan kemunculannya di `pacman.conf`, kemudian secara alfabetis jika terdapat beberapa hasil dari repositori yang sama.

#### Menginstal grup paket

Beberapa paket termasuk dalam grup paket yang semuanya dapat diinstal secara bersamaan. Sebagai contoh, menjalankan perintah:

    # pacman -S gnome

akan meminta Anda untuk memilih paket dari grup gnome yang ingin Anda instal.

Terkadang sebuah grup paket berisi sangat banyak paket, dan mungkin hanya ada beberapa yang Anda inginkan atau tidak Anda inginkan untuk diinstal. Alih-alih harus memasukkan semua nomor kecuali yang tidak Anda inginkan, terkadang lebih mudah untuk memilih atau mengecualikan paket atau rentang paket dengan sintaks berikut:

    Masukkan pilihan (default=semua): 1-10 15

yang akan memilih paket 1 sampai 10 dan 15 untuk diinstal, atau:

    Masukkan pilihan (default=semua): ^5-8 ^2

yang akan memilih semua paket kecuali 5 sampai 8 dan 2 untuk diinstal.

Untuk melihat paket apa saja yang termasuk dalam grup gnome, jalankan:

    $ pacman -Sg gnome

Kunjungi juga [1](https://archlinux.org/groups/) untuk melihat grup paket apa saja yang tersedia.

Note Jika sebuah paket dalam daftar sudah terinstal di sistem, paket tersebut akan diinstal ulang meskipun sudah mutakhir. Perilaku ini dapat diabaikan dengan opsi `--needed`.

### Menghapus paket

Untuk menghapus satu paket, dengan membiarkan semua dependensinya tetap terinstal:

    # pacman -R nama_paket

Untuk menghapus paket beserta dependensinya yang tidak diperlukan oleh paket terinstal lainnya:

    # pacman -Rs nama_paket

Warning Saat menghapus sebuah grup, seperti gnome, ini akan mengabaikan alasan instalasi dari paket-paket dalam grup tersebut, karena sistem menganggap setiap paket dalam grup dicantumkan secara terpisah. Alasan instalasi untuk dependensi tetap dihormati.

Perintah di atas terkadang menolak untuk dijalankan saat menghapus grup yang berisi paket yang masih dibutuhkan. Dalam hal ini, coba:

    # pacman -Rsu nama_paket

Untuk menghapus paket, dependensinya, dan semua paket yang bergantung pada paket target tersebut:

Warning Operasi ini bersifat rekursif, dan harus digunakan dengan hati-hati karena dapat menghapus banyak paket yang berpotensi masih dibutuhkan.

    # pacman -Rsc nama_paket

Untuk menghapus paket yang dibutuhkan oleh paket lain, tanpa menghapus paket yang bergantung padanya:

Warning Operasi berikut dapat merusak sistem dan harus dihindari. Lihat System maintenance#Avoid certain pacman commands.

    # pacman -Rdd nama_paket

pacman menyimpan file konfigurasi penting saat menghapus aplikasi tertentu dan menamainya dengan ekstensi: .pacsave. Untuk mencegah pembuatan file cadangan ini, gunakan opsi `-n`:

    # pacman -Rn nama_paket

Note Pacman tidak akan menghapus konfigurasi yang dibuat oleh aplikasi itu sendiri (misalnya "dotfiles" di direktori home).

### Memperbarui paket

Warning

- Pengguna diharapkan mengikuti panduan di bagian System maintenance#Upgrading the system untuk memperbarui sistem mereka secara berkala dan tidak menjalankan perintah berikut secara membabi buta.
- Arch hanya mendukung pembaruan sistem secara penuh. Lihat System maintenance#Partial upgrades are unsupported dan #Menginstal paket untuk rinciannya.

pacman dapat memperbarui semua paket di sistem hanya dengan satu perintah. Hal ini bisa memakan waktu cukup lama tergantung pada seberapa mutakhir sistem tersebut. Perintah berikut menyinkronkan basis data repositori dan memperbarui paket-paket sistem, tidak termasuk paket "lokal" yang tidak ada dalam repositori yang dikonfigurasi:

    # pacman -Syu

### Menanyakan basis data paket

pacman menanyakan basis data paket lokal dengan bendera `-Q`, basis data sinkronisasi dengan bendera `-S` dan basis data file dengan bendera `-F`. Lihat `pacman -Q --help`, `pacman -S --help` dan `pacman -F --help` untuk sub-opsi masing-masing dari setiap bendera.

Note Sinkronkan basis data file sebelum menanyakannya untuk mendapatkan hasil yang mutakhir:

    # pacman -Fy

Tip Anda dapat mengaktifkan/memulai `pacman-filesdb-refresh.timer` (disediakan dalam paket pacman-contrib) untuk menyegarkan basis data file pacman setiap minggu.

pacman dapat mencari paket dalam basis data, mencari baik pada nama maupun deskripsi paket:

    $ pacman -Ss string1 string2 ...

Terkadang, ERE (Extended Regular Expressions) bawaan `-s` dapat menyebabkan banyak hasil yang tidak diinginkan, sehingga pencarian harus dibatasi agar sesuai dengan nama paket saja; bukan deskripsi atau bidang lainnya:

    $ pacman -Ss '^vim-'

Untuk mencari paket yang sudah terinstal:

    $ pacman -Qs string1 string2 ...

Untuk mencari nama file paket dalam paket jarak jauh (remote):

    $ pacman -F string1 string2 ...

Untuk menampilkan informasi luas tentang paket tertentu (misalnya dependensinya):

    $ pacman -Si nama_paket

Untuk paket yang terinstal secara lokal:

    $ pacman -Qi nama_paket

Memberikan dua bendera `-i` juga akan menampilkan daftar file cadangan dan status modifikasinya:

    $ pacman -Qii nama_paket

Untuk mendapatkan daftar file yang diinstal oleh sebuah paket:

    $ pacman -Ql nama_paket

Untuk mendapatkan daftar file yang diinstal oleh paket jarak jauh (remote):

    $ pacman -Fl nama_paket

Untuk memverifikasi keberadaan file yang diinstal oleh sebuah paket:

    $ pacman -Qk nama_paket

Memberikan bendera `k` dua kali akan melakukan pemeriksaan yang lebih menyeluruh.

Untuk menanyakan basis data guna mengetahui paket mana yang memiliki file tertentu di sistem file:

    $ pacman -Qo /jalur/ke/nama_file

Untuk menanyakan basis data guna mengetahui paket jarak jauh (remote) mana yang memiliki file tersebut:

    $ pacman -F /jalur/ke/nama_file

Untuk mencantumkan semua paket yang tidak lagi diperlukan sebagai dependensi (yatim/orphan):

    $ pacman -Qdt

Untuk mencantumkan semua paket yang diinstal secara eksplisit dan tidak diperlukan sebagai dependensi:

    $ pacman -Qet

Lihat pacman/Tips and tricks untuk contoh lainnya.

Untuk fungsionalitas tingkat lanjut, instal pkgfile, yang menggunakan basis data terpisah dengan semua file dan paket terkaitnya.

#### Pactree

Note pactree(8) bukan lagi bagian dari paket pacman. Sebagai gantinya, alat ini dapat ditemukan di pacman-contrib.

Untuk melihat pohon dependensi dari sebuah paket:

    $ pactree nama_paket

Untuk melihat pohon paket yang bergantung pada suatu paket, berikan bendera pembalik `-r` ke pactree.

#### Struktur basis data

Basis data pacman biasanya terletak di `/var/lib/pacman/sync`. Untuk setiap repositori yang ditentukan dalam `/etc/pacman.conf`, akan ada file basis data yang sesuai di sana. File basis data adalah arsip tar yang dikompres dengan gzip, berisi satu direktori untuk setiap paket, misalnya untuk paket which:

    $ tree which-2.21-5

    which-2.21-5
    |-- desc

File `desc` berisi metadata seperti deskripsi paket, dependensi, ukuran file, dan hash MD5.

### Membersihkan cache paket

Pacman menyimpan paket yang diunduh di `/var/cache/pacman/pkg/` dan tidak menghapus versi lama atau yang sudah tidak terinstal secara otomatis. Hal ini memiliki beberapa keuntungan:

1. Memungkinkan untuk melakukan downgrade paket tanpa perlu mengambil versi sebelumnya melalui cara lain, seperti Arch Linux Archive. 2. Paket yang telah dihapus dapat diinstal ulang dengan mudah langsung dari direktori cache, tanpa memerlukan unduhan baru dari repositori.

Namun, pembersihan cache secara berkala perlu dilakukan secara sengaja untuk mencegah ukuran direktori tersebut membengkak tanpa batas.

Skrip paccache(8), yang disediakan dalam paket pacman-contrib, menghapus semua versi paket terinstal maupun tidak terinstal yang tersimpan di cache, kecuali tiga versi terbaru, secara default:

    # paccache -r

Aktifkan dan mulai `paccache.timer` untuk membuang paket yang tidak terpakai setiap minggu. Anda dapat mengonfigurasi argumen untuk layanan tersebut di `/etc/conf.d/pacman-contrib`, misalnya dengan `PACCACHE_ARGS='-k1'` atau `PACCACHE_ARGS='-uk0'` untuk dua contoh di bawah ini.

Tip Anda dapat membuat hook untuk menjalankan ini secara otomatis setelah setiap transaksi pacman, instal paccache-hookAUR dan lihat contoh lainnya

Anda juga dapat menentukan berapa banyak versi terbaru yang ingin disimpan. Untuk menyimpan hanya satu versi sebelumnya, gunakan:

    # paccache -rk1

Tambahkan sakelar `-u`/`--uninstalled` untuk membatasi tindakan paccache hanya pada paket yang tidak terinstal. Misalnya, untuk menghapus semua versi cache dari paket yang tidak terinstal, gunakan perintah berikut:

    # paccache -ruk0

Lihat `paccache -h` untuk opsi lainnya.

pacman juga memiliki beberapa opsi bawaan untuk membersihkan cache dan file basis data sisa dari repositori yang tidak lagi tercantum dalam file konfigurasi `/etc/pacman.conf`. Namun, pacman tidak menawarkan kemungkinan untuk menyimpan sejumlah versi sebelumnya dan oleh karena itu lebih agresif daripada opsi default paccache.

Untuk menghapus semua paket di cache yang saat ini tidak terinstal, serta basis data sinkronisasi yang tidak digunakan, jalankan:

    # pacman -Sc

Untuk menghapus semua file dari cache, gunakan sakelar pembersih sebanyak dua kali; ini adalah pendekatan yang paling agresif dan tidak akan menyisakan apa pun di direktori cache:

    # pacman -Scc

Warning Seseorang harus menghindari penghapusan semua versi lama dari paket terinstal dan semua paket yang tidak terinstal dari cache kecuali jika benar-benar perlu mengosongkan ruang disk. Hal ini akan mencegah proses downgrade atau instalasi ulang paket tanpa mengunduhnya kembali.

pkgcachecleanAUR dan pacleanerAUR adalah dua alternatif lain untuk membersihkan cache.

### Perintah tambahan

Unduh paket tanpa menginstalnya:

    # pacman -Sw nama_paket

Instal paket 'lokal' yang tidak berasal dari repositori jarak jauh (misalnya paket dari AUR):

    # pacman -U /jalur/ke/paket/nama_paket-versi.pkg.tar.zst

Untuk menyimpan salinan paket lokal di dalam cache pacman, gunakan:

    # pacman -U file:///jalur/ke/paket/nama_paket-versi.pkg.tar.zst

Instal paket 'jarak jauh' (tidak berasal dari repositori yang tercantum dalam file konfigurasi pacman):

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

#### Uji coba (Dry run)

pacman selalu mencantumkan paket yang akan diinstal atau dihapus, dan meminta izin sebelum melakukan tindakan apa pun.

Untuk mendapatkan daftar dalam format yang dapat diproses, serta untuk mencegah tindakan dari `-S`, `-U` dan `-R`, Anda dapat menggunakan `-p`, singkatan dari `--print`.

`--print-format` dapat ditambahkan untuk memformat daftar ini dengan berbagai cara. `--print-format %n` akan mengembalikan daftar tanpa versi paket.

### Alasan instalasi

Basis data pacman mengatur paket-paket yang terinstal ke dalam dua grup, sesuai dengan alasan instalasinya:

- diinstal secara eksplisit (explicitly-installed): paket yang benar-benar dimasukkan ke dalam perintah umum pacman `-S` atau `-U`;
- dependensi: paket yang, meskipun (secara umum) tidak pernah dimasukkan ke dalam perintah instalasi pacman, terinstal secara implisit karena dibutuhkan oleh paket yang diinstal secara eksplisit.

Saat menginstal paket, dimungkinkan untuk memaksa alasan instalasinya menjadi dependensi dengan:

    # pacman -S --asdeps nama_paket

Perintah ini biasanya digunakan karena paket yang diinstal secara eksplisit mungkin menawarkan paket opsional, biasanya untuk fitur non-esensial yang kebijakannya ada pada pengguna.

Tip Menginstal dependensi opsional dengan `--asdeps` akan memastikan bahwa, jika Anda menghapus paket yatim (orphan), pacman juga akan menghapus paket opsional yang diatur dengan cara ini.

Namun, saat menginstal ulang sebuah paket, alasan instalasi saat ini akan tetap dipertahankan secara default.

Daftar paket yang diinstal secara eksplisit dapat ditampilkan dengan `pacman -Qe`, sementara daftar pelengkap untuk dependensi dapat ditampilkan dengan `pacman -Qd`.

Untuk mengubah alasan instalasi dari paket yang sudah terinstal, jalankan:

    # pacman -D --asdeps nama_paket

Gunakan `--asexplicit` untuk melakukan operasi sebaliknya.

Note Penggunaan opsi `--asdeps` dan `--asexplicit` saat melakukan pembaruan, seperti dengan `pacman -Syu nama_paket --asdeps`, sangat tidak disarankan. Hal ini akan mengubah alasan instalasi tidak hanya untuk paket yang sedang diinstal, tetapi juga untuk paket-paket yang sedang diperbarui.

### Apa yang terjadi selama instalasi/pembaruan/penghapusan paket

Jika berhasil, alur kerja suatu transaksi mengikuti lima langkah tingkat tinggi ditambah hook sebelum/sesudah transaksi:

1. Inisialisasi transaksi jika tidak ada kunci basis data (database lock).
2. Pilih paket mana yang akan ditambahkan atau dihapus dalam transaksi tersebut.
3. Siapkan transaksi, berdasarkan bendera, dengan melakukan pemeriksaan integritas pada basis data sinkronisasi, paket, dan dependensinya.
4. Komit transaksi:
   1. Jika berlaku, unduh paket (`_alpm_sync_load`).
   2. Jika terdapat hook `PreTransaction` pacman yang berlaku, hook tersebut akan dieksekusi.
   3. Paket yang akan diganti, berkonflik, atau secara eksplisit ditargetkan untuk dihapus, akan dihapus.
   4. Jika ada paket yang akan ditambahkan, maka setiap paket dikomit:
      1. Jika paket memiliki skrip instalasi, fungsi `pre_install`-nya akan dieksekusi (atau `pre_upgrade` atau `pre_remove` dalam kasus paket yang diperbarui atau dihapus).
      2. pacman menghapus semua file dari versi paket yang sudah ada sebelumnya (dalam kasus paket yang diperbarui atau dihapus). Namun, file yang ditandai sebagai file konfigurasi dalam paket akan tetap disimpan (lihat /Pacnew and Pacsave).
      3. pacman mengekstrak tar paket dan menempatkan file-filenya ke dalam sistem file (dalam kasus paket yang diinstal atau diperbarui). File yang akan menimpa file konfigurasi yang disimpan dan dimodifikasi secara manual (lihat langkah sebelumnya), akan disimpan dengan nama baru ('.pacnew').
      4. Jika paket memiliki skrip instalasi, fungsi `post_install`-nya akan dieksekusi (atau `post_upgrade` atau `post_remove` dalam kasus paket yang diperbarui atau dihapus).
   5. Jika terdapat hook `PostTransaction` pacman pada akhir transaksi yang berlaku, hook tersebut akan dieksekusi.
5. Lepaskan transaksi dan sumber daya transaksi (yaitu kunci basis data).

## Konfigurasi

Pengaturan pacman terletak di `/etc/pacman.conf`: ini adalah tempat di mana pengguna mengonfigurasi program agar bekerja sesuai dengan cara yang diinginkan. Informasi mendalam tentang file konfigurasi dapat ditemukan di pacman.conf(5).

### Opsi umum

Opsi umum berada di bagian `[options]`. Baca pacman.conf(5) atau lihat file default `pacman.conf` untuk informasi mengenai apa saja yang dapat dilakukan di sini.

#### Membandingkan versi sebelum memperbarui

Untuk melihat versi lama dan baru dari paket yang tersedia, hapus tanda komentar pada baris "VerbosePkgLists" di `/etc/pacman.conf`. Output dari `pacman -Syu` akan menjadi seperti ini:

    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

#### Unduhan paralel

Jumlah paket yang diunduh secara paralel (pada saat yang sama) dikonfigurasi di dalam `/etc/pacman.conf` dengan opsi `ParallelDownloads` di bawah bagian `[options]`. File `/etc/pacman.conf` yang disertakan dengan paket pacman mengaturnya ke `5`. Jika opsi ini tidak diatur, paket-paket akan diunduh secara berurutan.

#### Melewati pembaruan paket tertentu

Warning Berhati-hatilah dalam mengabaikan pembaruan paket, karena pembaruan parsial tidak didukung.

Agar paket tertentu dilewati saat memperbarui sistem, tambahkan baris ini di bagian `[options]`:

    IgnorePkg=linux

Untuk beberapa paket, gunakan daftar yang dipisahkan spasi, atau gunakan baris `IgnorePkg` tambahan. Selain itu, pola glob juga dapat digunakan. Jika Anda ingin melewati paket hanya satu kali saja, Anda juga dapat menggunakan opsi `--ignore` pada baris perintah - kali ini dengan daftar yang dipisahkan koma.

Pembaruan paket yang diabaikan tersebut masih dimungkinkan menggunakan `pacman -S`: dalam hal ini pacman akan mengingatkan Anda bahwa paket-paket tersebut telah dimasukkan ke dalam pernyataan `IgnorePkg`.

#### Melewati pembaruan grup paket

Warning Berhati-hatilah dalam mengabaikan grup paket, karena pembaruan parsial tidak didukung.

Sama seperti paket individu, mengabaikan seluruh grup paket juga dimungkinkan:

    IgnoreGroup=gnome

#### Melewati pembaruan file tertentu

Semua file yang dicantumkan dengan arahan `NoUpgrade` tidak akan pernah disentuh selama instalasi/pembaruan paket, dan file baru akan diinstal dengan ekstensi .pacnew.

    NoUpgrade=jalur/ke/file

Beberapa file dapat ditentukan seperti ini:

    NoUpgrade=jalur/ke/file1 jalur/ke/file2

Note Jalur tersebut merujuk pada file di dalam arsip paket. Oleh karena itu, jangan sertakan garis miring di awal.

#### Melewati instalasi file ke sistem

Untuk selalu melewati instalasi file atau direktori tertentu, cantumkan mereka di bawah `NoExtract`. Sebagai contoh, untuk menghindari instalasi skrip bash completion, gunakan:

    NoExtract=usr/share/bash-completion/completions/*

Aturan yang muncul kemudian akan menimpa aturan sebelumnya, dan Anda dapat meniadakan aturan dengan menambahkan awalan `!`.

#### Mengelola beberapa file konfigurasi

Jika Anda memiliki beberapa file konfigurasi (misalnya konfigurasi utama dan konfigurasi dengan repositori testing yang diaktifkan) dan ingin berbagi opsi di antara konfigurasi tersebut, Anda dapat menggunakan opsi `Include` yang dideklarasikan dalam file konfigurasi, contohnya:

    Include = /jalur/ke/pengaturan/umum

di mana file `/jalur/ke/pengaturan/umum` berisi opsi yang sama untuk kedua konfigurasi tersebut.

#### Hook

pacman dapat menjalankan hook sebelum dan sesudah transaksi dari direktori `/usr/share/libalpm/hooks/`; direktori tambahan dapat ditentukan dengan opsi `HookDir` di `pacman.conf`, yang secara default merujuk ke `/etc/pacman.d/hooks`. Nama file hook harus diakhiri dengan ekstensi .hook. Hook pacman bersifat tidak interaktif.

Hook pacman digunakan, misalnya, dalam kombinasi dengan `systemd-sysusers` dan `systemd-tmpfiles` untuk secara otomatis membuat pengguna sistem dan file selama instalasi paket. Sebagai contoh, tomcat8AUR menentukan bahwa ia membutuhkan pengguna sistem bernama `tomcat8` dan direktori tertentu yang dimiliki oleh pengguna ini. Hook pacman `systemd-sysusers.hook` dan `systemd-tmpfiles.hook` memanggil `systemd-sysusers` dan `systemd-tmpfiles` ketika pacman mendeteksi bahwa tomcat8AUR berisi file yang menentukan pengguna dan file sementara (tmp files).

Untuk informasi lebih lanjut mengenai hook alpm, lihat alpm-hooks(5).

### Repositori dan cermin (mirror)

Selain bagian khusus [options], setiap `[section]` lainnya dalam `pacman.conf` mendefinisikan repositori paket yang akan digunakan. Sebuah *repositori* adalah kumpulan paket secara *logis*, yang secara *fisik* disimpan di satu atau lebih server: karena alasan inilah setiap server disebut sebagai *mirror* untuk repositori tersebut.

Repositori dibedakan antara repositori resmi dan tidak resmi. Urutan repositori dalam file konfigurasi sangat berpengaruh; repositori yang dicantumkan lebih dulu akan diprioritaskan daripada yang dicantumkan kemudian jika paket di dua repositori memiliki nama yang identik, terlepas dari nomor versinya. Untuk menggunakan repositori setelah menambahkannya, Anda perlu memperbarui seluruh sistem terlebih dahulu.

Setiap bagian repositori memungkinkan penentuan daftar mirror-nya secara langsung atau dalam file eksternal khusus melalui arahan `Include`; misalnya, mirror untuk repositori resmi disertakan dari `/etc/pacman.d/mirrorlist`. Lihat artikel Mirrors untuk konfigurasi mirror.

#### Direktori cache paket

pacman menyimpan file paket yang diunduh di dalam cache, dalam direktori yang ditunjukkan oleh `CacheDir` di bagian [options] pada `pacman.conf` (secara default ke `/var/cache/pacman/pkg/` jika tidak diatur).

Direktori cache dapat membengkak seiring waktu, bahkan jika hanya menyimpan versi terbaru dari paket yang terinstal.

Jika Anda ingin memindahkan direktori tersebut ke tempat yang lebih sesuai, lakukan salah satu hal berikut:

- Atur opsi `CacheDir` di `pacman.conf` ke direktori baru. Ingatlah untuk menyertakan garis miring di akhir. Ini adalah solusi yang disarankan.
- Kaitkan (mount) partisi khusus atau misal subvolume Btrfs di `/var/cache/pacman/pkg/`.
- Gunakan bind-mount untuk direktori yang dipilih di `/var/cache/pacman/pkg/`.

Warning Jangan gunakan symlink untuk direktori `/var/cache/pacman/pkg/` ke lokasi lain. Hal ini akan menyebabkan pacman tidak berfungsi dengan benar, terutama saat pacman mencoba memperbarui dirinya sendiri.

#### Keamanan paket

pacman mendukung tanda tangan paket, yang menambahkan lapisan keamanan ekstra pada paket. Konfigurasi default, `SigLevel = Required DatabaseOptional`, mengaktifkan verifikasi tanda tangan untuk semua paket pada tingkat global. Hal ini dapat ditimpa oleh baris `SigLevel` per repositori. Untuk rincian lebih lanjut tentang penandatanganan paket dan verifikasi tanda tangan, lihat pacman-key.

## Pemecahan masalah

### Kesalahan "Failed to commit transaction (conflicting files)"

Jika Anda melihat kesalahan berikut: [2]

    error: could not prepare transaction
    error: failed to commit transaction (conflicting files)
    paket: /jalur/ke/file exists in filesystem
    Errors occurred, no packages were upgraded.

Hal ini terjadi karena pacman mendeteksi adanya konflik file, dan secara rancangan, tidak akan menimpa file untuk Anda. Ini adalah fitur keamanan, bukan cacat program.

Masalah ini biasanya sepele untuk diselesaikan (walaupun untuk memastikannya, Anda harus mencoba mencari tahu bagaimana file-file tersebut bisa ada di sana pada awalnya). Cara yang aman adalah dengan memeriksa terlebih dahulu apakah paket lain memiliki file tersebut (`pacman -Qo /jalur/ke/file`). Jika file tersebut dimiliki oleh paket lain, buatlah laporan bug. Jika file tersebut tidak dimiliki oleh paket lain, ganti nama file yang "exists in filesystem" tersebut dan jalankan kembali perintah pembaruan. Jika semuanya berjalan lancar, file tersebut kemudian dapat dihapus.

Jika Anda telah menginstal program secara manual tanpa menggunakan pacman, misalnya melalui `make install`, Anda harus menghapus/mencopot program ini beserta semua filenya. Lihat juga Pacman tips#Identify files not owned by any package.

Setiap paket yang terinstal menyediakan file `/var/lib/pacman/local/paket-versi/files` yang berisi metadata tentang paket ini. Jika file ini rusak, kosong, atau hilang, hal itu menyebabkan kesalahan `file exists in filesystem` saat mencoba memperbarui paket. Kesalahan seperti ini biasanya hanya menyangkut satu paket. Alih-alih mengganti nama secara manual dan kemudian menghapus semua file yang termasuk dalam paket yang bermasalah, Anda dapat secara eksplisit menjalankan `pacman -S --overwrite glob paket` untuk memaksa pacman menimpa file yang cocok dengan `glob`.

Warning Secara umum hindari penggunaan sakelar `--overwrite`. Lihat System maintenance#Avoid certain pacman commands.

### Kesalahan "Failed to commit transaction (invalid or corrupted package)"

This article or section is out of date.

Reason: Dengan pacman 7.1.0, kunci yang kedaluwarsa seharusnya diperbarui secara otomatis (keandalan bergantung pada infrastruktur kunci...) - ini seharusnya menghilangkan pesan "package is corrupt" saat kunci perlu diperbarui. (Discuss in Talk:Pacman (Bahasa Indonesia))

Cari file .part (paket yang baru diunduh sebagian) di `/var/cache/pacman/pkg/` dan hapus file tersebut (sering kali disebabkan oleh penggunaan `XferCommand` khusus di `pacman.conf`).

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

Kesalahan yang sama mungkin juga muncul jika archlinux-keyring sudah kedaluwarsa, sehingga mencegah pacman melakukan verifikasi tanda tangan. Lihat Pacman/Package signing#Upgrade system regularly untuk perbaikan dan cara menghindarinya di masa mendatang.

### Kesalahan "Failed to init transaction (unable to lock database)"

Ketika pacman akan mengubah basis data paket, misalnya saat menginstal paket, ia membuat file kunci (lock file) di `/var/lib/pacman/db.lck`. Hal ini mencegah instansi pacman lainnya mencoba mengubah basis data paket di waktu yang sama.

Jika pacman terhenti saat sedang mengubah basis data, file kunci yang basi ini mungkin tetap ada. Jika Anda yakin bahwa tidak ada instansi pacman yang sedang berjalan, hapus file kunci tersebut:

    # rm /var/lib/pacman/db.lck

Tip Anda dapat menjalankan `fuser /var/lib/pacman/db.lck` sebagai root untuk memverifikasi apakah masih ada proses yang menggunakannya.

### Paket tidak dapat ditemukan saat instalasi

Kesalahan ini muncul dalam bentuk `Not found in sync db`, `Target not found` atau `Failed retrieving file`.

Pertama, pastikan paket tersebut memang ada. Jika Anda yakin paket itu ada, daftar paket Anda mungkin sudah usang. Cobalah menjalankan `pacman -Syu` untuk memaksa penyegaran semua daftar paket dan melakukan pembaruan. Pastikan juga mirrors yang dipilih sudah mutakhir dan repositori dikonfigurasi dengan benar. Anda juga dapat menggunakan Reflector untuk menjaga agar mirror tetap mutakhir.

Jika pacman melaporkan tidak ada yang perlu diperbarui, tetapi kesalahan `Failed retrieving file` terus muncul, pertimbangkan untuk memaksa pengunduhan basis data dengan `pacman -Syyu`. Hal ini tidak pernah dibutuhkan dalam kondisi normal, jadi periksalah lebih teliti status dan konsistensi mirror tersebut.

Bisa jadi repositori yang berisi paket tersebut tidak diaktifkan di sistem Anda, misalnya paket tersebut berada di repositori multilib, tetapi multilib tidak diaktifkan di `pacman.conf` Anda.

Lihat juga FAQ#Why is there only a single version of each shared library in the official repositories?.

### Memperbaiki sistem yang tidak bisa booting akibat pembaruan yang terhenti

This article or section needs expansion.

Reason: Banyak hal yang perlu dipertimbangkan. (Discuss in Talk:Pacman (Bahasa Indonesia)#Rincian lebih lanjut di pacman crashes during an update)

Baik karena mati listrik, kernel panic, atau kegagalan perangkat keras, sebuah pembaruan bisa saja terhenti. Dalam banyak kasus, tidak akan ada banyak kerusakan tetapi sistem kemungkinan besar tidak akan bisa booting.

1. Siapkan USB flash installation medium dan lakukan booting darinya.
2. Kaitkan sistem file root serta ESP Anda.
3. Lakukan `arch-chroot` ke dalam sistem file root yang telah dikaitkan.
4. Periksa `/var/log/pacman.log` dan ulangi pembaruan yang sama persis dengan memberikan *seluruh* daftar paket yang diperbarui selama transaksi yang gagal tersebut ke `pacman -Syu`, memungkinkannya untuk menginstal ulang sambil melanjutkan pembaruan asli:

    # pacman -Syu $(grep "\\[2025-07-27T22.*\\] \\[ALPM\\] upgraded" /var/log/pacman.log | cut -d " " -f4 | tr "\\n" " ")

Mengulangi pembaruan yang *tepat* diperlukan untuk memastikan scriptlet dan hook yang benar akan dijalankan.

### pacman macet saat pembaruan

Dalam kasus di mana pacman macet dengan kesalahan "database write" saat menghapus paket, dan penginstalan ulang atau pembaruan paket gagal setelahnya, lakukan hal berikut:

1. Boot menggunakan USB flash installation medium Arch. Sebaiknya gunakan media terbaru agar versi pacman sesuai dengan/lebih baru dari sistem.
2. Kaitkan sistem file root sistem, misalnya, `mount /dev/sdaX /mnt` sebagai root, dan periksa apakah pemasangan memiliki ruang yang cukup dengan `df -h`.
3. Kaitkan juga sistem file proc, sys, dan dev: `mount -t proc proc /mnt/proc; mount --rbind /sys /mnt/sys; mount --rbind /dev /mnt/dev`.
4. Jika sistem menggunakan lokasi basis data dan direktori default, Anda sekarang dapat memperbarui basis data pacman sistem dan memperbaruinya melalui `pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -Syu` sebagai root.
   - Sebagai alternatif, jika Anda tidak dapat memperbarui, merujuklah ke Pacman/Tips and tricks#Reinstalling all packages.
5. Setelah pembaruan, salah satu cara untuk memeriksa ulang paket yang tidak diperbarui tetapi masih rusak: `find /mnt/usr/lib -size 0`.
6. Dilanjutkan dengan instal ulang paket yang masih rusak melalui `pacman --root /mnt --cachedir=/mnt/var/cache/pacman/pkg -S paket`.

#### pacman: command not found

Jika `/var/cache/pacman/pkg` adalah symlink, pacman akan mencoba membuat direktori sebagai gantinya dan dengan demikian menghapus symlink ini selama pembaruan diri sendiri. Hal ini akan menyebabkan pembaruan gagal. Akibatnya, `/usr/bin/pacman` dan konten lain dari paket pacman akan hilang.

Jangan pernah menggunakan symlink untuk `/var/cache/pacman/pkg` karena direktori tersebut dikendalikan oleh pacman. Gunakan opsi `CacheDir` atau bind mount sebagai gantinya; lihat #Direktori cache paket.

Jika Anda sudah terlanjur mengalami masalah ini dan merusak sistem Anda, Anda dapat mengekstrak konten `/usr` secara manual dari paket untuk memulihkan pacman dan kemudian menginstalnya kembali dengan benar; lihat FS#73306 dan utas forum terkait untuk rinciannya.

### Menginstal ulang pacman secara manual

#### Menggunakan pacman-static

pacman-staticAUR adalah versi pacman yang dikompilasi secara statis, sehingga akan dapat berjalan bahkan ketika pustaka (library) pada sistem tidak berfungsi. Ini juga bisa berguna ketika pembaruan parsial dilakukan dan pacman tidak dapat berjalan lagi.

Komentar yang disematkan dan PKGBUILD menyediakan cara untuk mengunduh biner secara langsung, yang dapat digunakan untuk menginstal ulang pacman atau untuk memperbarui seluruh sistem dalam kasus pembaruan parsial.

##### Menggunakan biner pacman-static yang telah dikompilasi sebelumnya ketika pembangunan PKGBUILD gagal

Dalam beberapa situasi, sistem Anda mungkin terlalu rusak untuk menjalankan makepkg atau untuk membangun paket pacman-staticAUR (misalnya, karena pustaka yang hilang atau tidak kompatibel). Dalam hal ini, Anda dapat mengunduh biner pacman-static yang telah dikompilasi sebelumnya dari sumber tepercaya. Biner statis ini tidak bergantung pada pustaka sistem dan dapat digunakan untuk memulihkan pacman yang berfungsi pada sistem Anda.

Sumber yang andal untuk biner tersebut adalah [3](https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/pacman-static)

Unduh biner tersebut, jadikan dapat dieksekusi, lalu:

    # ./pacman-static -Syu pacman

Ini akan memperbarui sistem Anda dan menginstal ulang pacman, memperbaiki dependensi yang rusak terkait dengan pustaka bersama yang hilang.

#### Menggunakan pacman eksternal

Jika bahkan pacman-static tidak berfungsi, pemulihan dapat dilakukan menggunakan pacman eksternal. Salah satu metode termudah untuk melakukannya adalah dengan menggunakan archiso dan cukup menggunakan `--sysroot` atau `--root` untuk menentukan titik kait (mount point) dari sistem tempat operasi akan dilakukan. Lihat Chroot#Using chroot tentang cara mengaitkan sistem file yang diperlukan oleh `--sysroot`.

#### Dengan ekstraksi manual

Warning Sangat mudah untuk merusak sistem Anda menjadi lebih buruk menggunakan pendekatan ini. Gunakan ini hanya sebagai upaya terakhir jika metode dari #pacman macet saat pembaruan bukan merupakan pilihan.

Bahkan jika pacman sangat rusak, Anda dapat memperbaikinya secara manual dengan mengunduh paket-paket terbaru dan mengekstraknya ke lokasi yang benar. Langkah-langkah kasarnya adalah:

1. Tentukan dependensi pacman yang akan diinstal
2. Unduh setiap paket dari mirror pilihan Anda
3. Ekstrak setiap paket ke root
4. Instal ulang paket-paket ini dengan `pacman -S --overwrite` untuk memperbarui basis data paket sebagaimana mestinya
5. Lakukan pembaruan sistem secara penuh

Jika Anda memiliki sistem Arch yang sehat, Anda dapat melihat daftar lengkap dependensi dengan:

    $ pacman -Q $(pactree -u pacman)

Tetapi Anda mungkin hanya perlu memperbarui beberapa di antaranya saja tergantung pada masalah Anda. Contoh mengekstrak paket adalah:

    # tar -xvpwf package.tar.zst -C / --exclude .PKGINFO --exclude .INSTALL --exclude .MTREE --exclude .BUILDINFO

Perhatikan penggunaan bendera `w` untuk mode interaktif. Menjalankan secara non-interaktif sangat berisiko karena Anda mungkin akan menimpa file penting. Berhati-hatilah juga untuk mengekstrak paket dalam urutan yang benar (yaitu dependensi terlebih dahulu). Utas forum ini berisi contoh proses di mana hanya beberapa dependensi pacman yang rusak.

### Kesalahan "Unable to find root device" setelah reboot

Kemungkinan besar initramfs menjadi rusak selama pembaruan kernel (penggunaan opsi `--overwrite` pada pacman yang tidak tepat bisa menjadi penyebabnya). Ada dua pilihan; pertama, coba entri Fallback.

Tip Jika Anda menghapus entri Fallback, Anda selalu dapat menekan tombol `Tab` saat menu boot loader muncul (untuk Syslinux) atau `e` (untuk GRUB atau systemd-boot), ganti namanya menjadi `initramfs-linux-fallback.img` dan tekan `Enter` atau `b` (tergantung pada boot loader Anda) untuk melakukan booting dengan parameter baru.

Setelah sistem menyala, jalankan perintah ini (untuk kernel linux bawaan) baik dari konsol maupun dari terminal untuk membangun ulang citra (image) initramfs:

    # mkinitcpio -p linux

Jika hal itu tidak berhasil, gunakan rilis Arch terbaru (CD/DVD atau USB stick), lalu kaitkan partisi root dan boot Anda masing-masing ke `/mnt` dan `/mnt/boot`. Kemudian lakukan chroot menggunakan arch-chroot:

    # arch-chroot /mnt
    # pacman -Syu mkinitcpio systemd linux

Note

- Jika Anda tidak memiliki rilis terbaru atau jika Anda hanya memiliki distribusi Linux "live" lainnya, Anda dapat melakukan chroot menggunakan cara lama. Tentunya, akan ada lebih banyak pengetikan daripada sekadar menjalankan skrip `arch-chroot`.
- Jika `pacman` gagal dengan pesan `Could not resolve host`, silakan periksa koneksi internet Anda.
- Jika Anda tidak dapat masuk ke lingkungan arch-chroot atau chroot tetapi perlu menginstal ulang paket, Anda dapat menggunakan perintah `pacman --sysroot /mnt -Syu foo bar` untuk menggunakan `pacman` pada partisi root Anda.

Menginstal ulang kernel (paket linux) secara otomatis akan menghasilkan ulang citra initramfs dengan `mkinitcpio -p linux`. Tidak perlu melakukannya secara terpisah.

Setelah itu, disarankan agar Anda menjalankan `exit`, `umount /mnt/{boot,}` dan `reboot`.

### Kesalahan "Warning: current locale is invalid; using default "C" locale"

Seperti yang dinyatakan dalam pesan kesalahan tersebut, lokal (locale) Anda tidak dikonfigurasi dengan benar. Lihat Locale.

### Pesan peringatan lokal yang hilang

Ketika file lokal sengaja dihapus oleh alat seperti bleachbit atau localepurgeAUR, `pacman` mungkin mengeluarkan peringatan tentang lokal yang hilang selama pembaruan paket.

Untuk menyembunyikan peringatan ini, Anda dapat menonaktifkan opsi `CheckSpace` di `pacman.conf` dengan menjadikannya komentar. Perlu diingat bahwa menonaktifkan CheckSpace akan mematikan fungsi pemeriksaan ruang disk untuk semua instalasi paket, jadi gunakan solusi ini hanya jika Anda memiliki cara alternatif untuk memantau ruang disk.

### pacman tidak mematuhi pengaturan proksi

Pastikan variabel lingkungan yang relevan (`$http_proxy`, `$ftp_proxy` dll.) telah diatur. Jika Anda menggunakan pacman dengan sudo, Anda perlu mengonfigurasi sudo untuk meneruskan variabel lingkungan ini ke pacman. Selain itu, pastikan konfigurasi dirmngr memiliki `honor-http-proxy` di dalam `/etc/pacman.d/gnupg/dirmngr.conf` agar mematuhi proksi saat menyegarkan kunci.

### Bagaimana cara menginstal ulang semua paket, dengan tetap mempertahankan informasi apakah sesuatu diinstal secara eksplisit atau sebagai dependensi?

Untuk menginstal ulang semua paket asli (native): `pacman -Qnq | pacman -S -` atau `pacman -S $(pacman -Qnq)` (opsi `-S` mempertahankan alasan instalasi secara default).

Anda kemudian perlu menginstal ulang semua paket asing (foreign), yang dapat didaftar dengan `pacman -Qmq`.

### Kesalahan "Cannot open shared object file"

Tampaknya transaksi pacman sebelumnya telah menghapus atau merusak pustaka bersama (shared libraries) yang dibutuhkan oleh pacman itu sendiri.

Untuk memulihkan kondisi ini, Anda perlu mengekstrak pustaka yang dibutuhkan ke sistem file Anda secara manual. Pertama, cari paket mana yang berisi pustaka yang hilang tersebut, lalu temukan paketnya di cache pacman (`/var/cache/pacman/pkg/`). Ekstrak pustaka bersama yang dibutuhkan ke sistem file. Hal ini akan memungkinkan pacman untuk berjalan kembali.

Sekarang Anda perlu menginstal ulang paket yang rusak tersebut. Perhatikan bahwa Anda perlu menggunakan bendera `--overwrite` karena Anda baru saja mengekstrak file sistem secara manual dan pacman tidak mengetahuinya. pacman akan mengganti file pustaka bersama tersebut dengan yang berasal dari paket secara benar.

Selesai. Perbarui sisa sistem lainnya.

### Pengunduhan paket membeku (freeze)

Beberapa masalah telah dilaporkan terkait gangguan jaringan yang mencegah pacman memperbarui/menyinkronkan repositori. [4] [5] Saat menginstal Arch Linux secara native, masalah ini telah diselesaikan dengan mengganti pengunduh file bawaan pacman dengan alternatif lain (lihat Improve pacman performance untuk rincian lebih lanjut). Saat menginstal Arch Linux sebagai OS tamu di VirtualBox, masalah ini juga telah diatasi dengan menggunakan Host interface alih-alih NAT pada properti mesin.

### Gagal mengambil file 'core.db' dari mirror

Jika Anda menerima pesan kesalahan ini padahal mirrors sudah benar, cobalah mengatur nama server (name server) yang berbeda.

### error: 'local-package.pkg.tar': permission denied

Jika Anda ingin menginstal paket pada pemasangan sshfs menggunakan `pacman -U` dan menerima kesalahan ini, pindahkan paket tersebut ke direktori lokal dan coba instal kembali.

### error: could not determine cachedir mount point /var/cache/pacman/pkg

Saat mengeksekusi, misalnya, `pacman -Syu` di dalam lingkungan chroot, terjadi kesalahan:

    error: could not determine cachedir mount point /var/cache/pacman/pkg
    error: failed to commit transaction (not enough free disk space)

Hal ini sering kali disebabkan karena direktori chroot bukanlah sebuah mountpoint saat chroot dimasuki. Lihat catatan pada Install Arch Linux from existing Linux#Downloading basic tools untuk solusinya, dan arch-chroot(8) untuk penjelasan serta contoh penggunaan bind mounting guna menjadikan direktori chroot sebagai mountpoint.

### error: GPGME error: No data

Jika Anda tidak dapat memperbarui paket dan menerima kesalahan ini, cobalah `rm -r /var/lib/pacman/sync/` sebelum mencoba memperbarui kembali.

Jika menghapus file sinkronisasi tidak membantu, periksa apakah file sinkronisasi tersebut merupakan `gzip compressed data` menggunakan `file /var/lib/pacman/sync/*` sebelum mencoba memperbarui. Router atau proksi mungkin merusak unduhan tersebut. Kerusakan tersebut kemungkinan bertipe HTML.

Jika file sinkronisasi memiliki tipe yang benar, mungkin ada masalah dengan server mirror. Cari server mirror yang sedang digunakan dengan `pacman-conf -r core` dan `pacman-conf -r extra`. Tempelkan URL pertama yang dikembalikan ke peramban dan periksa apakah daftar file ditampilkan. Jika mirror mengembalikan kesalahan, berikan komentar (nonaktifkan) pada mirror tersebut di `/etc/pacman.d/mirrorlist`. Anda dapat mencoba memperbarui atau mengurutkan ulang mirrors.

### error: GPGME error: General error dan ":: File /var/cache/pacman/pkg/<package>.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).

Jika kesalahan ini terjadi dan Anda, misalnya, sama sekali tidak dapat memperbarui sistem atau paket apa pun, ada kemungkinan Anda telah mengatur `DISPLAY` ke nilai kosong, yang tampaknya merusak alur GPG.

Dalam kasus ini, melakukan `unset DISPLAY` atau mengaturnya ke nilai sembarang kemungkinan besar akan memungkinkan pembaruan kembali, jika opsi lain di atas belum berhasil. Lihat kiriman ini untuk rincian lebih lanjut.

### Menginstal ulang paket yang rusak atau tidak sinkron

Seseorang dapat menggunakan `pacman -Qk $pkg` untuk memeriksa apakah file terinstal dari paket `$pkg` sesuai dengan file dari versi basis datanya. Untuk beberapa paket sekaligus, seseorang dapat menggunakan loop berikut untuk menginstal ulang semua paket yang memiliki file yang hilang:

    # LC_ALL=C.UTF-8 pacman -Qk 2>/dev/null | grep -v ' 0 missing files' | cut -d: -f1 |
        while read -r package; do
            pacman -S "$package" --noconfirm
        done

Misalkan basis data lokal Anda yang terletak di `/var/lib/pacman` lebih mutakhir dibandingkan dengan paket yang terinstal di sistem file `/` (misalnya, karena adanya rollback parsial), maka metode ini adalah cara yang tepat untuk menyinkronkan ulang sistem file root dengan basis data lokal.

## Lihat juga

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

Categories:

- Arch projects (Bahasa Indonesia)
- Package manager (Bahasa Indonesia)

Hidden categories:

- Pages or sections flagged with Template:Out of date
- Pages or sections flagged with Template:Expansion

pacman (Bahasa Indonesia)
Add topic