How to remove programs installed from source in Linux

Though you can usually install most programs in Linux comfortably with the package manager of you Linux distribution (rpm, deb, etc.), sometimes you need to compile something from source.

For example gnuplot in Debian/Ubuntu has the readline functionality not compiled in, which makes it rather hard to use. But I’m somewhat reluctant to install these programs with “make install” since they are somewhere copied into system and it’s practically not possible to remove them except with “make uninstall” – but this option is not always available and you have to keep the sources of the program you installed.

But don’t renounce yet. There is paco. This little gem allows one to log the “make install” process. paco is than able to remove all installed files if one decides so. Installing paco is easy.

  • Download and untar it somewhere, cd into new directory
  • sudo apt-get install libgtk2.0-dev (if you don’t have gtk devel installed) or sudo apt-get install libgtkmm-2.4-dev (if you install paco 2.0 or newer)
  • ./configure --prefix=/usr/local
  • make
  • sudo make install
  • sudo make logme

paco is now installed, paco itself is also logged in its database. If you want now to install something if it should be logged with the name of the current directory as the name for the package replace the last “make install” command with

sudo paco -lD make install

to set the name of the package yourself, use

sudo paco -lp foo-1.0 "make -C src install"

In order to see what packages are installed or to remove a package use sudo gpaco.

2 thoughts on “How to remove programs installed from source in Linux

  1. Hi I get this error in in a message box, unhandled exception:
    Exception occurred: Exception has been thrown by the target of an invocation.

    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus —> System.DllNotFoundException: gdiplus.dll
    at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
    at System.Drawing.GDIPlus..cctor () [0x00000] — End of inner exception stack trace —

    at
    at System.Drawing.Image.InitFromStream (System.IO.Stream stream) [0x00000]
    at System.Drawing.Bitmap..ctor (System.Type type, System.String resource) [0x00000]
    at (wrapper remoting-invoke-with-check) System.Drawing.Bitmap:.ctor (System.Type,string)
    at System.Windows.Forms.Design.PropertyTab.get_Bitmap () [0x00000]
    at MonoDevelop.DesignerSupport.PropertyGrid.PropertyGrid.AddPropertyTab (System.Windows.Forms.Design.PropertyTab tab) [0x00000]
    at MonoDevelop.DesignerSupport.PropertyGrid.PropertyGrid..ctor (MonoDevelop.DesignerSupport.PropertyGrid.EditorManager editorManager) [0x00000]
    at MonoDevelop.DesignerSupport.PropertyGrid.PropertyGrid..ctor () [0x00000]
    at MonoDevelop.DesignerSupport.PropertyPad..ctor () [0x00000]
    at
    at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[])
    at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] — End of inner exception stack trace —

    at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
    at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
    at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000]
    at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000]
    at Mono.Addins.RuntimeAddin.CreateInstance (System.String typeName, Boolean throwIfNotFound) [0x00000]
    at MonoDevelop.Ide.Codons.PadCodon.CreatePad () [0x00000]
    at MonoDevelop.Ide.Codons.PadCodon.get_PadContent () [0x00000]
    at MonoDevelop.Ide.Gui.SdiWorkbenchLayout.CreatePadContent (Boolean force, MonoDevelop.Ide.Codons.PadCodon padCodon, MonoDevelop.Ide.Gui.PadWindow window, Gdl.DockItem item) [0x00000]
    at MonoDevelop.Ide.Gui.SdiWorkbenchLayout+c__CompilerGenerated76.c__77 (System.Object +41, System.EventArgs +42) [0x00000]
    at GLib.Signal.voidObjectCallback (IntPtr handle, IntPtr gch) [0x00000]
    What can I do to fix it?

    P.S: I like the style of this leave comment form.

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.