(Penafian: Saya tidak dapat memberikan sumber untuk semua ini, karena saya belum pernah melihat dokumentasi yang benar-benar membahas hal-hal ini. Informasi yang harus diikuti hanyalah apa yang saya dapat suss melalui inspeksi, eksperimen blackbox, sembarangan coba-coba, dan dugaan lama yang polos. Juga, peringatan yang adil, terlalu banyak mengekspos sampai terlalu lama.)
DNF menambahkan @ untuk menunjukkan repo sebuah diinstal paket dipasang dari , di dnf listkonteks. Seperti yang Anda catat:
Saya sudah beberapa paket pada sistem saya diinstal dari repo @ Sistem, @ fedora (namun ada juga fedora tanpa @) dan hal-hal seperti @@ commandline.
Namun dalam kenyataannya, Anda tidak akan pernah melihat paket yang datang dari fedorapada diinstal daftar, karena setiap paket ada menunjukkan beberapa @ -repo sebagai sumbernya. (Anda dapat memverifikasi bahwa dengan menjalankan sudo dnf list installeddan memeriksa; tidak ada repo yang terdaftar tanpa setidaknya satu tanda @.) Ketika Anda melihat informasi paket dengan dnf info, " From repo:" bidang akan menunjukkan nama repo tanpa @. (" From repo: fedora" Jadi sangat mungkin, dan setara dengan @fedoradalam daftar yang diinstal.)
Tetapi beberapa repo diberi nama dengan @tanda di depan. Seperti yang ditemukan JohnKoch di sumber hawkey, "@commandline" didefinisikan sebagai "nama repo" untuk "repo baris perintah". Jadi, @@commandlinedalam dnf listdaftar hanya menunjukkan paket yang diinstal From repo: @commandline, repo yang membingungkan diberi nama yang dimulai dengan tanda @ sendiri.
dnf infopada setiap paket yang terinstal akan ditampilkan Repository: @System, yang merupakan @repo virtual yang dinamai lainnya . Tampaknya itu @Systemadalah repo virtual yang memegang set paket yang saat ini diinstal, dan repo sumber@commandline virtual dari mana sebuah paket datang, ketika itu tidak berasal dari repo apa pun.
Arti @commandlinedan @System, dan hubungan mereka satu sama lain, tampaknya telah berubah sejak saya pertama kali menulis jawaban ini. Dalam beberapa hal itu lebih konsisten, dan mengatasi beberapa keberatan saya sebelumnya tentang bagaimana @commandlinedigunakan. Saya tidak lagi melihat setiap paket yang diinstal terdaftar sebagai dari @@System, dan out-of-band menginstal memang akan sekarang menunjukkan From repo: @commandline( @@commandlinedalam konteks daftar). dnf infopada paket out-of-band yang diinstal biasanya menunjukkan sesuatu seperti berikut:
$ dnf info remi-release
Installed Packages
Name : remi-release
---✀---
Repository : @System
From repo : @commandline
Jika saya melakukan dnf reinstall remi-release(karena paket tersebut dalam remirepo), itu berubah menjadi:
$ dnf info remi-release
Installed Packages
Name : remi-release
---✀---
Repository : @System
From repo : remi
Satu hal lain tentang repo sumber: Repo yang terdaftar di From repo:bidang selalu repo yang ada dalam konteks repo saat ini . Dengan kata lain, sumber instalasi suatu paket bukan hanya string yang berisi nama repo; paket yang diinstal dikaitkan dengan identitas repo yang menyediakan sebagaimana ada (atau ada) dalam sistem.
Karena kebanyakan repo adalah versi distro, mereka diredefinisi dengan setiap rilis Fedora baru. (Seperti misalnya fedorarepo menjadi set paket yang membentuk rilis baru, repo yang sama sekali berbeda dari " fedora" yang ada pada rilis sebelumnya.) Jadi, setiap kali upgrade sistem dilakukan, banyak identitas repo lama batal.
DNF (atau hawkey) digunakan untuk membuang paket yang diinstal dari repo yang tidak lagi ada @commandlinesebagai sumber repo mereka. Saya katakan "dulu", karena itu (untungnya) tidak lagi dilakukan. Paket terinstal yang berasal dari repo yang tidak ada lagi tidak akan lagi menunjukkan sumbernya sebagai @@commandline/ From repo: @commandline. Bahkan, dnf infomenunjukkan bahwa mereka tidak lagi memiliki setiap sumber repo. Misalnya, sitecopyadalah paket Fedora yang sejak itu sudah pensiun. Saya menginstalnya dari fedoraatau updatesrepo 7 atau 8 rilis yang lalu, dan masih menginstalnya:
$ dnf info sitecopy
Installed Packages
Name : sitecopy
Version : 0.16.6
Release : 14.fc22
Architecture : x86_64
Size : 373 k
Source : sitecopy-0.16.6-14.fc22.src.rpm
Repository : @System
Tidak ada yang From repo:terdaftar.
Hal ini membingungkan berarti bahwa dnf list installedakan menunjukkan bahwa paket (dan lain-lain seperti itu) dengan @System(satu @) tercantum di samping itu. Jadi dalam beberapa hal kami baru saja menukar satu inkonsistensi dengan yang lain, karena kolom itu tidak lagi selalu menjadi sumber repo dengan @prepended. Tetap saja, saya lebih suka keadaan saat ini.
Catatan kaki
- "... yang ditampilkan ..."
(Terkadang ditampilkan. "Paket yang Tersedia" tidak selalu muncul di setiap proses dnf list: Jika versi paket yang terinstal adalah versi terbaik yang tersedia, itu terdaftar di bawah "Paket Terpasang" jadi akan berlebihan untuk juga mendaftar di bawah "Paket yang Tersedia". Menggunakan
--showduplicatesakan memaksa bagian "Paket yang Tersedia" yang mencakup semua contoh yang diketahui, terlepas dari versi, apakah diinstal atau dapat diunduh.)
dnfsangat sunyi tentang ini. Misalkan '@' menunjukkan paket yang diinstal, apakah '@@' berarti itu diinstal secara manual dari sumber non-repo, mungkin? Saya benar-benar berharap seseorang akan mengklarifikasi.