Semua tindakan dengan apt (apt-get) dicatat. File-file ini tersedia di / var / log / apt /. Untuk melihat log riwayat terbaru, jalankan:
less /var/log/apt/history.log
Log ini akan diputar (setiap bulan saya kira), file-file lama akan berakhiran dengan angka dan dikompres. Jadi untuk melihat log riwayat selanjutnya, gunakan:
Ini luar biasa. Satu-satunya hal yang hilang adalah siapa yang menjalankan perintah.
Penebusan Terbatas
3
@LimitedAtonement Lihatlah /var/log/auth.log, mungkin berisi pengguna yang menjalankan instalasi. (ini tidak akan membantu jika instalasi dipanggil melalui shell / program yang berjalan sebagai root)
Lekensteyn
3
Juga berguna: zgrep, zcat
ishmael
apakah file ini juga mencatat paket dependensi yang diinstal sebagai hasil dari apt-get asli?
Mahesha999
2
@LimitedAtonement versi terbaru dari APT menawarkan bagian "Diminta-Oleh:" log untuk menunjukkan siapa yang memanggil perintah dan juga perintah mana yang mereka panggil seperti "Commandline: packagekit role = 'update-paket'" atau "Commandline: apt upgrade "
Michael Tunnell
21
Anda juga dapat membuat perintah singkat untuk menampilkan konten yang menarik.
+1: Satu kalimat bagus tapi hanya berlaku untuk periode rotasi log terakhir. Juga alih-alih sort, gunakan sort -udalam kedua kasus untuk menghindari duplikat baris muncul seperti dalam paket suka oracle-java8-installerdan banyak lainnya.
Cbhihe
1
Inilah cara Anda benar-benar melakukannya, katakan paket bergumam:
Harap perhatikan tiga backticks di sini tidak berfungsi seperti yang Anda pikirkan.
edwinksl
1
Untuk mendapatkan riwayat pembaruan dari paket tertentu dengan asumsi itu diinstal / diperbarui melalui apt, inilah oneliner (bash dan zgrep), contohnya adalah untuk paket skypeforlinux:
package='skypeforlinux'; pregex="(${package}[^\)]+\))"; while read -r line; do [[ "$line" =~ ^Start-Date:[[:space:]]([[:digit:]].+) ]] && curdate="${BASH_REMATCH[1]} "; [[ "$line" =~ $pregex ]] && echo "$curdate ${BASH_REMATCH[1]}"; done < <(for i in `ls -tr /var/log/apt/history*`; do zgrep -B3 "$package" $i; done)
File riwayat log greps apt ini untuk skypeforlinux termasuk tiga baris sebelumnya untuk mendapatkan tanggal. Kemudian ulangi hasilnya dan gema tanggal dan versi yang relevan.
Ganti nilai variabel paket dengan nama paket Anda, bahkan berfungsi untuk beberapa paket asalkan dimulai dengan string yang sama.
Jawaban:
Semua tindakan dengan apt (apt-get) dicatat. File-file ini tersedia di / var / log / apt /. Untuk melihat log riwayat terbaru, jalankan:
Log ini akan diputar (setiap bulan saya kira), file-file lama akan berakhiran dengan angka dan dikompres. Jadi untuk melihat log riwayat selanjutnya, gunakan:
Untuk melihat log yang tersedia:
sumber
Anda juga dapat membuat perintah singkat untuk menampilkan konten yang menarik.
Tambahkan fungsi khusus ini ke
~/.bashrc
:Dan menyebutnya di terminal seperti ini:
Diambil dari sini
sumber
zgrep ... /var/log/dpkg.log*
- Output entri dari arsip juga.Anda juga dapat menggunakan perintah berikut untuk mendaftar paket yang baru diinstal
sumber
grep "\ install\ " /var/log/apt/history.log
jika Anda perlu menyalin dan menempel daftar ke apt-getJika Anda ingin paket-paket yang diinstal dan tidak kemudian dihapus, coba ini:
Ini adalah pemasangan minus penghapusan yang cocok.
Referensi:
comm
: https://stackoverflow.com/a/11963862/338303<(grep...)
sintaks: https://unix.stackexchange.com/questions/73931/redirecting-multiple-commands-as-inputsumber
sort
, gunakansort -u
dalam kedua kasus untuk menghindari duplikat baris muncul seperti dalam paket sukaoracle-java8-installer
dan banyak lainnya.Inilah cara Anda benar-benar melakukannya, katakan paket bergumam:
Menggunakan dpkg.log menangkap operasi yang tidak dilihat oleh apt-get.
Keluaran:
sumber
Untuk mendapatkan riwayat pembaruan dari paket tertentu dengan asumsi itu diinstal / diperbarui melalui apt, inilah oneliner (bash dan zgrep), contohnya adalah untuk paket skypeforlinux:
File riwayat log greps apt ini untuk skypeforlinux termasuk tiga baris sebelumnya untuk mendapatkan tanggal. Kemudian ulangi hasilnya dan gema tanggal dan versi yang relevan.
Ganti nilai variabel paket dengan nama paket Anda, bahkan berfungsi untuk beberapa paket asalkan dimulai dengan string yang sama.
Contoh dengan output:
sumber