Singkatnya: Saya mencoba menginstal spamassassin tetapi dpkg hanya mengembalikan dengan:
dpkg: error processing spamassassin (--configure):
subprocess installed post-installation script returned error exit status 1
Saya telah mencoba untuk menemukan informasi lebih lanjut tentang apa yang salah tetapi saya tidak dapat menemukan logging yang berguna.
Dalam / var / crash, spamassassin crashreport dihasilkan tetapi ini hanya memberikan kesalahan dpkg lama dan:
Start-Date: 2014-02-17 19:18:13
Commandline: apt-get install spamassassin
AptOrdering:
spamassassin: Configure
amavisd-new-postfix: Configure
Diikuti oleh dmesg masuk dari startup. Amavis memberikan kesalahan karena dependensi spamassassin tidak dikonfigurasi.
Saya memeriksa file log:
apt history.log
apt term.log
dpkg.log
syslog.log
tetapi tidak ada informasi tambahan.
Saya mencoba dpkg -D dengan semua oktal yang mungkin tetapi saya menemukan tidak ada yang berguna tentang apa yang bisa salah.
Banyak pertanyaan dan solusi yang mungkin telah ditulis tentang kesalahan dpkg dan banyak yang telah saya coba, tetapi tanpa informasi tambahan saya tidak memiliki perasaan bahwa saya mendapatkan di mana saja.
Tentunya harus ada suatu tempat kemungkinan untuk membaca apa yang salah atau untuk membuat log sehingga akan dicatat?
Jawaban:
Ok, saya sudah menemukan solusi untuk masalah ini. Saya pikir saya tidak dapat menghidupkan logging untuk mendapatkan lebih banyak data, data yang sudah disajikan memiliki petunjuk untuk masalah tersebut.
mengatakan dpkg menemui kesalahan saat memproses spamassassin saat menjalankan configure. Baris berikutnya mengirimkan skrip pasca-pemasangan kepada kami tidak selesai dengan benar.
Dalam direktori / var / lib / dpkg / info kita dapat menemukan file skrip dari dpkg, file: spamassassin.postinst memberi kita file skrip yang menghasilkan kesalahan.
Dalam file ini kita tahu kita harus melihat kode yang dijalankan oleh configure:
dan setelah beberapa debug saya menemukan baris:
mengembalikan kode keluar 1 (jalankan perintah @commandline dan gunakan echo $? di samping untuk mendapatkan kode keluar)
Masalahnya adalah bahwa pengguna debian-spamd sudah ada di sistem saya tetapi shell loginnya adalah / bin / false. Menyesuaikan dengan / bin / false mengembalikan tanpa pesan apa pun kecuali kode akses 1
Menambahkan -s / bin / sh ke perintah menyelesaikan masalah meskipun pada akhirnya saya memang mengubah shell login pengguna agar tetap sinkron dengan pembaruan di masa mendatang.
sumber
Umumnya untuk men-debug masalah seperti itu, Anda akan mengedit
/var/lib/dpkg/info/spamassassin.postinst
(atau.preinst
, pr.prerm
atau.postrm
; tergantung pada yang gagal) dan mengubah#!/bin/sh
pada baris teratas ke#!/bin/sh -x
(hal yang sama jika itubash
sebagai gantinya: tambahkan saja-x
)Itu akan memberi Anda debug skrip shell baris-demi-baris, sehingga Anda dapat mengetahui di mana keluarnya kode non-nol (menyebabkan instalasi / peningkatan gagal).
Mungkin akan membutuhkan setidaknya beberapa keterampilan skrip shell untuk melakukan debug.
sumber