Cách thực hiện * dpkg-cấu hình lại dấu gạch ngang * như bash tự động


14

Tôi muốn xây dựng một hình ảnh docker từ hình ảnh Ubuntu. Cần phải thay đổi sh mặc định từ dấu gạch ngang sang bash bằng tay. (Bởi vì nó yêu cầu cài đặt nhiều gói vòng / phút chứa tập lệnh bash)

dpkg-reconfigure dash

Có phương pháp nào để hành động này tự động mà không có hành vi của con người không?

Trong Dockerfile của tôi, nó có thể được viết là (Cách 1)

RUN dpkg-reconfigure dash

Tôi đã thử một phương pháp khác (Phương pháp 2)

RUN ln -sf bash /bin/sh

Nhưng, cả hai phương pháp đều không thể hoạt động.

Câu trả lời:


3

Bạn có thể làm cho debconf chỉ yêu cầu các câu hỏi cao hoặc quan trọng [1].

Ví dụ:

dpkg-reconfigure -p critical dash

dpkg-recfigure sẽ sử dụng câu trả lời mặc định được xác định trong tập lệnh debconf. Bạn cũng có thể sử dụng các lựa chọn gỡ lỗi để nhận câu trả lời khác nhau cho cài đặt không tương tác [2].

  1. https://wiki.debian.org/debconf
  2. http://blog.nutsfactory.net/2008/03/06/noninteractive-dpkg-installation-on-debian-system/

Nếu bạn muốn xem những gì đang diễn ra khi chạy dpkg-cấu hình lại DEBCONF_DEBUG = nhà phát triển dpkg-recfigure -p dash dash
Rex Tsai

thiếu các lựa chọn gỡ lỗi Tôi không thể tìm thấy trong gói.debian.org/wheezy/all/debconf/filelist .
Daniel YC Lin

10
Tôi sử dụng debconf-show dashđể có được tùy chọn. echo "dash dash/sh boolean false" | debconf-set-selectionsDEBIAN_FRONTEND=noninteractive dpkg-reconfigure dashđể cấu hình không tương tác.
Daniel YC Lin

2
@DanielYCLin nếu bạn thêm vào đó là câu trả lời của riêng mình, tôi sẽ nâng cấp nó.
gazarsgo

25

Dán nhận xét của Daniel như một câu trả lời ở đây vì nó không dựa vào cài đặt mặc định từ dpkg-reconfigure.

Để có được lựa chọn:

debconf-show dash

Để đặt tùy chọn cụ thể này thành false:

echo "dash dash/sh boolean false" | debconf-set-selections

và để thực sự cấu hình lại gói:

DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash

Điều này làm việc cho tôi từ Dockerfile:

# make /bin/sh symlink to bash instead of dash:
RUN echo "dash dash/sh boolean false" | debconf-set-selections
RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash
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.