4

On one computer I installed an application from source using configure make and make install. Now I want to install the same application on another computer that lacks gcc, make and all the other build tools. Both computers are running Kubuntu 12.04. How can I locate all the files to copy to the second computer? What other installation steps are needed? This is a command line app.

I don't want to install build essentials on the 2nd computer. (It's a small laptop.)

MountainX
  • 17,948
  • You may choose between Create a deb package or compile it statically. What dependency does this app need ? – daisy Apr 25 '12 at 02:16
  • it depends on a number of sound libraries and maybe other things. I'm not sure. I think I could build it statically with ./configure --disable-shared on the first computer, but it is already installed there and I don't want to change that installation. I'll leave it using shared libs there. So I guess the best bet is to make a deb package. Is that easy? – MountainX Apr 25 '12 at 02:39

2 Answers2

5

If your source code already have debian configuration files , you'll just need to run (in the sorce directory):

dpkg-buildpackage

Otherwise you can create a deb package with checkinstall

Launch the configure script first , e.g ./configure --prefix=/usr , then do

checkinstall --install=no

Running on Ubuntu 12.04 LTS

It will ask few questions , just fill the fields , so you can identify it laterly.

If it successed , you will see a *.deb package out of the source directory.

Copy and install it on the other computer.

daisy
  • 54,555
2

One option is to make a deb package.

Another option is to compile the application to a directory of its own. This is a good idea whenever you compile something without using a package manager. Most open source applications use automake and autoconf with typical configurations and default to installing under /usr/local. You can usually configure the application to install to a different directory by passing --prefix=… to the configure script.

./configure --prefix=/usr/local/stow/myapp-4.2
make
make install

Stow is a program that manages symbolic links for packages installed in their own directory, so if myapp has a binary that gets installed as /usr/local/stow/myapp-4.2/bin/myapp, running stow myapp-4.2 in the /usr/local/stow directory will create a symbolic link to that binary in /usr/local/bin. See Keeping track of programs for more information about stow.

Once you've installed the program in its own directory, you can easily build a zip or tar archive of it and unpack it on another machine. Run stow on the other machine as well.

Note that compiling a program on one system may produce executables that don't work on the other systems. Between two installations of the same version of the same distribution, you won't have any problem. But if the systems have different versions of shared libraries, the binary will sometimes not work on the other machine for lack of the required libraries. You can get around this by linking some libraries statically or by installing the right development packages on the build machine.