Làm thế nào để gỡ lỗi cấu hình dpkg trong quá trình cài đặt sau quá trình con?


17

Tóm lại: Tôi đang cố gắng cài đặt spamassassin nhưng dpkg chỉ trả về với:

dpkg: error processing spamassassin (--configure):
subprocess installed post-installation script returned error exit status 1

Tôi đã cố gắng tìm thêm thông tin về những gì đang xảy ra nhưng tôi không thể tìm thấy bất kỳ nơi nào đăng nhập hữu ích.

Trong / var / crash, spamassassin crashreport được tạo nhưng điều này chỉ cung cấp các lỗi dpkg cũ và:

 Start-Date: 2014-02-17  19:18:13
 Commandline: apt-get install spamassassin
AptOrdering:
 spamassassin: Configure
 amavisd-new-postfix: Configure

Tiếp theo là đăng nhập dmesg từ khởi động. Amavis đưa ra lỗi vì spamassassin phụ thuộc không được cấu hình.

Tôi đã kiểm tra các tệp nhật ký:

apt history.log
apt term.log
dpkg.log
syslog.log

nhưng không có thêm thông tin.

Tôi đã thử dpkg -D với tất cả các quãng tám có thể nhưng tôi thấy không có gì hữu ích về những gì có thể sai.

Rất nhiều câu hỏi và giải pháp khả thi đã được viết về lỗi dpkg và nhiều câu hỏi tôi đã thử, nhưng không có thêm thông tin nào tôi không có cảm giác mình đang đi đâu cả.

Chắc chắn phải có một nơi nào đó có khả năng đọc những gì đang xảy ra hoặc làm hỏng một số đăng nhập để nó sẽ được ghi lại?


Bạn phải cuộn lên trong thiết bị đầu cuối của bạn và xem lỗi cụ thể, trong thông báo bạn đã thấy. Để gỡ lỗi những lỗi này, bạn phải xem chính xác lỗi nào đã gây ra lỗi này.
Thomas Ward

cần có một mô tả trong thiết bị đầu cuối, bạn đã xem xét /var/log/spamassassin/spamd.log chưa?
kamil

Tôi đã cày qua tất cả các bản ghi, thanh trừng, làm lại cài đặt theo nhiều cách khác nhau. Tất cả để tìm thêm một chút thông tin về lỗi, nhưng tôi không thể tìm thấy bất kỳ. Spamd.log chưa được thực hiện.
Yêu cầu

Câu trả lời:


16

Ok, tôi đã tìm ra giải pháp cho vấn đề này. Nghĩ rằng tôi không thể xử lý việc đăng nhập để có thêm dữ liệu, dữ liệu đã được trình bày có manh mối cho vấn đề.

dpkg: error processing spamassassin (--configure):
subprocess installed post-installation script returned error exit status 1

cho biết dpkg gặp phải lỗi xử lý spamassassin khi chạy cấu hình. Dòng tiếp theo cho chúng tôi kịch bản sau khi cài đặt không hoàn thành chính xác.

Trong thư mục / var / lib / dpkg / thông tin, chúng ta có thể định vị các tệp tập lệnh của dpkg, tệp: spamassassin.postinst cung cấp cho chúng ta tệp tập lệnh tạo ra lỗi.

Trong tệp này, chúng tôi biết rằng chúng tôi phải xem mã được chạy bằng cấu hình:

if ["$ 1" = "configure"]; sau đó

và sau khi gỡ lỗi, tôi tìm ra dòng:

su debian-spamd -c "sa-update --gpghomedir / var / lib / spamassassin / sa-update-key \ --import /usr/share/spamassassin/GPG.KEY"

trả về mã thoát 1 (chạy lệnh @commandline và sử dụng echo $? bên cạnh để lấy mã thoát)

Vấn đề là người dùng debian-spamd đã tồn tại trên hệ thống của tôi nhưng vỏ đăng nhập của nó là / bin / false. Su-ing với / bin / false trả về mà không có bất kỳ thông báo nào ngoài mã thoát 1.

Việc thêm -s / bin / sh vào lệnh đã giải quyết được vấn đề mặc dù cuối cùng tôi đã thay đổi vỏ đăng nhập của người dùng để đồng bộ hóa với các bản cập nhật trong tương lai.


Tôi đã có một vấn đề tương tự với bạn. Với trình cài đặt chỉ thất bại phẳng. Của tôi hóa ra là một vấn đề với việc cài đặt phiên bản mới nhất từ ​​backian-backports cho khò khè. Hóa ra họ đã thay đổi tập lệnh cài đặt bài đăng để có một cuộc gọi 'su - $ OWNER -c "sa-update ...' đã thực hiện trình đăng nhập shell shell đầy đủ thành / bin / sh không tương thích với / etc / profile của chúng tôi và /etc/profile.d. xóa tệp '-' làm cho nó "su $ OWNER -c ...." đã sửa nó cho tôi
Vagnerr

Tôi không có vấn đề chính xác nhưng gợi ý gỡ lỗi của bạn đã giúp tôi rất nhiều! cảm ơn!
chaosguru

9

Nói chung để gỡ lỗi các vấn đề như vậy, bạn sẽ chỉnh sửa /var/lib/dpkg/info/spamassassin.postinst(hoặc .preinst, pr .prermhoặc .postrm; tùy thuộc vào lỗi nào) và thay đổi #!/bin/shở dòng trên cùng thành #!/bin/sh -x(điều tương tự nếu bashthay vào đó: chỉ cần thêm -x)

Điều đó sẽ cung cấp cho bạn gỡ lỗi từng dòng của kịch bản shell, vì vậy bạn có thể biết nơi nó thoát với mã khác không (khiến việc cài đặt / nâng cấp không thành công).

Nó có thể sẽ yêu cầu ít nhất một số kỹ năng kịch bản shell để gỡ lỗi, mặc dù.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.