Saya telah melihat pesan ini beberapa kali setiap kali seseorang memiliki masalah menginstal, memutakhirkan atau menghapus beberapa perangkat lunak, tetapi saya bertanya-tanya, apa artinya , dan yang lebih penting, adalah mungkin untuk menyelesaikannya?
(Reading database ... 81657 files and directories currently installed.)
Removing mongodb-10gen ...
arg: remove
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error processing mongodb-10gen (--remove):
subprocess installed pre-removal script returned error exit status 100
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 100
Errors were encountered while processing:
mongodb-10gen
E: Sub-process /usr/bin/dpkg returned an error code (1)
(di atas hanyalah sebuah contoh, bukan masalah saya yang sebenarnya)
apt-get install (something)
dan Anda mendapatkan pesan kesalahan ini seperti yang saya lakukan, solusi untuk saya adalahapt-get upgrade (something)
.Jawaban:
Pesan itu generik. Ini hanya berarti bahwa
dpkg
instance dipanggil olehapt
/apt-get
gagal karena beberapa alasan. Itu tidak menjelaskan mengapa, bagaimana, atau memberi petunjuk bagaimana menyelesaikannya. Sebagai pesan diagnostik, itu tidak berguna.Anda perlu membaca baris sebelum pesan (kadang-kadang cukup banyak) untuk menemukan kesalahan nyata yang mencegah Anda menyelesaikan instalasi.
Ya, tapi bagaimana cara mengatasinya?
Tidak ada satu cara untuk menyelesaikannya. Ada begitu banyak alasan mengapa ini bisa terjadi sehingga sia-sia untuk mencoba mendaftarkan semuanya dalam satu posting. Setiap keadaan hampir unik untuk paket / lingkungan itu.
Tapi, ada penebusan. Fakta bahwa Anda melihat pesan ini berarti bahwa mungkin ada informasi yang lebih relevan di baris sebelum pesan. Untuk tujuan ilustrasi saya akan menggunakan contoh:
Sekarang, untuk menemukan masalahnya, Anda perlu membaca mundur:
E: Sub-process /usr/bin/dpkg returned an error code (1)
tidak memberitahuku sesuatu yang berguna. Jadi terus maju.Errors were encountered while processing: mongodb-10gen
katakan saja paket apa yang bermasalah. Bermanfaat tetapi tidak cukup.subprocess installed post-installation script returned error exit status 100
: ini memberitahu saya bahwa skrip yang gagal adalahpostinst
, yang dieksekusi di pasca instalasi. Ini akan berguna dalam beberapa situasi, tetapi tidak dalam situasi ini.dpkg: error while cleaning up:
tidak ada yang berguna di sini.invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
BINGO! Ini memberitahu kita bahwainvoke-rc.d
, biner yang mengontrol skrip init di sebagian besar sistem mirip Debian, gagal. Gagal karena tidak dapat menemukan/etc/init.d/mongodb
skrip. Ini buruk. Kita perlu membuatnya atau menyalin dari tempat lain sehingga mulai berfungsi kembali. Menginstal ulang paket juga biasanya merupakan opsi untukfile not found
kesalahan.Dalam hal ini, melaporkan bug tidak diperlukan karena kemungkinan kami adalah orang yang menghapus skrip, tetapi jika Anda benar-benar yakin Anda tidak menyentuh file (a
debsums -sla
harus mengkonfirmasi), kemudian laporkan bug.Jadi, apa sebenarnya yang Anda butuhkan untuk mendapatkan bantuan? Idealnya, hasil lengkap dari masalah. Ini juga membantu untuk menyertakan output dari
sudo dpkg -C
dansudo apt-get check
, dan output diapt-cache policy package1 package2...
mana "package1 package2 ..." termasuk semua paket dengan masalah.sumber
Errors were encountered while processing: mongodb-10gen
? Karena itu, untuk menyelesaikan masalah, garis itu tidak berharga .sudo touch /etc/init.d/mongodb
dan kemudian jalankansudo apt-get purge mongodb-10gen
untuk memperbaiki masalah. Saya menguji ini dan selama file tersebut ada (/etc/init.d/mongodb) dpkg akan melanjutkan bahkan jika file kosong yang merupakan sentuhan apa (membuat file kosong).