Bagaimana saya bisa menentukan apakah suatu paket adalah paket meta dari baris perintah, mungkin melalui apt-get, aptitude atau apt-cache?
Saya telah mencoba:
apt-cache show texlive-full
apt-cache showpkg texlive-full
tetapi satu-satunya cara saya dapat mengatakan paket ini adalah meta adalah dengan membaca bidang "en-description".
Apakah ada cara yang lebih otomatis untuk melakukan ini, yang akan memberi saya jawaban ya / tidak, atau setidaknya memiliki bidang seperti "en-description" yang didedikasikan untuk ini?
package-management
metapackages
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber
sumber
Jawaban:
Tidak ada definisi formal dari metapackage. Definisi informal adalah bahwa metapackage adalah salah satu yang hanya dimaksudkan untuk diinstal untuk dependensinya dan tidak mengandung file yang berguna.
Anda dapat mendefinisikan metapackage sebagai paket yang tidak mengandung file. Tidak ada cara untuk menentukan ini dari basis data paket. Anda dapat menggunakan basis data file dan memeriksa bahwa paket hanya berisi direktori (banyak paket semacam itu mengandung beberapa direktori). Bahkan, sebagian besar metapackage berisi beberapa file di
/usr/share/doc/<package name>
:copyright
file, changelog, kadang-kadang beberapa file lagi. Berikut ini perkiraan yang mendefinisikan metapackage sebagai hanya berisi file di/usr/share/doc/<some directory>
(bukan dalam subdirektori dari itu) dan direktori utama:Pendekatan lain adalah untuk mencari tag paket dengan
debtags
. Ada beberapa tag yang biasa digunakan pada metapackages.Pendekatan lain adalah mencari paket dengan ukuran kecil. Setiap direktori dihitung sebagai 4 kB, jadi rencanakan sesuai saat memilih ambang (sekali lagi, ini adalah perkiraan).
Setelah refleksi, saya bertanya-tanya apakah maksud Anda paket virtual daripada metapackages. Paket virtual sebenarnya bukan paket tetapi nama paket yang digunakan dalam
Provides:
bidang. Anda dapat mendaftarkannya denganaptitude search '~v'
. Berjalanapt-cache show
pada satu tampilan "Tidak dapat memilih versi dari paket 'zcav' karena ini murni virtual". Menjalankanaptitude show
daftar paket-paket yang menyediakannya. Cara mudah untuk menunjukkan paket virtual adalah denganapt-cache
: ini mencetak satu baris untuk paket non-virtual dan berpotensi beberapa baris (satu untuk setiap penyedia) untuk paket virtual - Anda dapat mengetahui apakah paket tersebut virtual bahkan jika ada satu penyedia karena nama penyedia berbeda.sumber
apt-get autoremove
,aptitude (un)markauto
, yangM
perintah dalam antarmuka interaktif bakat.apt-get install texlive-full
,apt-get purge texlive-full; apt-get autoremove
tidak menghapus semua dependensi yang diinstal. Saya membaca di suatu tempat bahwa ini karena texlive-full adalah metapackage, dan ini adalah perilaku normal dari metapackage, tapi mungkin ini salah. aptitude di sisi lain tampaknya menghapus dependensi yang diinstal secara otomatis dengan baik.Anda bisa mencoba masuk
yang akan memberi Anda daftar panjang, dan kemudian gunakan
grep
untuk, katakanlah tunjukkan semua metapackages yang berhubungan dengan sainsIni akan menghasilkan daftar panjang (saya telah mempersingkatnya di sini)
Anda dapat menggunakan sejumlah alternatif untuk sains, seperti
KDE
untuk menemukan semuaKDE
metapackage.Ini mungkin tentang hal terbaik yang dapat Anda lakukan
apt-cache
, tetapi harus dengan cepat menemukan sebagian besar paket metap yang ingin Anda temukan. Jika tidak menemukan semua yang Anda cari, hal paling sederhana adalah dengan melihat di bagian metapackage diSynaptic
.sumber