Saya sedang membangun skrip provisi untuk a ubuntu vagrant vm
, pada a ubuntu host
, keduanya 12.10 64bit
Ketika menginstal paket-paket berikut:
sudo apt-get -y install php5-xsl graphviz php-pear unison
Saya mendapat peringatan:
dpkg-reconfigure: unable to re-open stdin: No file or directory
telah mencoba mencari tetapi hasilnya memunculkan setiap kesalahan lain dengan apt-get mungkin, tidak dapat menemukan cara untuk menekan peringatan di atas. Instalasi berhasil, tetapi peringatan di atas menyebabkan garis kesalahan di stdout gelandangan.
Siapa pun yang tahu apa yang bisa menjadi penyebab atau bagaimana menekan peringatan itu
export DEBIAN_FRONTEND=noninteractive
bekerja untuk saya didpkg-preconfigure
panggungJawabannya adalah mengatur
perl:locale
's sesuai ini :Ini menyelesaikan masalah, tetapi menambahkan waktu yang tidak diinginkan ke
vagrant up
ketentuan tersebut.sumber
70debconf
commenting-out @ kenorb untuk konfigurasi awal.Jalankan perintah ini:
untuk melihat apakah Anda memiliki file ini. Jika demikian, solusinya adalah mengomentari
DPkg
baris yang mencegah pra-konfigurasi semua paket dengandebconf
sebelum mereka diinstal.Jadi tambahkan perintah ini ke file ketentuan Anda:
Kalau tidak, jika Anda tidak peduli dengan file ini, cukup hapus:
Berikut adalah beberapa perintah lain yang perlu dipertimbangkan, tetapi saya tidak berpikir mereka melakukan sesuatu yang berguna:
sumber
--frontend=noninteractive
opsi dalam perintah yang ditentukan dalam file.sudo sed -i 's/\(dpkg-preconfigure\) --apt/\1 --frontend=noninteractive --apt/' /etc/apt/apt.conf.d/70debconf
sebelum, dansudo sed -i 's/ --frontend=noninteractive//' /etc/apt/apt.conf.d/70debconf
sesudah.Pengalihan Bash berfungsi dengan baik untuk stdout dan stderr.
Untuk mengarahkan ulang aliran kesalahan, gunakan yang berikut ini:
Untuk mengarahkan ulang stdout (pesan yang bukan kesalahan / peringatan) dan stderr keduanya, gunakan:
Itu adalah jalan pintas yang tersedia di bash untuk ini:
Atau:
Di bawah ini, kita dapat dengan jelas melihat bahwa file deskriptor 1 adalah stdout, 2 stderr, 3 stdin.
Jadi untuk apa yang Anda katakan ingin Anda lakukan, Anda hanya perlu perintah pertama yang saya berikan.
sumber