GNU/Linux >> Belajar Linux >  >> Linux

100% peningkatan dist Debian non-interaktif

Solusi 1:

Jika Anda menyetel DEBIAN_FRONTEND=noninteractive (untuk menghentikan prompt debconf muncul) dan tambahkan force-confold dan force-confdef ke /etc/dpkg/dpkg.cfg Anda file, Anda harus memiliki pengalaman instalasi paket yang sepenuhnya noninteraktif. Paket apa pun yang masih meminta Anda untuk memberikan informasi memiliki rilis bug kritis (dan saya katakan itu sebagai pecandu otomasi dan sebagai pengembang Debian).

Solusi 2:

Florian Lohoff memposting cara untuk memasukkan apa yang disarankan womble ke dalam satu perintah:

DEBIAN_FRONTEND=noninteractive \
apt-get \
-o Dpkg::Options::="--force-confnew" \
--force-yes \
-fuy \
dist-upgrade

Tentu saja Anda juga dapat menggunakan -o Dpkg::Options::="--force-confnew --force-confdef" (cari di halaman manual dpkg untuk confnew). Saya tidak yakin dalam kasus apa ini akan membuat perbedaan. Saya pribadi membutuhkan pemutakhiran non-interaktif untuk memperbarui gambar vanilla, dalam hal ini saya kira selalu memilih file konfigurasi baru (tanpa --force-confdef ) adalah hal yang wajar.

Solusi 3:

Meskipun jawaban womble di atas umumnya baik, itu tidak berhasil untuk saya dan saya harus melakukan penelitian tambahan agar 100% tanpa pengawasan. Saya pikir saya akan membagikan hasilnya secara ringkas untuk mempermudah pengunjung mendatang.

Berikut ini adalah skrip yang akan berjalan sesuai dengan rekomendasi pembaruan catatan rilis debian 8 (kebanyakan) bersama dengan bendera dan variabel lingkungan yang akan membuatnya tanpa pengawasan. (echo s hanya untuk debugging dan dapat dihapus - meskipun saya sarankan untuk menyimpannya jadi jika skrip macet, Anda akan tahu di mana)

#!/bin/bash

apt-get remove apt-listchanges --assume-yes --force-yes &&

#using export is important since some of the commands in the script will fire in a subshell
export DEBIAN_FRONTEND=noninteractive &&
export APT_LISTCHANGES_FRONTEND=none &&

#lib6c was an issue for me as it ignored the DEBIAN_FRONTEND environment variable and fired a prompt anyway. This should fix it
echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections &&

echo "executing wheezy to jessie" &&
find /etc/apt -name "*.list" | xargs sed -i '/^deb/s/wheezy/jessie/g' &&

echo "executing autoremove" &&
apt-get -fuy --force-yes autoremove &&

echo "executing clean" &&
apt-get --force-yes clean &&

echo "executing update" &&
apt-get update &&

echo "executing upgrade" &&
apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuy upgrade &&

echo "executing dist-upgrade" &&
apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuy dist-upgrade

Solusi 4:

>=Apt 1.1

Jika Anda menggunakan Apt 1.1 atau lebih baru, --force-yes sudah tidak digunakan lagi, jadi Anda harus menggunakan opsi yang dimulai dengan --allow sebagai gantinya, mis. --allow-downgrades , --allow-remove-essential , --allow-change-held-packages .

Jadi perintahnya adalah:

DEBIAN_FRONTEND=noninteractive \
  apt-get \
  -o Dpkg::Options::=--force-confold \
  -o Dpkg::Options::=--force-confdef \
  -y --allow-downgrades --allow-remove-essential --allow-change-held-packages \
  dist-upgrade

Sumber:CFE-2360:Membuat versi modul paket apt_get sadar.

Terkait:

  • pembaruan apt-get tidak interaktif
  • Bagaimana cara meminta apt-get untuk melewatkan langkah-langkah konfigurasi pasca-pemasangan interaktif?
  • Upgrade apt non-interaktif

Linux
  1. Debian apt-get wheezy sources.list

  2. Debian apt-get stretch sources.list

  3. Cara Menginstal MySQL v5.7 menggunakan apt-get di Debian 8 Jessie

  1. Debian – Bagaimana Cara Menjalankan Program 32-bit Pada Debian/ubuntu 64-bit?

  2. Debian – Apt-get – Autoremove Ingin Menghapus Instalasi Gnome?

  3. Debian – Tidak Dapat Memulai Instalasi Devuan/debian?

  1. Instal Java 8 di debian Jessie

  2. pembaruan apt-get melaporkan kesalahan GPG

  3. yum setara dengan apt-get upgrade vs apt-get dist-upgrade?