Ubuntu 14 Warning
This morning, 2 of us noticed that running contrib/scripts/install_prereq on a fresh Ubuntu 14 system actually removed critical packages like network-manager, openssh-server, perl, git, and a bunch of others. It appears that the culprit is the libsnmp-dev package. It’s default conflict resolution solution is to uninstall conflicting packages and the alternate solution is to correctly upgrade the conflicting packages. Since install_prereq doesn’t give you the opportunity to choose the solution, it does the uninstall and you’re left with an unusable system.
Why this is happening now is unclear. To work around this, you can either run “apt-get update” and “apt-get upgrade” manually, or run “apt-get install libsnmp-dev” manually and say “no” to the first solution and “yes”
to the second. Then run install_prereq.
2 thoughts on - Ubuntu 14 Warning
Can you please remove any ‘-y’s from the apt-get / aptitude command-lines and try reproducing it? Also maybe use aptitude instead of apt-get.
Could you please provide a more complete log?
See /var/log/apt/history.log or term.log in the same directory.
Running it manually is how I narrowed it down to libsnmp-dev. From a fresh install of ubuntu-14.04.4-server-amd64.iso…
‘aptitude install libsnmp-dev’ (which is what install_prereq does) will produce the following…
==========root@ubuntu14-64:~# aptitude install libsnmp-dev The following NEW packages will be installed:
binutils{a} cpp{a} cpp-4.8{a} gcc{a} gcc-4.8{a} libasan0{a} libatomic1{a}
libc-dev-bin{a} libc6-dev{a}
libcloog-isl4{a} libgcc-4.8-dev{a} libgmp10{a} libgomp1{a} libisl10{a}
libitm1{a} libmpc3{a}
libmpfr4{a} libperl5.18{a} libquadmath0{a} libsensors4{a}
libsensors4-dev{a} libsnmp-base{a}
libsnmp-dev libsnmp30{a} libssl-dev{a} libssl-doc{a} libtsan0{a}
libwrap0-dev{a} linux-libc-dev{a}
manpages-dev{a} zlib1g-dev{a}
The following packages will be upgraded:
libssl1.0.0 perl-base
2 packages upgraded, 31 newly installed, 0 to remove and 45 not upgraded. Need to get 25.6 MB of archives. After unpacking 91.7 MB will be used. The following packages have unmet dependencies:
perl : Depends: perl-base (= 5.18.2-2ubuntu1) but 5.18.2-2ubuntu1.1 is to be installed. The following actions will resolve these dependencies:
Remove the following packages:
1) at
2) init-system-helpers
3) libarchive-extract-perl
4) libclass-accessor-perl
5) libio-string-perl
6) liblog-message-simple-perl
7) libmodule-pluggable-perl
8) libparse-debianchangelog-perl
9) libpod-latex-perl
10) libsub-name-perl
11) libterm-ui-perl
12) libtext-soundex-perl
13) libtimedate-perl
14) openssh-server
15) perl
16) perl-modules
17) rsyslog
18) ubuntu-minimal
Leave the following dependencies unresolved:
19) aptitude recommends libparse-debianchangelog-perl
20) perl-modules recommends libarchive-extract-perl
21) perl-modules recommends libmodule-pluggable-perl
22) perl-modules recommends libpod-latex-perl
23) perl-modules recommends libterm-ui-perl
24) perl-modules recommends libtext-soundex-perl
25) ssh-import-id recommends openssh-server
26) openssh-sftp-server recommends openssh-server | ssh-server
Accept this solution? [Y/n/q/?] n The following actions will resolve these dependencies:
Upgrade the following packages:
1) perl [5.18.2-2ubuntu1 (now, trusty) -> 5.18.2-2ubuntu1.1
(trusty-security, trusty-updates)]
2) perl-modules [5.18.2-2ubuntu1 (now, trusty) -> 5.18.2-2ubuntu1.1
(trusty-security, trusty-updates)]
Accept this solution? [Y/n/q/?] q Abandoning all efforts to resolve these dependencies. Abort.
==========
‘apt-get install libsnmp-dev’ will complete successfully.
==========
root@ubuntu14-64:~# apt-get install libsnmp-dev Reading package lists… Done Building dependency tree Reading state information… Done The following extra packages will be installed:
binutils cpp cpp-4.8 gcc gcc-4.8 libasan0 libatomic1 libc-dev-bin libc6-dev
libcloog-isl4 libgcc-4.8-dev libgmp10 libgomp1 libisl10 libitm1 libmpc3
libmpfr4 libperl5.18 libquadmath0 libsensors4 libsensors4-dev libsnmp-base
libsnmp30 libssl-dev libssl-doc libssl1.0.0 libtsan0 libwrap0-dev
linux-libc-dev manpages-dev perl perl-base perl-modules zlib1g-dev Suggested packages:
binutils-doc cpp-doc gcc-4.8-locales gcc-multilib make autoconf automake1.9
libtool flex bison gdb gcc-doc gcc-4.8-multilib gcc-4.8-doc libgcc1-dbg
libgomp1-dbg libitm1-dbg libatomic1-dbg libasan0-dbg libtsan0-dbg
libquadmath0-dbg glibc-doc lm-sensors snmp-mibs-downloader perl-doc
libterm-readline-gnu-perl libterm-readline-perl-perl libb-lint-perl
libcpanplus-dist-build-perl libcpanplus-perl libfile-checktree-perl
liblog-message-perl libobject-accessor-perl The following NEW packages will be installed:
binutils cpp cpp-4.8 gcc gcc-4.8 libasan0 libatomic1 libc-dev-bin libc6-dev
libcloog-isl4 libgcc-4.8-dev libgmp10 libgomp1 libisl10 libitm1 libmpc3
libmpfr4 libperl5.18 libquadmath0 libsensors4 libsensors4-dev libsnmp-base
libsnmp-dev libsnmp30 libssl-dev libssl-doc libtsan0 libwrap0-dev
linux-libc-dev manpages-dev zlib1g-dev The following packages will be upgraded:
libssl1.0.0 perl perl-base perl-modules
4 upgraded, 31 newly installed, 0 to remove and 43 not upgraded. Need to get 30.9 MB of archives. After this operation, 91.7 MB of additional disk space will be used. Do you want to continue? [Y/n] Y
==========
I’m actually not sure why install_prereq uses aptitude instead of apt-get.
Here are the logs from the failed aptitude install:
history.log: https://pastebin.com/q3qVSuPn term.log: https://pastebin.com/aGpzf5hU
After a reset of the VM,
Here are the logs from the successful apt-get install:
history.log: https://pastebin.com/yr1cPh1J
term.log: https://pastebin.com/L1d7Pa60