Panduan ini menjelaskan apa itu Apk manajer paket dan cara melakukan berbagai operasi manajemen paket Alpine Linux menggunakan manajer paket baris perintah Apk dengan contoh.
Pengantar singkat tentang pengelola paket apk
Apk, singkatan dari A lpin P ackage K eeper, adalah manajer paket default untuk Alpine Linux. Ini digunakan untuk menginstal, memperbarui, meningkatkan, mencari, membuat daftar, dan menghapus paket pada sistem Linux Alpine yang sedang berjalan. Apk adalah bagian dari apk-tools
paket yang sudah diinstal sebelumnya di semua versi Alpine Linux.
Apk mengambil paket serta informasi tentang paket yang tersedia di repositori online. Setiap repositori berisi file indeks khusus, bernama APKINDEX.tar.gz
. Semua paket perangkat lunak yang disimpan dalam repositori ditandatangani secara digital tar.gz
arsip. Mereka memiliki ekstensi .apk
, dan sering disebut "paket" .
Mulai dari Alpine Linux versi 3.3, ada dua repositori yang diaktifkan secara default. Mereka adalah - main
dan community
.
[main]
repositori terdiri dari paket-paket yang diuji secara menyeluruh dan didukung secara resmi oleh tim inti Alpine Linux. [community]
repositori berisi paket yang didukung komunitas yang diterima dari [testing]
atau [edge]
gudang. [testing]
repositori biasanya memiliki paket baru, rusak dan/atau usang. Tidak ada dukungan yang diberikan untuk repositori ini dan tidak termasuk dalam snapshot rilis.
Semua repositori dikonfigurasi di /etc/apk/repositories
mengajukan. Mari kita lihat isi file ini menggunakan cat
perintah:
$ cat /etc/apk/repositories
Contoh keluaran:
https://sjc.edge.kernel.org/alpine/edge/main
https://sjc.edge.kernel.org/alpine/edge/community
Setiap baris dalam file di atas menunjukkan repositori. Seperti yang Anda lihat pada output di atas, saya telah mengaktifkan [edge]
repositori, jadi ini adalah versi rilis bergulir.
Jika Anda menggunakan rilis stabil, Anda seharusnya melihat nomor versi, misalnya v3.12
, seperti di bawah ini:
https://sjc.edge.kernel.org/alpine/v3.12/main
https://sjc.edge.kernel.org/alpine/v3.12/community
Contoh perintah APK untuk menginstal dan mengelola paket di Alpine Linux
Manajemen paket menggunakan apk di Alpine Linux cukup sederhana dan mudah. Apk tidak menyertakan banyak opsi dan sintaksnya lebih mudah diingat.
Penggunaan khas pengelola paket apk adalah:
apk [<OPTIONS>...] COMMAND [<ARGUMENTS>...]
Mari saya tunjukkan beberapa perintah penting untuk operasi sehari-hari.
1. Tampilkan bantuan perintah apk
Jika Anda baru mengenal apk, Anda dapat melihat bagian bantuan perintah apk kapan saja dengan menjalankan perintah ini:
$ apk --help
apk memiliki banyak sub-perintah untuk melakukan operasi tertentu. Untuk menampilkan bagian bantuan dari sub-perintah, jalankan:
$ apk add --help
2. Perbarui daftar paket di Alpine Linux
Untuk mendapatkan daftar paket yang tersedia di repositori Alpine Linux, cukup jalankan:
$ sudo apk update
Contoh keluaran:
fetch https://sjc.edge.kernel.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch https://sjc.edge.kernel.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
v20201218-310-g44bdae590f [https://sjc.edge.kernel.org/alpine/edge/main]
v20201218-333-ga9f7a8a644 [https://sjc.edge.kernel.org/alpine/edge/community]
OK: 13780 distinct packages available
Seperti yang Anda lihat pada output di atas, saat ini ada 13780 paket yang tersedia di repositori Alpine. Harap dicatat bahwa ini bukan jumlah total paket yang diinstal secara lokal tetapi jumlah total paket yang tersedia.
3. Instal paket di Alpine Linux
Untuk menambah atau menginstal paket, misalnya vim , di Alpine Linux, jalankan saja:
$ sudo apk add vim
Perintah di atas akan menginstal vim dan dependensinya.
(1/3) Installing xxd (8.2.2137-r0)
(2/3) Installing lua5.3-libs (5.3.6-r0)
(3/3) Installing vim (8.2.2137-r0)
Executing busybox-1.32.0-r8.trigger
OK: 163 MiB in 87 packages
Demikian pula, Anda dapat menambahkan beberapa paket dengan menyebutkannya dengan spasi seperti di bawah ini:
$ sudo apk PackageName1 PackageName2
3.1. Instal paket lokal
Jika Anda sudah mengunduh paket, Anda dapat menginstalnya seperti di bawah ini.
$ sudo apk add --allow-untrusted vim-8.2.2137-r0.apk
Anda juga dapat menginstal beberapa paket:
$ sudo apk add --allow-untrusted PackageName1.apk PackageName2.apk PackageName3.apk
4. Hapus paket di Alpine Linux
Untuk menghapus atau menghapus paket yang diinstal dari sistem Alpine Linux Anda, jalankan:
$ sudo apk del vim
Perintah ini akan menghapus vim dan dependensinya.
(1/3) Purging vim (8.2.2137-r0)
(2/3) Purging xxd (8.2.2137-r0)
(3/3) Purging lua5.3-libs (5.3.6-r0)
Executing busybox-1.32.0-r8.trigger
OK: 144 MiB in 84 packages
Jika Anda ingin menghapus beberapa paket, sebutkan dengan dipisahkan spasi.
5. Cari paket di Alpine Linux
Repositori Alpine Linux berisi lebih dari 13.000 paket. Anda dapat membuat daftar semua paket yang tersedia, beserta deskripsinya, menggunakan perintah:
$ apk search -v
Contoh keluaran:
kleopatra-20.08.3-r0 - Certificate Manager and Unified Crypto GUI
py3-libevdev-0.9-r0 - Python3 wrapper around the evdev library
telepathy-farstream-dev-0.6.2_git20190919-r0 - Telepathy GLib-based client library that uses Farstream to handle Call channels (development files)
vulkan-loader-1.2.137-r0 - Vulkan Installable Client Driver (ICD) Loader
mtd-utils-ubi-2.1.2-r0 - MTD utils (UBI and UBIFS commands)
hwids-udev-20201207-r0 - Hardware identification databases (udev integration)
py3-rsa-4.6-r0 - Pure-Python3 RSA implementation
[...]
Untuk hanya menampilkan jumlah total paket, pipa output ke wc
perintah seperti di bawah ini:
$ apk search -v | wc -l
Anda juga bisa mendapatkan daftar semua paket yang cocok dengan suatu pola. Misalnya, perintah berikut akan menampilkan semua paket yang cocok dengan istilah pencarian "vim".
$ apk search -v 'vim*'
Jika Anda hanya ingin menampilkan paket yang berisi istilah tertentu dalam deskripsi , jalankan:
$ apk search -v --description 'disk'
Atau, segera gunakan -d
beralih:
$ apk search -v -d 'disk'
6. Menampilkan detail paket di Alpine Linux
Untuk menampilkan detail paket tertentu, kita dapat menggunakan info
perintah seperti di bawah ini:
$ apk info vim
Anda akan melihat deskripsi kecil dari paket yang diberikan dan situs web tempat paket tersebut dihosting.
Contoh keluaran:
vim-8.2.2137-r0 description:
Improved vi-style text editor
vim-8.2.2137-r0 webpage:
https://www.vim.org/
vim-8.2.2137-r0 installed size:
18 MiB
gvim-8.2.2137-r0 description:
advanced text editor, with GUI
gvim-8.2.2137-r0 webpage:
https://www.vim.org/
gvim-8.2.2137-r0 installed size:
29 MiB
Seperti yang Anda lihat, perintah ini tidak hanya mencantumkan detail paket vim tetapi juga detail paket lain yang berisi pola "vim" dalam namanya.
Jika Anda menginginkan informasi rinci tentang paket yang diberikan dan dependensinya, gunakan -a
bendera.
$ apk info -a vim
Perintah di atas akan menampilkan rincian sebagai berikut:
- deskripsi paket.
- situs web paket.
- ukuran terinstal (yaitu ukuran yang dibutuhkan oleh paket setelah diinstal).
- isi paket (yaitu daftar file yang diinstal oleh paket).
- dependensi paket yaitu paket apa yang diperlukan untuk menggunakan paket ini.
- paket apa yang membutuhkan paket ini untuk diinstal.
- dan banyak lagi.
7. Daftar paket yang diinstal di Alpine Linux
Untuk melihat daftar semua paket yang terinstal di sistem Alpine Linux Anda, jalankan:
$ apk info
Contoh keluaran:
lm_sensors
man
virtualbox-guest-modules-virt
musl
libcrypto1.1
libssl1.1
apk-tools
musl-utils
busybox
alpine-baselayout
[...]
Anda juga dapat membuat daftar paket yang diinstal dengan nomor versi dan deskripsinya:
$ apk info -vv
Contoh keluaran:
lm_sensors-3.4.0-r6 - Collection of user space tools for general SMBus access and hardware monitoring.
man-1.14.3-r0 - dummy package for upgrade compatibility. this can safely be removed
virtualbox-guest-modules-virt-4.14.167-r0 - VirtualBox Additions kernel modules for virt
musl-1.2.2_pre6-r0 - the musl c library (libc) implementation
libcrypto1.1-1.1.1i-r0 - Crypto library from openssl
libssl1.1-1.1.1i-r0 - SSL shared libraries
apk-tools-2.12.0-r3 - Alpine Package Keeper - package manager for alpine
musl-utils-1.2.2_pre6-r0 - the musl c library (libc) implementation
busybox-1.32.0-r8 - Size optimized toolbox of many common UNIX utilities
alpine-baselayout-3.2.0-r8 - Alpine base dir structure and init scripts
[...]
Daftar hanya jumlah total paket yang diinstal:
$ apk info | wc -l
87
8. Tingkatkan paket di Alpine Linux
Untuk meningkatkan versi paket tertentu, jalankan:
$ sudo apk update
$ sudo apk add -u vim
Atau,
$ sudo apk add --upgrade vim
Untuk meningkatkan semua paket yang diinstal, jalankan:
$ sudo apk update
$ sudo apk upgrade
Anda juga dapat menggabungkan perintah di atas menjadi seperti di bawah ini:
$ sudo apk -U upgrade
9. Tingkatkan Alpine Linux
Mengupgrade Alpine Linux yang sedang berjalan ke versi berikutnya yang tersedia sangatlah mudah! Alpine Linux hadir dalam dua edisi:
- stabil
- rilis bergulir (tepi)
Anda dapat meningkatkan versi dari versi stabil saat ini ke versi yang lebih baru atau mengonversi versi stabil menjadi versi rilis bergulir.
Petunjuk lebih rinci tersedia dalam panduan berikut:
- Cara Mengupgrade Alpine Linux Ke Versi Terbaru
10. Tahan paket dari peningkatan
Terkadang, Anda ingin mencegah atau menahan paket agar tidak dimutakhirkan secara otomatis karena alasan tertentu saat memutakhirkan sistem Alpine Linux Anda. Mungkin ada banyak alasan untuk menahan paket. Misalnya, versi tertentu diperlukan oleh aplikasi agar berfungsi dengan baik. Atau paket baru dapat merusak sistem Anda. Jadi, Anda ingin mengabaikan paket agar tidak ditingkatkan saat Anda meningkatkan sistem.
Untuk menahan paket tertentu dari peningkatan, gunakan salah satu dari perintah berikut:
$ sudo apk add vim=8.2.0-r0
Atau,
$ sudo apk add 'vim<8.2.1'
Kemudian lakukan upgrade sistem menggunakan perintah:
$ sudo apk upgrade
Perintah ini akan memutakhirkan semua paket tetapi menyimpan paket vim pada versi 8.2.0 atau lebih rendah.
Nanti Anda dapat mengupgrade paket vim ke versi yang tersedia saat ini seperti di bawah ini:
$ sudo apk add 'vim>8.2.1'
Anda juga dapat menggunakan pencocokan versi "fuzzy" untuk menyematkan versi ke rilis mayor/minor. Misalnya, perintah berikut akan cocok dengan versi vim apa pun yang dimulai dengan 8.2.
$ sudo apk add 'vim=~8.2'
Bacaan terkait:
- Cara Mengabaikan Paket Agar Tidak Diupgrade di Arch Linux
- Cara Mencegah Paket Dari Upgrade Di Debian, Ubuntu
11. Unduh paket di Alpine Linux
Terkadang, Anda ingin mengunduh paket tertentu tetapi tidak ingin menginstalnya. Sebagai contoh, mari kita unduh paket vim menggunakan perintah:
$ apk fetch vim
Perintah di atas akan menampilkan paket vim dari repositori Alpine dan menyimpannya di direktori saat ini.
$ ls
vim-8.2.2137-r0.apk
Jika Anda ingin menyimpan paket di jalur yang berbeda, gunakan -o
beralih.
$ apk fetch vim -o ~/Downloads
Harap dicatat bahwa perintah ini tidak akan mengunduh semua dependensi yang diperlukan tetapi hanya paket yang sebenarnya.
Untuk mengunduh paket yang diberikan bersama dengan semua dependensi yang diperlukan, gunakan -R
(--recursive
) bendera:
$ apk fetch -R vim
Contoh keluaran:
Downloading xxd-8.2.2137-r0
Downloading ncurses-libs-6.2_p20201219-r0
Downloading musl-1.2.2_pre6-r0
Downloading lua5.3-libs-5.3.6-r0
Downloading vim-8.2.2137-r0
Downloading ncurses-terminfo-base-6.2_p20201219-r0
Anda dapat menginstal paket yang diunduh secara lokal seperti yang ditunjukkan pada 3.1. Instal paket lokal bagian.
12. Menampilkan detail repositori dari sebuah paket
Anda mungkin ingin menemukan dari repositori mana sebuah paket berasal. Apk memiliki sub-perintah untuk itu juga.
Untuk menampilkan repositori sebuah paket (Misalnya vim
) telah diinstal dari dan akan diperbarui dari, gunakan apk policy
perintah:
$ apk policy vim
Contoh keluaran:
vim policy:
8.2.2137-r0:
lib/apk/db/installed
etc/apk/cache
https://sjc.edge.kernel.org/alpine/edge/main
Seperti yang Anda lihat, paket vim telah diinstal dari [main]
penyimpanan.
13. Tampilkan statistik paket dan repositori
Kami dapat mencetak statistik tentang paket yang diinstal dan repositori paket menggunakan perintah:
$ apk stats
Contoh keluaran:
installed:
packages: 87
dirs: 485
files: 9617
bytes: 171270144
triggers: 5
available:
names: 30975
packages: 13773
atoms:
num: 9761
14. Bersihkan cache paket
Secara default, semua paket yang diinstal di-cache di /etc/apk/cache/
direktori. Ketika paket yang lebih baru ditambahkan ke cache, versi paket yang lebih lama tetap secara default.
Jika Anda tidak menginginkan versi paket yang lebih lama, Anda cukup mengosongkan cache paket menggunakan perintah:
$ sudo apk cache clean
Jika Anda ingin melihat versi apa yang dihapus, gunakan sakelar -v (verbose):
$ sudo apk -v cache clean
Jika Anda tidak sengaja menghapus paket dari cache, Anda dapat mengunduhnya menggunakan perintah:
$ sudo apk cache download
Anda juga dapat menghapus cache dan mengunduh paket yang hilang dalam satu perintah:
$ sudo apk cache -v sync
Semoga membantu.