Ubuntu – Determining what files a package updates / copying software between machines

clipboardcompilinginstall-from-sourcepackage-management

How do I determine which files comprise an application (built from source, not from a repo), so I can copy it?

I built an application from source, but because the libraries it needed to build were not compatible with the system that will run it, I had to build it in a VM. (I am sure there is some way of maintaining two different sets of libs, but I don't know how).

It doesn't need those updated libraries to run, so I need to find out what I need to copy.

I thought of capturing the output of sudo make install, but that doesn't seem to work. I could do a diff of files on the whole system but there must be an easier way? Maybe if I pack it into a .deb or something?

Best Answer

How do I determine which files comprise an application (built from source, not from a repo), so I can copy it?

The easy solution for most cases is to simply use checkinstall, which will create a .deb file that you can not only install on other (compatible) systems, but also allows you to uninstall the package.

  • sudo apt-get install checkinstall -y
  • When done with make, run checkinstall instead of make install
  • checkinstall will install your application AND give you a .deb file in the current (source) folder which you can simply copy and install on other systems with dpkg -i
  • Use dpkg -r application-name to remove the application at any time (should also work from Synaptic)

Please see this community help page and the author's home page if you need more information.