1

I've seen both these ways suggested for installing packages manually, but I don't know the difference:

dkpg -i <pkg>.deb

and

./configure
make
make install

So how do they differ? Is the former one only a "more automated" way of just doing the same thing as the latter one? Or they are completely different?

(P.S: Asked here because dpkg is "debian package").

Edit: After reading the answer by Rajat Pandita I see that using make involves compiling of program from source while dpkg just knows best how to organize the compiled program in different directories. There's another question on the network asking about the difference between apt-get and dpkg which is obviously different from this question.

aderchox
  • 202
  • 1
    configure/make is a very old, non-standard way of installing software that has nothing to do with packages at all. In Debian systems, it was replaced by the more robust dpkg-based package system about 25 years ago. dpkg was itself subsumed into the safer and easier apt repository-based package system about 20 years ago. – user535733 Feb 17 '19 at 05:05
  • @user535733 Wow I was definitely behind in old times :) Yes I also usually use apt personally and it's a perfect tool. Thanks for the great information. – aderchox Feb 17 '19 at 05:08
  • @user535733 BTW, I think one advantage of dpkg over apt is however its ability to install packages locally (that have been previously downloaded), with dpkg -i but I don't think there's one for apt. – aderchox Feb 17 '19 at 05:14
  • ./configure runs the configure script that searches & detects what unix (or in modern days posix or linux) system you have, checks requirements are there for later steps. make & make install compile the source & then install. These steps I learnt in the 1980s (pre-linux) being designed to work regardless of OS. dpkg uses packages (usually binaries pre-compiled) and not compiling from sources. – guiverc Feb 17 '19 at 05:14
  • If you provide a path to the package, apt will installed pre-downloaded .deb files too. (including dependencies if in your sources) – guiverc Feb 17 '19 at 05:16
  • @guiverc Oh very informative. I appreciate for both comments. – aderchox Feb 17 '19 at 05:17

2 Answers2

1

dpkg is a program on a Debian/Ubuntu or any derivative distribution for installing already packaged applications. The Difference is very simple, a .deb file is a compiled package of application binaries. It has inbuilt logic for placing the different files indifferent directories.

For example, the executable for the application goes into /usr/bin, However the point to note here is that .deb is a packaged binary file which contains compiled software. You do not get to see the source, Hence Many Companies tend to publish their proprietary software in .deb/.rpm format.One such example is Insync, another is Crossover for Linux. Both these are proprietary but distributed as a .deb or a .rpm file.

Here is the gist.

dpkg -i

Means you are installing a compiled and packaged application to run on any Linux distribution which uses .deb format for installing packages.

and

./configure make make install

Means that you have the source code for the application which you are installing. You are now compiling manually by using the compiler(configure and then followed by make.) on the system rather than the package manager. The make install command will then install the software on the system. this method works regardless of the distribution you are installing on.

  • when your try to uninstall, it becomes complicated if you installed with make install. This is where checkinstall comes in handy https://wiki.debian.org/CheckInstall – AlexOnLinux Feb 17 '19 at 08:04
  • 'checkinstall' will build a deb file for you and then you can easily install it easily and be able to remove it too using Synaptic of apt too.. – Rajat Pandita Feb 17 '19 at 13:18
0

Well, both methods don't have auto updating. They suggest adding an apt repository with the .deb which is updated by a package maintainer. Then when you do system updates, the program will be updated alongside your other .deb packages. dpkg is the Ubuntu default package manager because it's derived from Debian. The whole system is installed using it.