Là một phần trong quy trình làm việc của tôi, tôi đang sử dụng máy chủ Ubuntu 20.04.3.
Vì vậy, tôi chuẩn bị hình ảnh cho VM và triển khai nó bằng Ansible.
Vì nó là env không có quyền truy cập internet nên tất cả các gói tôi đang cài đặt đều đã được tải xuống .deb trước đó. bằng cách thực hiện lệnh shell đơn giản:
dpkg -i deb_1.deb deb_2.deb deb_3.deb deb_4.deb
dpkg -i deb_5.deb deb_6.deb deb_7.deb deb_8.deb
Đôi khi ~5% trường hợp, tôi nhận được lỗi này hoàn toàn không thường xuyên, có thể xảy ra trong lần cài đặt đầu tiên
"stderr_lines": ["dpkg: lỗi: khóa giao diện người dùng dpkg bị khóa bởi một tiến trình khác",
"E: Quy trình phụ dpkg --set-selections trả về mã lỗi (2)", "E: Thực thi dpkg không thành công. Bạn đã root chưa?"]
Tôi đã cố gắng giải quyết điều này bằng cách:
- Danh sách mục
Trước mỗi bước cài đặt thực hiện thao tác xóa file khóa thủ công
- /var/lib/dpkg/khóa
- /var/lib/dpkg/lock-frontend
- /var/cache/apt/archives/lock
Nhưng ngay cả sau khi xóa thủ công, lỗi vẫn tiếp tục xuất hiện.
Đã thử cài đặt các gói với mô-đun apt Ansible và "deb" arg - nhưng hành vi vẫn như vậy.
Đã cố gắng tìm ra quy trình nào thực sự sở hữu các tệp khóa bằng "lsof", nhưng tệp không thuộc sở hữu của bất kỳ quy trình nào.
Có cách nào để khắc phục hành vi lạ và lỗi này không?
Quá trình nào chịu trách nhiệm tạo các tệp khóa đôi khi khi khởi động hệ thống?