Debian

Ketergantungan Paket Debian

Ketergantungan Paket Debian
Untuk distribusi Linux seperti Debian GNU/Linux, terdapat lebih dari 60.000 paket perangkat lunak yang berbeda. Semuanya memiliki peran tertentu. Dalam artikel ini kami menjelaskan bagaimana manajemen paket secara andal mengelola sejumlah besar paket perangkat lunak ini selama instalasi, pembaruan, atau penghapusan agar sistem Anda tetap berfungsi dan sepenuhnya stabil.

Untuk Debian GNU/Linux, ini mengacu pada alat apt, apt-get, aptitude, apt-cache, apt-depends, apt-rdepends, dpkg-deb dan apt-mark.

Ketersediaan paket perangkat lunak

Seperti yang sudah dikatakan di atas, distribusi Linux terdiri dari banyak paket perangkat lunak yang berbeda. Sampai saat ini perangkat lunak cukup kompleks, dan itulah mengapa umum untuk membagi perangkat lunak menjadi beberapa paket tunggal. Paket-paket ini dapat dikategorikan berdasarkan fungsionalitas atau peran seperti paket biner, perpustakaan, dokumentasi, contoh penggunaan serta koleksi khusus bahasa dan menyediakan bagian perangkat lunak yang dipilih, hanya. Tidak ada aturan tetap untuk itu, dan pembagian dibuat oleh tim pengembangan alat, atau pengelola paket yang menangani paket perangkat lunak untuk distribusi Linux Anda. Menggunakan aptitude, Gambar 1 mencantumkan paket yang berisi terjemahan untuk berbagai bahasa untuk browser web Mozilla Firefox.

Gambar 1: aptitude-firefox.png

Cara kerja ini memungkinkan setiap paket dapat dikelola oleh pengembang yang berbeda atau sebagai seluruh tim. Selanjutnya, pembagian menjadi komponen tunggal memungkinkan paket perangkat lunak lain untuk menggunakannya untuk tujuan mereka sendiri juga. Fungsionalitas yang diperlukan dapat diterapkan dan tidak perlu diciptakan kembali.

Organisasi Paket

Alat manajemen paket pada distribusi Debian GNU/Linux selalu menjaga agar dependensi dari paket yang diinstal terpenuhi sepenuhnya. Hal ini terutama terjadi jika paket perangkat lunak dimaksudkan untuk diinstal, diperbarui, atau dihapus pada atau dari sistem Anda. Paket yang hilang ditambahkan ke sistem, atau paket yang diinstal dihapus dari sistem jika tidak lagi diperlukan. Gambar 2 menunjukkan ini untuk penghapusan paket 'mc-data' menggunakan 'apt-get'. Paket 'mc-data' merekomendasikan untuk secara otomatis menghapus paket 'mc' juga, karena tidak masuk akal lagi untuk diinstal tanpa 'mc-data'.

Gambar 2: apt-get-remove-mc.png

Tanda paket dan bendera

Selama bekerja, alat manajemen paket menghormati flag dan tanda paket yang ditetapkan. Mereka diatur secara otomatis, atau diatur secara manual oleh administrator sistem. Terutama perilaku ini mengacu pada bendera 'paket penting' yang disetel untuk paket yang tidak boleh dihapus. Peringatan yang jelas dikeluarkan sebelum Anda melakukannya (lihat Gambar 3).

Gambar 3: apt-get-remove.png

Juga, tiga tanda 'otomatis', 'manual' dan 'tahan' diperhitungkan are. Mereka menandai paket sebagai diinstal secara otomatis, diinstal secara manual, atau tidak boleh diperbarui (tahan versi saat ini). Paket perangkat lunak ditandai 'otomatis' atau 'manual' tetapi tidak keduanya.

Antara lain, perintah 'apt-mark' menangani tanda dan bendera menggunakan subperintah berikut:

Untuk membuat daftar semua paket yang diinstal secara manual, jalankan perintah ini:

$ apt-mark showmanual
abiword
panduan perut
ack-grep
acl
acpi

$

Untuk menahan versi paket, gunakan sub-perintah 'hold'. Contoh di bawah ini menunjukkan ini untuk paket 'mc'.

# apt-mark tahan mc
mc ditahan
#

Sub-perintah 'showhold' mencantumkan paket-paket yang ditahan (dalam kasus kami hanya paket 'mc'):

# showhold apt-mark
mc
#

Menggunakan metode alternatif berjudul 'penyematan tepat', paket diklasifikasikan berdasarkan prioritas. Apt menerapkannya untuk memutuskan bagaimana menangani paket perangkat lunak ini dan versi yang tersedia dari repositori perangkat lunak.

Deskripsi paket

Menggunakan metode alternatif berjudul 'penyematan tepat', paket diklasifikasikan berdasarkan prioritas. Apt menerapkannya untuk memutuskan bagaimana menangani paket perangkat lunak ini dan versi yang tersedia dari repositori perangkat lunak.

Setiap paket perangkat lunak dilengkapi dengan deskripsi paketnya sendiri yang distandarisasi. Di antara bidang lain, deskripsi ini secara eksplisit menentukan paket lebih lanjut mana yang bergantung padanya. Alat khusus distribusi mengekstrak informasi ini dari deskripsi paket, dan menghitung serta memvisualisasikan dependensi untuk Anda, lalu. Contoh selanjutnya menggunakan perintah 'apt-cache show' untuk menampilkan deskripsi paket dari paket 'poppler-utils' (lihat Gambar 4).

Gambar 4: deskripsi-paket-poppler-utils.png

Deskripsi paket berisi bagian yang disebut 'Tergantung'. Bagian ini mencantumkan paket perangkat lunak lain ditambah nomor versi yang bergantung pada paket saat ini. Pada Gambar 4 bagian ini dibingkai dengan warna merah dan menunjukkan bahwa 'poppler-utils' bergantung pada paket 'libpoppler64', 'libc6', 'libcairo2', 'libfreetype6', 'liblcms2-2', 'libstdc++6' dan 'zlib1g'.

Tampilkan dependensi paket

Membaca deskripsi paket adalah cara yang sulit untuk mengetahui dependensi paket. Selanjutnya, kami akan menunjukkan cara menyederhanakan ini.

Ada beberapa cara untuk menampilkan dependensi paket pada baris perintah. Untuk paket deb sebagai file lokal gunakan perintah 'dpkg-deb' dengan dua parameter - nama file paket, dan kata kunci 'Tergantung'. Contoh di bawah ini menunjukkan ini untuk paket 'skypeforlinux-64.deb':

$ dpkg-deb -f Unduhan/skypeforlinux-64.deb Tergantung
layanan gconf, libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.17),
libcairo2 (>= 1.2.4), libcups2 (>= 1.4.0), libexpat1 (>= 2.0.1),
libfreetype6 (>= 2.4.2), libgcc1 (>= 1:4.1.1), libgconf-2-4 (>= 3.2.5),
libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgtk2.0-0 (>= 2.24.0),
libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.13.4-2~), libpango-1.0-0 (>= 1.14.0),
libpangocairo-1.0-0 (>= 1.14.0), libsecret-1-0 (>= 0.7), libv4l-0 (>= 0.5.0),
libx11-6 (>= 2:1.4.99.1), libx11-xcb1, libxcb1 (>= 1.6), libxcomposite1 (>= 1:0.3-1),
libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3,
libxi6 (>= 2:1.2.99.4), libxrandr2 (>= 2:1.2.99.3), libxrender1, libxss1,
libxtst6, apt-transport-https, libfontconfig1 (>= 2.11.0), libdbus-1-3 (>= 1.6.18),
libstdc++6 (>= 4.8.1)
$

Untuk melakukan hal yang sama untuk paket yang diinstal, gunakan 'apt-cache'. Contoh pertama menggabungkan sub-perintah 'show' diikuti dengan nama paket. Output dikirim ke perintah 'grep' yang memfilter baris 'Tergantung':

$ apt-cache tampilkan xpdf | grep Tergantung
Tergantung: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libpoppler46 (>= 0.26.2),
libstdc++6 (>= 4.1.1), libx11-6, libxm4 (>= 2.3.4), libxt6
$

Perintah 'grep-status -F package -s Depends xpdf' akan melaporkan informasi yang sama.

Lebih spesifik, contoh kedua lagi menggunakan 'apt-cache' tetapi dengan subcommand 'depends', sebagai gantinya. Sub-perintah diikuti dengan nama paket:

$ apt-cache tergantung xpdf
xpdf
Tergantung: libc6
Tergantung: libgcc1
Tergantung: libpoppler46
Tergantung: libstdc++6
Tergantung: libx11-6
Tergantung: libxm4
Tergantung: libxt6
Merekomendasikan: poppler-utils
poppler-utils: i386
Merekomendasikan: poppler-data
Merekomendasikan: gsfonts-x11
Merekomendasikan: cangkir-bsd
cangkir-bsd:i386
bertabrakan dengan:
bertabrakan dengan:
bertabrakan dengan:
bertabrakan dengan:
Menggantikan:
Menggantikan:
Menggantikan:
Menggantikan:
Bertabrakan dengan: xpdf:i386
$

Daftar di atas cukup panjang, dan dapat dipersingkat menggunakan tombol '-i' (kependekan dari '-penting'):

$ apt-cache tergantung -i xpdf
xpdf
Tergantung: libc6
Tergantung: libgcc1
Tergantung: libpoppler46
Tergantung: libstdc++6
Tergantung: libx11-6
Tergantung: libxm4
Tergantung: libxt6
$

Perintah 'apt-rdepends' melakukan hal yang sama tetapi dengan informasi versi jika ditentukan dalam deskripsi:

$ apt-rtergantung xpdf
Membaca daftar paket… Selesai
Membangun pohon ketergantungan
Membaca informasi status… Selesai
xpdf
Tergantung: libc6 (>= 2.4)
Tergantung: libgcc1 (>= 1:4.1.1)
Tergantung: libpoppler46 (>= 0.26.2)
Tergantung: libstdc++6 (>= 4.1.1)
Tergantung: libx11-6
Tergantung: libxm4 (>= 2.3.4)
Tergantung: libxt6
libc6
Tergantung: libgcc1

$

Perintah 'aptitude' juga berfungsi dengan sakelar. Untuk dependensi, gunakan sakelar '~R' diikuti dengan nama paket. Gambar 5 menunjukkan ini untuk paket 'xpdf'. Huruf 'A' di kolom kedua dari output 'aptitude' mengidentifikasi paket tersebut sebagai yang diinstal secara otomatis.

Gambar 5: aptitude-rdepends.png

Ketergantungan paket bisa sedikit rumit. Mungkin membantu untuk menunjukkan dependensi paket secara grafis. Gunakan perintah 'debtree' diikuti dengan nama paket untuk membuat representasi grafis dari dependensi paket. Alat 'titik' dari paket Graphviz mengubah deskripsi menjadi gambar sebagai berikut:

$ debtree xpdf | titik -Tpng > grafik.png

Pada Gambar 6 Anda melihat gambar PNG yang dibuat yang berisi grafik ketergantungan.

Gambar 6: titik.png

Tunjukkan dependensi terbalik

Hingga saat ini kami menampilkan kami telah menjawab pertanyaan paket mana yang diperlukan untuk sebuah paket. Ada juga sebaliknya - yang disebut dependensi terbalik. Contoh berikut berhubungan dengan paket serta paket-paket yang bergantung padanya. Contoh nomor satu menggunakan 'apt-cache' dengan subcommand 'rdepends' sebagai berikut:

$ apt-cache rdepends xpdf
xpdf
Terbalik Tergantung:
|oktaf-dok
xpdf:i386
libfontconfig1:i386
|xmds-doc
xfe
wiipdf
|vim-latekssuite
python-scapy
|ruby-tioga
|python-tables-doc
| halaman-crunch
|oktaf-dok
|muttprint-manual
mozplugger
mlpost
libmlpost-ocaml-dev

$

Paket, yang bergantung pada paket lain ditandai dengan simbol pipa. Paket ini tidak perlu diinstal pada sistem Anda tetapi harus terdaftar dalam database paket.

Contoh berikutnya menggunakan 'aptitude' untuk membuat daftar paket yang memiliki referensi keras ke paket 'xpdf' (lihat Gambar 7).

Gambar 7: pencarian bakat.png

Validasi instalasi untuk paket yang hilang

'Apt-get' menawarkan sub-perintah 'periksa' yang memungkinkan untuk memvalidasi instalasi. Jika Anda melihat output berikut tidak ada paket yang hilang:

# cek apt-get
Membaca daftar paket… Selesai
Membangun pohon ketergantungan
Membaca informasi status… Selesai
#

Kesimpulan

Menemukan dependensi paket berfungsi dengan baik dengan alat yang tepat. Menggunakannya dengan benar membantu Anda memahami mengapa paket diinstal, dan paket mana yang mungkin hilang.

Tautan dan Referensi

Cara mengunduh dan Memainkan Civilization VI Sid Meier di Linux
Pengenalan permainan Civilization 6 adalah konsep modern dari konsep klasik yang diperkenalkan dalam seri game Age of Empires. Idenya cukup sederhana;...
Cara Menginstal dan Memainkan Doom di Linux
Pengantar Doom Seri Doom berasal dari tahun 90-an setelah rilis Doom. Itu adalah hit instan dan sejak saat itu seri game telah menerima banyak penghar...
Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...