Do-release-upgradeについて質問があります。私は次のコンポーネントがインストールされたシステムを持っています(さらにいくつかは質問に関係ありません。サーバーの目的は私のBaculaバックアップシステムのMySQLサーバーになることです):
サーバーであるため、特にbacula-traymonitorをインストールしませんでした。これは、X11に関連するパッケージのカスケードがインストールされる結果となる可能性があります。 X11はサーバー環境では役に立たないが、opensshdのようなデーモンに必要なX11ライブラリの一部は理解しているが、これはX11ライブラリに依存しており、そのためこれらのX11ライブラリのいくつかはおそらく私のインストールにとどまるだろう。
Do-release-upgrade -dを発行しました(何らかの理由で-dオプションなしで、7月24日以降であってもリリースアップグレードは表示されません)。次のことに気付きました:bacula-traymonitor is goingサーバーにインストールしたくないX11のすべてのカスケードと一緒にインストールします。パッケージはbaculaクライアントの適切な動作に必要ではないため、インストールされるパッケージとしてアップグレードレーダーに表示されません。これをbugとして分類します。
明白な方法とは別に、バキュラトレイモニターのような余分なものをすべてインストールしないようにdo-release-upgradeに指示する方法はありますか?明らかな方法は、「do-release-upgradeを実行してからパッケージを削除する」ことです。これにより、bacula-traymonitorを削除した後に自動削除されない未使用のX11ライブラリのように、システムに残骸が間違いなく残ります。 14.04.1 LTSにアップグレードしたい他のシステムがいくつかあり、それらのほとんどすべてにbacula-clientがインストールされているため、これは多くの不必要な作業を意味します。
以下の詳細:
Remove (was auto installed) libperl5.14 libsnmp15 xz-lzma
Install: aptitude-common bacula-traymonitor cpp-4.8 crda dh-python
fontconfig fontconfig-config fonts-dejavu-core g++-4.8 gawk gcc-4.8
gcc-4.8-base gcc-4.9-base hicolor-icon-theme init-system-helpers
iproute2 iw kmod libaio1 libapparmor1 libapt-inst1.5
libarchive-extract-Perl libasan0 libasprintf0c2 libatk1.0-0
libatk1.0-data libatm1 libatomic1 libaudit-common libaudit1
libavahi-client3 libavahi-common-data libavahi-common3 libbind9-90
libboost-iostreams1.54.0 libcairo2 libcap2-bin libcgmanager0
libck-connector0 libcloog-isl4 libcups2 libdatrie1 libdb5.3 libdbi1
libdebconfclient0 libdns100 libestr0 libfakeroot
libfile-fcntllock-Perl libfontconfig1 libgcc-4.8-dev libgck-1-0
libgcr-3-common libgcr-base-3-1 libgdk-pixbuf2.0-0
libgdk-pixbuf2.0-common libgnutls-openssl27 libgraphite2-3
libgssglue1 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common
libharfbuzz0b libisc95 libisccc90 libisccfg90 libisl10 libitm1
libjasper1 libjbig0 libjpeg-turbo8 libjpeg8 libjson-c2 libjson0
libkmod2 libldb1 liblog-message-simple-Perl liblwres90
libmodule-pluggable-Perl libmpc3 libmpdec2 libntdb1 libnuma1
libpam-cap libpam-systemd libpango-1.0-0 libpangocairo-1.0-0
libpangoft2-1.0-0 libperl5.18 libpixman-1-0 libpod-latex-Perl
libpolkit-agent-1-0 libpolkit-backend-1-0 libprocps3
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib
libpython3-stdlib libpython3.4-minimal libpython3.4-stdlib
libsasl2-modules-db libsemanage-common libsemanage1 libsepol1
libsigsegv2 libsmbclient libsnmp30 libssh2-1 libstdc++-4.8-dev
libsystemd-daemon0 libsystemd-login0 libtasn1-6 libterm-ui-Perl
libtevent0 libtext-soundex-Perl libthai-data libthai0 libtiff5
libtirpc1 libtsan0 libudev1 libustr-1.0-1 libxcb-render0
libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3
libxi6 libxinerama1 libxrandr2 libxrender1 libxtables10
linux-generic linux-headers-generic
linux-image-extra-3.13.0-32-generic linux-image-generic
nagios-plugins-common ncurses-term openssh-sftp-server policykit-1
python-configobj python-ldb python-ntdb python-requests
python-samba python-secretstorage python-six python-talloc
python-tdb python-urllib3 python3 python3-apport python3-apt
python3-commandnotfound python3-dbus python3-distupgrade
python3-gdbm python3-gi python3-minimal python3-problem-report
python3-update-manager python3.4 python3.4-minimal rpcbind run-one
samba-libs shared-mime-info systemd-services systemd-shim
ubuntu-release-upgrader-core wireless-regdb
Upgrade: accountsservice acpid adduser apport apport-symptoms apt
apt-transport-https apt-utils apt-xapian-index aptitude arj at
bacula-client bacula-common bacula-console bacula-doc bacula-fd
base-files base-passwd bash bash-completion bc bind9-Host binutils
bsdmainutils bsdutils build-essential busybox-initramfs
busybox-static byobu bzip2 ca-certificates command-not-found
command-not-found-data console-setup coreutils cpio cpp cpp-4.6
cron curl dash dbus debconf debconf-i18n debianutils diffutils dkms
dmidecode dmsetup dnsutils dosfstools dpkg dpkg-dev dstat e2fslibs
e2fsprogs ed eject fakeroot file findutils
fonts-ubuntu-font-family-console ftp Fuse g++ g++-4.6 gcc gcc-4.6
gcc-4.6-base geoip-database gettext-base gir1.2-glib-2.0 gnupg gpgv
grep groff-base grub-common grub-pc grub-pc-bin grub2-common gzip
hdparm hostname htop ifupdown info initramfs-tools
initramfs-tools-bin initscripts insserv install-info
installation-report iotop iproute iptables iputils-ping
iputils-tracepath irqbalance isc-dhcp-client isc-dhcp-common
iso-codes joe kbd keyboard-configuration klibc-utils krb5-locales
ksh landscape-common language-pack-en language-pack-en-base
language-selector-common less libaccountsservice0 libacl1
libalgorithm-diff-Perl libalgorithm-diff-xs-Perl libapt-pkg4.12
libasn1-8-heimdal libattr1 libblkid1 libbsd0 libbz2-1.0 libc-bin
libc-dev-bin libc6 libc6-dev libcap-ng0 libcap2 libclass-isa-Perl
libcomerr2 libcurl3 libcurl3-gnutls libcwidget3 libdb5.1
libdbd-mysql-Perl libdbi-Perl libdbus-1-3 libdbus-glib-1-2
libdevmapper-event1.02.1 libdevmapper1.02.1 libdpkg-Perl
libdrm-intel1 libdrm-radeon1 libdrm2 libedit2 libelf1 libept1.4.12
libevent-2.0-5 libexpat1 libffi6 libfreetype6 libfribidi0 libfuse2
libgc1c2 libgcc1 libgcrypt11 libgdbm3 libgeoip1
libgirepository-1.0-1 libglib2.0-0 libgmp10 libgnutls26 libgomp1
libgpg-error0 libgpm2 libgssapi-krb5-2 libgssapi3-heimdal
libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal
libhtml-template-Perl libhx509-5-heimdal libidn11 libio-string-Perl
libiw30 libjs-jquery libk5crypto3 libkeyutils1 libklibc
libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2
liblocale-gettext-Perl liblockfile-bin liblockfile1 liblzma5
liblzo2-2 libmagic1 libmount1 libmpfr4 libmysqlclient18 libncurses5
libncurses5-dev libncursesw5 libnewt0.52 libnfnetlink0 libnih-dbus1
libnih1 libnl-3-200 libnl-genl-3-200 libopts25 libp11-kit0
libpam-modules libpam-modules-bin libpam-runtime libpam0g
libparted0debian1 libpcap0.8 libpci3 libpciaccess0 libpcre3
libpcsclite1 libpipeline1 libplymouth2 libpng12-0
libpolkit-gobject-1-0 libpopt0 libpq5 libpython2.7 libquadmath0
libradius1 libreadline5 libreadline6 libroken18-heimdal librtmp0
libsasl2-2 libsasl2-modules libselinux1 libsensors4
libsigc++-2.0-0c2a libslang2 libsnmp-base libsqlite3-0 libss2
libssl1.0.0 libstdc++6 libstdc++6-4.6-dev libsub-name-Perl
libtalloc2 libtdb1 libterm-readkey-Perl libtext-charwidth-Perl
libtext-iconv-Perl libtimedate-Perl libtinfo-dev libtinfo5
libusb-0.1-4 libusb-1.0-0 libuuid1 libwbclient0 libwind0-heimdal
libwrap0 libx11-6 libx11-data libxapian22 libxau6 libxcb1 libxdmcp6
libxext6 libxml2 libxmuu1 linux-firmware linux-generic-lts-raring
linux-generic-lts-trusty linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic linux-headers-generic-lts-raring
linux-headers-generic-lts-trusty linux-image-3.13.0-32-generic
linux-image-generic-lts-raring linux-image-generic-lts-trusty
linux-libc-dev locales lockfile-progs login logrotate lsb-base
lsb-release lshw lsof ltrace lvm2 m4 make makedev man-db manpages
manpages-dev mawk mc mc-data mdadm memtest86+ mime-support mlocate
module-init-tools mount mountall mtr-tiny multiarch-support
mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server
mysql-server-5.5 mysql-server-core-5.5 mysqltuner
nagios-nrpe-server nagios-plugins nagios-plugins-basic
nagios-plugins-standard nano ncurses-base ncurses-bin ncurses-doc
net-tools netbase netcat-openbsd ntp ntp-doc ntpdate openssh-client
openssh-server openssl os-prober parted passwd patch pciutils Perl
Perl-base Perl-modules plymouth plymouth-theme-ubuntu-text
popularity-contest powermgmt-base ppp pppconfig procmail procps
psmisc python python-apport python-apt python-apt-common
python-chardet python-crypto python-dbus python-dbus-dev
python-debian python-gdbm python-gi python-httplib2 python-keyring
python-launchpadlib python-lazr.restfulclient python-lazr.uri
python-minimal python-newt python-oauth python-openssl python-pam
python-pkg-resources python-problem-report python-serial
python-simplejson python-twisted-bin python-twisted-core
python-wadllib python-xapian python-zope.interface python2.7
python2.7-minimal readline-common resolvconf rsync rsyslog
samba-common samba-common-bin screen sed sendmail sendmail-base
sendmail-bin sendmail-cf sendmail-doc sensible-mda sensible-utils
sgml-base smbclient snmp ssh-import-id strace Sudo sysstat sysv-rc
sysvinit-utils tar tasksel tasksel-data tcpd tcpdump telnet time
tmux tzdata ubuntu-keyring ubuntu-minimal ubuntu-standard ucf udev
ufw unzip update-manager-core update-notifier-common upstart
ureadahead usbutils util-linux uuid-runtime vim vim-common
vim-runtime vim-tiny w3m watershed wget whiptail whois
wireless-tools wpasupplicant xauth xfsprogs xkb-data xml-core
xz-utils zlib1g
問題は、do-release-upgrade
とapt-get dist-upgrade
の両方が依存パッケージと推奨パッケージをインストールすることです。したがって、必要なのは依存関係のみをインストールすることです。
apt-get dist-upgradeの場合:
dist-upgrade
の場合、プロセスは簡単です。デフォルトでは、apt-getは推奨パッケージもインストールします(-sは変更のみをシミュレートします)。
$ Sudo apt-get -s install bacula-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
bacula-common bacula-console bacula-fd bacula-traymonitor
Suggested packages:
bacula-doc kde gnome-desktop-environment
The following NEW packages will be installed:
bacula-client bacula-common bacula-console bacula-fd bacula-traymonitor
一方、オプション--no-install-recommends
は推奨パッケージをインストールしません。
$ Sudo apt-get -s --no-install-recommends install bacula-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
bacula-common bacula-console bacula-fd
Suggested packages:
bacula-doc
Recommended packages:
bacula-traymonitor
The following NEW packages will be installed:
bacula-client bacula-common bacula-console bacula-fd
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
したがって、apt-get dist-upgrade
を使用している場合は、--no-install-recommends
オプションを追加するだけで十分です。
do-release-upgradeの場合:
do-release-upgrade
の場合、同じことをするのは少し面倒です。しかし、あなたはまだそれを行うことができます:/etc/apt/apt.conf
ファイルの編集と併せてサーバーモードを使用する必要があります。
$ man do-release-upgrade
-m MODE, --mode=MODE
Run in a special upgrade mode. Currently "desktop" for regular upgrades of a desktop system and "server" for server systems are supported.
このマンページはあまり役に立ちませんが、-m server
を使用すると、推奨パッケージがnotインストールされます。対応するロジックは、/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeQuirks.py
の677行目にあります。
def ensure_recommends_are_installed_on_desktops(self):
""" ensure that on a desktop install recommends are installed
(LP: #759262)
"""
import apt
if not self.controller.serverMode:
if not apt.apt_pkg.config.find_b("Apt::Install-Recommends"):
msg = "Apt::Install-Recommends was disabled,"
msg += " enabling it just for the upgrade"
logging.warn(msg)
apt.apt_pkg.config.set("Apt::Install-Recommends", "1")
そのため、推奨パッケージを無効にするだけです。これを行うには、次の内容のファイル/etc/apt/apt.conf
を追加または編集します
// Recommends are as of now still abused in many packages
APT::Install-Recommends "0";
APT::Install-Suggests "0";
次に、念のためapt-get update
を実行します。