Sunday, May 5, 2024
 Popular · Latest · Hot · Upcoming
9
rated 0 times [  9] [ 0]  / answers: 1 / hits: 10334  / 2 Years ago, tue, march 8, 2022, 1:55:05

When you install a program like postgresql, it installs several programs for its last version.



Once installed how remove all those packages? because using



apt-get remove postgresql


removes only that head package


More From » apt

 Answers
1

As apt-get autoremove (suggested by Aaron) will remove all "helper-packages" nothing seems to depend on any longer, sometimes you want to keep some of them for one reason or another. So if that concerns you, another possibility would be:



$(apt-cache depends postgresql|awk '{print "sudo apt-get remove "$NF}')


Using Bash as your shell, this would basically do the following:




  1. apt-cache depends postgresql would list all packages the postgresql depends on, including postgresql itself. But each line would look like depends on: <package> -- so we pipe the output to...

  2. awk '{print "sudo apt-get remove "$NF}' which would take the last word on each line (which is the package name), and prints it out after preceding it with our intended command: sudo apt-get remove (you could of course also use apt-get purge instead).

  3. finally, using the $() construct, we advise Bash to interpret the output as command to be executed.



You could alternatively replace the 3rd step and instead redirect the output into a file:



apt-cache depends postgresql|awk '{print "sudo apt-get remove "$NF}' >pg_remove.sh


And then inspect the file, optionally do some adjustments (such as commenting out/removing lines where you want to keep a package), and finally execute the script using



bash pg_remove.sh


Now you have a lot of possibilities to chose from :)



EDIT: Checking with more complex metapackages as e.g. lubuntu-desktop, above statements needs to be refined:



apt-cache depends <packageName>|grep "Depends on"|awk '{print "sudo apt-get remove "$NF}'


The grep is needed to restrict the result to dependencies (and skip the recommends etc.).



IMPORTANT: You should use this only for metapackages!!! otherwise, you may end up with an empty disk (e.g. postgresql-9.1 depends on libc6, and removing libc6 will certainly backfire as it is needed by a lot of packages).



So be careful, and better redirect to a file first (as explained) and investigate before execution.


[#36651] Thursday, March 10, 2022, 2 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
ionash

Total Points: 214
Total Questions: 111
Total Answers: 116

Location: Sudan
Member since Thu, May 7, 2020
4 Years ago
;