pacman (Bahasa Indonesia)

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 -Sy
u
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-hook
AUR
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.
pkgcacheclean
AUR
dan
pacleaner
AUR
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:
Inisialisasi transaksi jika tidak ada kunci basis data (database lock).
Pilih paket mana yang akan ditambahkan atau dihapus dalam transaksi tersebut.
Siapkan transaksi, berdasarkan bendera, dengan melakukan pemeriksaan integritas pada basis data sinkronisasi, paket, dan dependensinya.
Komit transaksi:
Jika berlaku, unduh paket (
_alpm_sync_load
).
Jika terdapat hook
PreTransaction
pacman
yang berlaku, hook tersebut akan dieksekusi.
Paket yang akan diganti, berkonflik, atau secara eksplisit ditargetkan untuk dihapus, akan dihapus.
Jika ada paket yang akan ditambahkan, maka setiap paket dikomit:
Jika paket memiliki skrip instalasi, fungsi
pre_install
-nya akan dieksekusi (atau
pre_upgrade
atau
pre_remove
dalam kasus paket yang diperbarui atau dihapus).
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
).
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').
Jika paket memiliki skrip instalasi, fungsi
post_install
-nya akan dieksekusi (atau
post_upgrade
atau
post_remove
dalam kasus paket yang diperbarui atau dihapus).
Jika terdapat hook
PostTransaction
pacman
pada akhir transaksi yang berlaku, hook tersebut akan dieksekusi.
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,
tomcat8
AUR
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
tomcat8
AUR
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.
Siapkan
USB flash installation medium
dan lakukan booting darinya.
Kaitkan
sistem file root serta
ESP
Anda.
Lakukan
arch-chroot
ke dalam sistem file root yang telah dikaitkan.
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:
Boot menggunakan
USB flash installation medium
Arch. Sebaiknya gunakan media terbaru agar versi
pacman
sesuai dengan/lebih baru dari sistem.
Kaitkan sistem file root sistem, misalnya,
mount /dev/sdaX /mnt
sebagai root, dan periksa apakah pemasangan memiliki ruang yang cukup dengan
df -h
.
Kaitkan juga sistem file proc, sys, dan dev:
mount -t proc proc /mnt/proc; mount --rbind /sys /mnt/sys; mount --rbind /dev /mnt/dev
.
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
.
Setelah pembaruan, salah satu cara untuk memeriksa ulang paket yang tidak diperbarui tetapi masih rusak:
find /mnt/usr/lib -size 0
.
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-static
AUR
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-static
AUR
(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:
Tentukan dependensi
pacman
yang akan diinstal
Unduh setiap paket dari
mirror
pilihan Anda
Ekstrak setiap paket ke root
Instal ulang paket-paket ini dengan
pacman -S --overwrite
untuk memperbarui basis data paket sebagaimana mestinya
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
localepurge
AUR
,
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)