Apakah dpkg Debian menyimpan waktu / tanggal perubahan paket (mis. Instalasi / pembersihan)?

8

Saya tahu itu dpkgdan dpkg-querymerupakan alat yang bagus untuk mencari tahu tentang paket yang saat ini diinstal pada sistem Debian. Selain informasi yang dicatat dalam file, /var/log/dpkg.log.*apakah ada tempat lain yang memungkinkan saya untuk mengetahui kapan perubahan terjadi (yaitu waktu dan tanggal pemasangan paket)?

Dengan asumsi bahwa pertanyaan ini di sini mengatakan bahwa sistem paket Debian tidak peduli tentang menyimpan informasi tentang asal-usul file deb (dan juga bagaimana seharusnya melakukannya?) Saya mulai berpikir bahwa itu /var/log/dpkg.log.*adalah satu-satunya tempat di mana informasi tentang kapan sesuatu yang dpkgterkait terjadi disimpan sama sekali.

Mungkin seseorang bisa mengkonfirmasi ini. Atau katakan kepada saya jika informasi waktu tentang instalasi paket disimpan (memang itu akan menjadi hebat!) Di mana menemukannya (file yang mana?).

humanityANDpeace
sumber

Jawaban:

5

/var/log/dpkg.logadalah satu-satunya file log yang ditinggalkan oleh dpkg itu sendiri. Ini mencatat paket mana yang diinstal, dihapus, ditingkatkan, dll. Ini hanya menunjukkan nama paket, versi dan tindakan: dpkg tidak tahu asal paket. Itu menunjukkan tanggal setiap tindakan.

Jika dpkg dipanggil oleh alat di suite APT ( apt-get, aptitude, Synaptic, ...), tindakan APT akan masuk /var/log/apt/history.logdan /var/log/apt/term.log. File tersebut apt/history.logberisi jenis informasi yang sama dengan dpkg.log. File ini apt/term.logberisi transkrip dari menjalankan dpkg (pra-dan pasca-instal dan -hapus skrip, jalankan dpkg, pemicu).

Aptitude juga menulis login serupa /var/log/aptitude. Log ini berisi tindakan yang aptitude coba, apakah mereka berhasil atau tidak.

Anda juga biasanya dapat menentukan kapan versi saat ini paket diinstal dengan memeriksa waktu /var/lib/dpkg/info/$package.*. File-file ini mungkin memiliki waktu yang lebih baru jika mereka dimodifikasi kemudian karena alasan tertentu (misalnya dikembalikan dari cadangan). Versi saat ini mungkin merupakan peningkatan dari versi lain, metode ini tidak akan memberi tahu Anda apa pun tentang versi sebelumnya.

Jika Anda menginstal dan mengaktifkan dllkeeper , maka setiap kali Anda menjalankan APT dan sesuatu dalam /etcperubahan, perubahan tersebut dilakukan untuk kontrol versi. Ketika APT membuat komit secara otomatis setelah tindakan, itu menunjukkan tindakan yang diambil (misalnya paket mana yang diinstal) dalam pesan log.

Tidak ada alat yang mencatat asal paket. Biasanya, dengan APT, paket yang diberikan selalu berasal dari sumber yang sama, kecuali jika sumber atau prioritasnya telah berubah. Dalam kasus yang jarang terjadi di mana sumber atau prioritas memang berubah, tidak ada cara umum untuk mengambil informasi historis tentang dari mana paket yang diinstal di masa lalu diperoleh.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Waktu /var/lib/dpkg/info/file bahkan berubah selama apt-get upgradeoperasi normal . Setelah peningkatan tersebut, mis. Waktu dpkg.lst== mtime == waktu sekarang - dan dpkg.md5sums ctime> mtime. Jadi, sayangnya, melihat waktu tidak memberikan informasi lebih dari sekedar melihat waktu. Seseorang tidak dapat membedakan waktu peningkatan / pemasangan paket dengan mereka.
maxschlepzig
@maxschlepzig Ya, maksud saya ketika versi saat ini dari paket diinstal, bukan ketika beberapa versi pertama kali diinstal. Saya akan mengeditnya.
Gilles 'SANGAT berhenti menjadi jahat'
3

Lihat file di /var/log/apt. File history.logdan term.logditulis oleh keduanya apt-getdan aptitude, setidaknya. Saat apt-getdijalankan, baris perintah juga diberikan. Anda mungkin ingin melihatnya history.log. Antara lain, ini mencatat waktu tindakan.

Jadi, misalnya, bagian log yang terkait dengan instalasi paket menggunakan apt-gettampak seperti:

Start-Date: 2013-09-02  00:27:25
Commandline: apt-get install unrar
Install: unrar:amd64 (4.1.4-1)
End-Date: 2013-09-02  00:27:29

Bagian log yang terkait dengan instalasi menggunakan aptitudeterlihat seperti:

Start-Date: 2013-09-02  16:39:11
Install: hello:amd64 (2.8-2)
End-Date: 2013-09-02  16:39:15

Contoh-contoh ini berasal dari sistem Wheezy amd64 Debian.

Faheem Mitha
sumber