apt-get remove --purge wine* removed everything!
Solution 1
Uninstall did this, not purge. Don't feel bad, I think we've all done it at one point in time or another.
Run the command again, however, this time run the command
sudo apt-get purge wine
without the * mark and this time, submit "n" to not uninstall at this time. Now, before you execute the command again, you should take note of the list of programs that will be uninstalled along with wine so you may reinstall these programs after the purge and before the next reboot.
I like to make a copy of this list that can be pasted into a text editor. Once copied into the text editor, you can remove all the paragraphs and * marks to make a smooth list that can be copied and pasted after a sudo apt-get install
command to run immediately after the purge is done. Luckily, programs like Spotify retain their configuration files during this process as they were not explicitly marked to purge, only to uninstall so when you re-install them they should be good as new.
Solution 2
This particular problem bit me too. apt-get remove wine
told me wine was not installed, while which wine
and wine version
were still functional. wine-devel
and multiple other packages were installed though and you don't want to type them all one by one.
It's especially frustrating as you look at the list and actually see a lot of wine software getting removed as expected (as the list is displayed alphabetically they come close to last and take nearly the whole screen) and then hit Y.
Both answers provided here are wrong and it is not a misuse of the wildcard. It is beautifully explained in gertvdijk's answer to What is the correct way to completely remove an application?
The issue comes from apt-get
interpreting the input as a regular expression and therefore interpreted the asterisk as "zero or more times" and not as the expected wildcard, resulting in removing any packages that contain the string win
and any package that depends on such a package (which basically uninstalls nearly your whole system).
The command that would've done what I expected would've been
apt-get remove --purge 'wine.*'
That removes all packages whose names contain wine
.
Related videos on Youtube
Lynob
Updated on September 18, 2022Comments
-
Lynob over 1 year
sudo apt-get remove --purge wine*
opened the gates of hell and removed many things. I wasn't allowed to paste the output here, too big. I stopped the process, I wanted to save what's left of my system!- How to reinstall what has been removed?
- Why were these packages removed? It is the most important question, why the hell were they removed? I can't see any relation between Spotify and wine!
- If
apt-get --purge
might destroy your system, how to remove wine then? I removed it from software center but many files were still there. - Can you ever trust
apt-get -- purge
?
I'm on Xubuntu 14.04 64 bit.
-
Panther about 10 yearsHard to know if your problem was a typo or a bug.
wine *
is not the same aswine*
. I suggest you now use wildcards with apt-get purge. Also, you should have gotten a warning before any critical packages were removed, I hope you did not ignore that. I suggest you runsudo apt-get install xubuntu-desktop
-
Lynob about 10 years@bodhi.zazen well
sudo apt-get install xubuntu-desktop
but it saysE: Could not get lock /var/cache/apt/archives/lock - open (11: Resource temporarily unavailable) E: Unable to lock directory /var/cache/apt/archives/
-
Panther about 10 yearsYou have to close any other package managers running, including software center first.
-
saiarcot895 about 10 yearsAlso, the
--purge
flag doesn't destroy a system by itself; it just removes configuration files from the packages removed by the command. -
Lynob about 10 years@bodhi.zazen nothing is opened, but the terminal, no process is running in the background as far as I can tell
-
Panther about 10 years
-
saiarcot895 about 10 yearsBased on
Note, selecting 'libapache2-mod-auth-ntlm-winbind' for regex 'wine*'
, it saw that the package name contained "win" ("e*" means 0 or more instances of "e") and removed it. Then, the dominoes fell... (This is also why a list of packages to be removed is displayed for review before you enter yes.) -
Lynob about 10 years@saiarcot895 then how to remove wine?
-
saiarcot895 about 10 yearsSince you have Wine 1.6,
apt-get --purge remove wine-1.6
. -
Lynob about 10 years@saiarcot895 I've never put the version of the software I'm removing before, that's good to know. Can I tell what software were removed to reinstall them? so far I noticed elements from xubuntu-desktop, I reinstalled that just to be sure, and spotify and virtualbox, the others are libraries, I don't know what software were damaged
-
saiarcot895 about 10 yearsThe easiest way to get back to a stable system would probably be to install
xubuntu-desktop
. After that, remove any NON-critical packages (applications) you don't need. -
Jorge Castro about 10 yearsThey were removed because you entered "Y" and hit enter! Always double check when you're doing something as root!
-
Rmano about 10 yearsThe fact that the
apt-
family of commands take a regexp instead of a globbing is so surprising that I almost would define it as a bug. Alas, I even hate the fact that bash (unlike zsh) defaults to pass the * when there is no match in the glob... This is at least the third time I see an user bitten by this problem. The correctapt-get remove --purge "wine.*"
would have caused much less damage. -
Eliah Kagan over 6 yearsSee Why does apt removes unwanted packages when giving * as suffix?, How to fix Ubuntu after accidentally uninstalling many packages? I think we can mark this a duplicate of one of them. @Rmano Use
^wine
to matchwine
just at the beginning. Btw, thefailglob
shell option may interest you.
-
mchid about 10 yearsAlso, take a look here http://askubuntu.com/questions/352264/accidentally-removed-every-package-containing-text-win?rq=1 to see how to find out what applications already have been uninstalled so you can reinstall them.
-
Goksu almost 10 yearsadding " > output.txt" to the end of the command will write the output of that command to that output.txt file.
-
Chai T. Rex over 7 yearsThis is incorrect. The shell will only expand filenames based on globs, not package names based on regexes. As shown in the link in the question, you have output like
Note, selecting 'kwin-style-skulpture' for regex 'wine*'
. The shell doesn't produce output like that. This output comes fromapt-get
, which means the shell didn't expand anything becauseapt-get
got the unexpanded glob with the*
rather than a bunch of filenames. -
Eliah Kagan over 6 yearsDon't do this! See Why does apt removes unwanted packages when giving * as suffix? The
purge
orremove
action with an argument likewine*
,wine\*
, or'wine*'
removes way more than you might think. It removes every package withwin
anywhere in its name (notwine
,win
--aswine*
is treated as a regex ande*
means "zero or moree
s") and every package that depends directly or indirectly on any of those packages. This often breaks an Ubuntu system very badly, preventing it from being used for much of anything until it is fixed or reinstalled. -
Eliah Kagan over 6 yearsUsing
wine.*
will match just package names that containwine
, but this still might be more than is needed. In particular, if it's sufficient to remove packages whose names start withwine
then^wine
can be used (e.g.,apt-get remove --purge ^wine
).