Bagaimana melakukan * dasbor-konfigurasi ulang dpkg * sebagai bash secara otomatis

14

Saya ingin membuat gambar buruh pelabuhan dari gambar ubuntu. Diperlukan untuk mengubah sh default dari dash ke bash secara manual. (Karena itu perlu menginstal banyak paket rpm yang berisi skrip bash)

dpkg-reconfigure dash

Apakah ada metode untuk membiarkan tindakan ini secara otomatis tanpa perilaku manusia?

Di Dockerfile saya mungkin ditulis sebagai (Metode 1)

RUN dpkg-reconfigure dash

Saya sudah mencoba metode lain (Metode 2)

RUN ln -sf bash /bin/sh

Tapi, kedua metode itu tidak bisa bekerja.

Daniel YC Lin
sumber

Jawaban:

3

Anda dapat membuat debconf hanya menanyakan pertanyaan yang tinggi atau kritis [1].

Ex:

dpkg-reconfigure -p critical dash

dpkg-reconfigure akan menggunakan jawaban default yang didefinisikan dalam skrip debconf. Anda juga dapat menggunakan debconf-get-choices untuk mengambil jawaban berbeda untuk instalasi non-aktif [2].

  1. https://wiki.debian.org/debconf
  2. http://blog.nutsfactory.net/2008/03/06/noninteractive-dpkg-installation-on-debian-system/
Rex Tsai
sumber
Jika Anda ingin melihat apa yang terjadi ketika menjalankan dpkg-mengkonfigurasi ulang DEBCONF_DEBUG = pengembang dpkg-mengkonfigurasi ulang -p kritis dasbor
Rex Tsai
debconf-get-choices tidak ada. Saya tidak dapat menemukan di packages.debian.org/wheezy/all/debconf/filelist .
Daniel YC Lin
10
Saya gunakan debconf-show dashuntuk mendapatkan opsi. echo "dash dash/sh boolean false" | debconf-set-selectionsdan DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dashuntuk melakukan konfigurasi non-interaktif.
Daniel YC Lin
2
@DanielYCLin jika Anda menambahkan itu sebagai jawabannya sendiri, saya akan menambahkannya.
gazarsgo
25

Menempel komentar Daniel sebagai jawaban di sini karena tidak bergantung pada pengaturan default dpkg-reconfigure.

Untuk mendapatkan opsi:

debconf-show dash

Untuk mengatur opsi khusus ini ke false:

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

dan untuk mengkonfigurasi ulang paket:

DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash

Ini bekerja untuk saya dari 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
mgalg
sumber