* Dpkg-tire * otomatik olarak bash olarak nasıl yapılandırılır


15

Ubuntu görüntüsünden bir liman işçisi görüntüsü oluşturmak istiyorum. Varsayılan sh öğesini tire işaretinden bash'a elle değiştirmek gerekir. (Bash komut dosyaları içeren birçok rpm paketi yüklemesi gerektiğinden)

dpkg-reconfigure dash

Bu eylemin insan davranışı olmadan otomatik olarak yapılmasına izin veren bir yöntem var mı?

Dockerfile dosyamda belki (Yöntem 1)

RUN dpkg-reconfigure dash

Başka bir yöntem denedim (Yöntem 2)

RUN ln -sf bash /bin/sh

Ancak, her iki yöntem de çalışamaz.

Yanıtlar:


3

Debconf sadece yüksek veya kritik sorular sorabilirsiniz [1].

Ör:

dpkg-reconfigure -p critical dash

dpkg-reconfigure, debconf betiğinde tanımlanan varsayılan yanıtı kullanır. Etkileşimli olmayan kurulum için farklı yanıtlar almak için debconf-get-selection'leri de kullanabilirsiniz [2].

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

Dpkg-reconfigure çalıştırırken neler olup bittiğini görmek istiyorsanız DEBCONF_DEBUG = geliştirici dpkg-reconfigure -p kritik çizgi
Rex Tsai


11
debconf-show dashSeçenek almak için kullanıyorum . echo "dash dash/sh boolean false" | debconf-set-selectionsve DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dashetkileşimli olmayan yapılandırma yapmak.
Daniel YC Lin

2
@DanielYCLin bunu kendi cevabı olarak eklerseniz, onu değerlendiririm.
gazarsgo

26

Daniel'in yorumunu, varsayılan ayarlara bağlı olmadığı için buraya yanıt olarak yapıştırmak dpkg-reconfigure.

Seçenekleri almak için:

debconf-show dash

Bu özel seçeneği şu şekilde ayarlamak için false:

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

ve aslında paketi yeniden yapılandırmak için:

DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash

Bu benim için bir Dockerfile'dan çalıştı:

# 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.