Why does apt-get install python3 with a trailing hyphen remove a lot of packages? [duplicate]
Solution 1:
This is not a bug; this is documented in the man
page. From man apt-get
's install
section1 (emphasis mine):
If a hyphen is appended to the package name (with no intervening space), the identified package will be removed if it is installed. Similarly a plus sign can be used to designate a package to install.
So, when you did:
sudo apt-get install python3-
you've removed the python3
package and all the dependent packages (which includes the packages you mentioned).
Fix:
Firstly, you can install the ubuntu-desktop
metapackage to get the default desktop environment back:
sudo apt-get install ubuntu-desktop
Now, to re-install the removed packages, go to /var/log/apt/history.log
, pick the packages, and run sudo apt-get install
on them.
You might also want to peek into /var/log/dpkg.log
.
1 If you have less
as the man
pager, you can go to the install
section of man apt-get
directly:
LESS='+/^[[:blank:]]+install' man apt-get
Solution 2:
No, you didn't find a bug. From man apt-get
:
If a hyphen is appended to the package name (with no intervening space), the identified package will be removed if it is installed. Similarly a plus sign can be used to designate a package to install. These latter features may be used to override decisions made by apt-get's conflict resolution system.
It's intentional. I'm not sure it's good design, but it is worth reading what changes apt proposes before proceeding.
Combined with globbing it may produce some rather... spectacular results at times.