(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 list
konteks. 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 fedora
pada diinstal daftar, karena setiap paket ada menunjukkan beberapa @ -repo sebagai sumbernya. (Anda dapat memverifikasi bahwa dengan menjalankan sudo dnf list installed
dan 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 @fedora
dalam 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, @@commandline
dalam dnf list
daftar hanya menunjukkan paket yang diinstal From repo: @commandline
, repo yang membingungkan diberi nama yang dimulai dengan tanda @ sendiri.
dnf info
pada setiap paket yang terinstal akan ditampilkan Repository: @System
, yang merupakan @
repo virtual yang dinamai lainnya . Tampaknya itu @System
adalah 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 @commandline
dan @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 @commandline
digunakan. Saya tidak lagi melihat setiap paket yang diinstal terdaftar sebagai dari @@System
, dan out-of-band menginstal memang akan sekarang menunjukkan From repo: @commandline
( @@commandline
dalam konteks daftar). dnf info
pada 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 remi
repo), 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 fedora
repo 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 @commandline
sebagai 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 info
menunjukkan bahwa mereka tidak lagi memiliki setiap sumber repo. Misalnya, sitecopy
adalah paket Fedora yang sejak itu sudah pensiun. Saya menginstalnya dari fedora
atau updates
repo 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 installed
akan 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
--showduplicates
akan memaksa bagian "Paket yang Tersedia" yang mencakup semua contoh yang diketahui, terlepas dari versi, apakah diinstal atau dapat diunduh.)
dnf
sangat 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.