Re: make command understanding
Reading the other replies, I suspect you are talking about compiling Debian source packages or something else, while make is not the only thing coders do use, for make you usually have to run three command configure make make install resp. make love, not install - from another Linux user configure make checkinstall sometimes you'll use additions, such as ./configure --prefix=/usr/local to give the pass where it should be installed, or you'll say how many jobs should run etc., resp. for Debian you say how much jobs should run by setting a variable, e.g. CONCURRENCY_LEVEL=2 Configure will configure and usually check dependencies, make will compile and make install will install, resp. checkinstall will build a package. On Debian there are other ways to build packages too. Regards, Ralf -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/op.wrrog1n7qhadp0@freebsd
Re: make command understanding
On 01/31/2013 08:44 AM, Muhammad Yousuf Khan wrote: i normally install things from the repository of debian by apt-get install however just need to know if in case circumstances push me to compile things at some point.so the question that i am asking is just for learning purpose. i have seen on youtube people first un-tar the package (e.g. spamassassin) then they some time run make command only without any parameter at the end of it and then in next command they run make install so the question is whats does that first make command does, why we do not directly use make install Thanks, Hi, make does what is written in a Makefile. Depending to the source code distribution it can vary a lot. So the first thing before compiling, is to look to a README or INSTALL files shipped with the source and look to the Makefile. Regards, Alex -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/510a33c7.9030...@biotec.tu-dresden.de
Re: make command understanding
Thanks all , thanks for the detailed answer but do you think compiling is a good solution to go-with, except installing the package from repository. i have heard that people always suggest to install packages from repository not by compiling. i know repo should contain old release but stable one however, for more option and newer releases one should need to compile it from source. but my question is, what pros do normally ? On Thu, Jan 31, 2013 at 2:05 PM, Alex Mestiashvili a...@biotec.tu-dresden.de wrote: On 01/31/2013 08:44 AM, Muhammad Yousuf Khan wrote: i normally install things from the repository of debian by apt-get install however just need to know if in case circumstances push me to compile things at some point.so the question that i am asking is just for learning purpose. i have seen on youtube people first un-tar the package (e.g. spamassassin) then they some time run make command only without any parameter at the end of it and then in next command they run make install so the question is whats does that first make command does, why we do not directly use make install Thanks, Hi, make does what is written in a Makefile. Depending to the source code distribution it can vary a lot. So the first thing before compiling, is to look to a README or INSTALL files shipped with the source and look to the Makefile. Regards, Alex -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/510a33c7.9030...@biotec.tu-dresden.de -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/cagwvfmnwmgosw1ruab6nnwqle-pljwxughnzd6atwn3nbkw...@mail.gmail.com
Re: make command understanding
Le 31.01.2013 13:15, Muhammad Yousuf Khan a écrit : Thanks all , thanks for the detailed answer but do you think compiling is a good solution to go-with, except installing the package from repository. i have heard that people always suggest to install packages from repository not by compiling. i know repo should contain old release but stable one however, for more option and newer releases one should need to compile it from source. but my question is, what pros do normally ? I do not know what pro (I guess you are speaking about pro administrators, which I am not) do normally, but I can say that installing packages is safer and easier: _ easier to remove _ easier to maintain _ tried by other (at least, by people who made them) _ they can be signed _ less dependencies (no need to install all *-dev packages of their dependencies, and their own dependencies, same for makefile generators: someone has spoken about ./configure, but there is also cmake, qmake, scons, and many other) Generally speaking, I think using distro's packages is ideal. Then, if you think they are too old, try to install developers' packages. If they does not exists, compile the software. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/2f205ce69b73822ccb63500afce26...@neutralite.org
Re: make command understanding
* On 2013 31 Jan 06:16 -0600, Muhammad Yousuf Khan wrote: Thanks all , thanks for the detailed answer but do you think compiling is a good solution to go-with, except installing the package from repository. i have heard that people always suggest to install packages from repository not by compiling. i know repo should contain old release but stable one however, for more option and newer releases one should need to compile it from source. but my question is, what pros do normally ? I'm no pro but sometimes there is no other way to get something more up to date with better hardware support, particularly now that Debian 7 is getting closer to release. That said, there is generally little conflict between locally compiled packages and those installed via apt. Debian is well designed to facilitate locally compiled packages. It does this by reserving the /usr/local hierarchy for the administrator to install locally compiled packages. A properly implemented source package will confine its files to that area to avoid conflict with distribution supplied packages. Many source packages these days use the GNU Autotools and a properly built source package will contain a 'configure' shell script that will create the various Makefiles. In fact, most packages using Autotools will not have any Makefiles until configure is run. Before running 'configure' one should read any README and/or INSTALL files as afore mentioned, and then run './configure --help' to look for any options you might need to set (use Shift-PageUp to read the scrollback). One important option to look for is '--prefix' which usually defaults to '/usr/local' but can also be set to, say, '$HOME/local', for example, to install the package to your home directory. Then run 'configure' with any options followed by 'make' and then as root (or using sudo) 'make install'. To remove the package later use 'make uninstall' as root. If you're installing a library, you will also need to run 'ldconfig' as root to register your locally compiled library with the dynamic loader configuration. If one is just the least bit careful, locally compiled packages will not cause a conflict on the system. :-) Building from source is also a good learning experience and knowing how to do it is essential for doing any sort of C/C++ programming. Have fun! - Nate -- The optimist proclaims that we live in the best of all possible worlds. The pessimist fears this is true. Ham radio, Linux, bikes, and more: http://www.n0nb.us -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20130131131740.gs28...@n0nb.us
Re: make command understanding
On Thu, 2013-01-31 at 17:15 +0500, Muhammad Yousuf Khan wrote: Thanks all , thanks for the detailed answer but do you think compiling is a good solution to go-with, except installing the package from repository. i have heard that people always suggest to install packages from repository not by compiling. i know repo should contain old release but stable one however, for more option and newer releases one should need to compile it from source. but my question is, what pros do normally ? I very often compile software myself, but only if I've got a reason to do it. This isn't better or less good than using packages from the repositories. Reasons for me are helping a developer by testing software, to disable or enable options or because it's simply needed, e.g. to get new hardware running. Some people wish to add proprietary stuff to an application, that can't be included by the distro and some OS simply don't have binary packages or it's very uncommon to use those OS with packages. If you have got a very old CPU, you might need to recompile some packages, to get _less good_ math support. Last but not least, some people simply want to learn, just for fun. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1359639391.2149.18.camel@precise
Re: make command understanding
On Thu, 2013-01-31 at 13:29 +0100, berenger.mo...@neutralite.org wrote: _ easier to remove No, self compiled is as easy to remove as a package _ easier to maintain No, simply build a package _ tried by other (at least, by people who made them) Correct, they are tested by the community, the people who build the packages often don't test their packages _ they can be signed If you build the packages yourself, than there is no need to sign it, but if you like, than sign your own packages _ less dependencies (no need to install all *-dev packages of their dependencies, and their own dependencies, same for makefile The dependencies for the build package or directly installed software are the same, just for compiling you need headers. It's a bad habit of Debian to separate software into app, libs and headers and often it does cause serious issues, just take a look at the jack devel mailing list archive. People don't care about bloated DEs, but they care about some bytes to have everything linked correctly, by one package, two policies that don't fit together. generators: someone has spoken about ./configure, but there is also cmake, qmake, scons, and many other) such as ./waf -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1359640034.2149.26.camel@precise
Re: make command understanding
--- On Thu, 1/31/13, Muhammad Yousuf Khan sir...@gmail.com wrote: From: Muhammad Yousuf Khan sir...@gmail.com Subject: make command understanding To: debian debian-user@lists.debian.org Date: Thursday, January 31, 2013, 1:44 AM i normally install things from the repository of debian by apt-get install however just need to know if in case circumstances push me to compile things at some point.so the question that i am asking is just for learning purpose. i have seen on youtube people first un-tar the package (e.g. spamassassin) then they some time run make command only without any parameter at the end of it and then in next command they run make install so the question is whats does that first make command does, why we do not directly use make install Thanks, I recently compiled a .deb for the latest Oracle java from source using this tut. It appears in synaptic and/or can be handled by apt-get: http://forums.debian.net/viewtopic.php?f=16t=77140 And here's a how-to build from source that has several options: http://forums.debian.net/viewtopic.php?f=16t=38976 -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1359641255.2005.yahoomailclas...@web163402.mail.gq1.yahoo.com
Re: make command understanding
_ less dependencies (no need to install all *-dev packages of their dependencies, and their own dependencies, same for makefile The dependencies for the build package or directly installed software are the same But it's not completely untrue, that there could appear dependency issues. If Debian stable is aged, then it often is completely outdated and it can become nearly impossible to compile latest software for an aged Debian stable. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1359641855.2149.33.camel@precise
Re: make command understanding
Le 31.01.2013 14:47, Ralf Mardorf a écrit : On Thu, 2013-01-31 at 13:29 +0100, berenger.mo...@neutralite.org wrote: _ easier to remove No, self compiled is as easy to remove as a package Of course, there are the make uninstall co commands, but can you use them with a centralized package manager software with a GUI like aptitude or synaptics? I do not think so. I think you need to run a terminal in the directory where you have the right makefile to run a command. I know that running commands is easy. At least, for me. But not for many users. _ easier to maintain No, simply build a package But in this situation, you are not using the usual ./configure make make install, you add at least 1 step ;) Just joking, of course. You are true, I've forgot that option. But when the option to build a package exists, I've noticed that often, there is a package, too, and that it's ea _ less dependencies (no need to install all *-dev packages of their dependencies, and their own dependencies, same for makefile The dependencies for the build package or directly installed software are the same, just for compiling you need headers. Not everyone is using autotools (and so, configure files), and so you have sometimes to install makefiles generators, such as cmake. I do not often compile external stuff myself, but for now, I think I have seen more often cmake than configure, speaking about that. And, to be honest, I like that, because it's far easier, for the user (colored logs, easy to read missing dependencies) and for developers (the CMakeLists.txt syntax is really easy to use, and I were able to read it and fix an error the first time I've seen it. For configure stuff, I still have no idea about how it is possible to create/maintain those things.). Of course, it is only my opinion, and many people probably think configure is better. This is not the subject here, I was just saying that I think that configure is loosing terrain. But you are technically right: the only dependencies are the development headers of the libraries the software would need anyway. It's a bad habit of Debian to separate software into app, libs and headers and often it does cause serious issues, just take a look at the jack devel mailing list archive. People don't care about bloated DEs, but they care about some bytes to have everything linked correctly, by one package, two policies that don't fit together. No, I worry a lot about bloated DE, this is why I does not use any DE (but I use graphical environment anyway, of course), and I do not need most -dev packages. So, separating is a good idea for me. Currently, if I remove all stuff I have in libdevel, which a normal user would do, it would free 471MB. Yes, I know, it's nothing nowadays... but I still have an old computer with HD of 80GB. When I get it (2 years ago), the HD was a 10GB. On 10GB, 470M are not nothing. Also, it allows to reduce space used on installation medias. Except the point of HD space, there is also the problem of bandwidth. I know that headers have a high compression ratio, since they are text files, but I think on the scale of debian, that might be quite huge to send. So, do not say bad habit, just habit ;) OT: I would like to know what kind of issue separating them might cause. I'm surprised that this is even possible, since when you install a dev file, it is only the headers corresponding to the binary you already have installed? Except if you force apt(itude) to install them in different versions than the installed one (which would break the package and so apt(itude) would not let you do that) I do not see how something can be broken by splitting dev/bin packages? -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/911e6453f2c22a3e195a983572977...@neutralite.org
Re: make command understanding
On Jo, 31 ian 13, 14:47:14, Ralf Mardorf wrote: On Thu, 2013-01-31 at 13:29 +0100, berenger.mo...@neutralite.org wrote: _ easier to remove No, self compiled is as easy to remove as a package You are assuming that both 'make install' and 'make uninstall' are correct and maintained. At least for Debian I know there are ongoing (automated) efforts to make sure packages install/uninstall correctly (piuparts). _ easier to maintain No, simply build a package Which is an additional step. And you also have to watch for security problems yourself. Now add to this that upstreams might not fix security issues in older versions (if they don't do stable releases) you end up in the situation where you are forced to upgrade to a newer version (including many build dependencies, just for fun) or backport the security patch yourself. Good luck. _ tried by other (at least, by people who made them) Correct, they are tested by the community, the people who build the packages often don't test their packages Even if the Maintainer doesn't test own packages[1], Debian has also a lot of automated tests. In case of obvious grave problems it is even impossible to upload the package (automatic rejections). [1] most Maintainers take over the maintenance of a package because they are using it themselves. _ less dependencies (no need to install all *-dev packages of their dependencies, and their own dependencies, same for makefile The dependencies for the build package or directly installed software are the same, just for compiling you need headers. It's a bad habit of Debian to separate software into app, libs and headers and often it does cause serious issues, just take a look at the jack devel mailing list archive. I don't think so. I see no reason to have development headers installed on my Raspberry Pi running from a 2G SD card. People don't care about bloated DEs, but they care about some bytes to have everything linked correctly, by one package, two policies that don't fit together. As I've already pointed out to you in a different thread, installing without a DE is very easy. That is, if you don't like any of the 4 (four) choices offered[2]. Gnome is just a default, and it's easily changed. [2] and this is just stable and wheezy. Unstable already has razor-qt, which looks promising if you like/need QT. Kind regards, Andrei -- Offtopic discussions among Debian users and developers: http://lists.alioth.debian.org/mailman/listinfo/d-community-offtopic signature.asc Description: Digital signature
Re: make command understanding
Muhammad Yousuf Khan sir...@gmail.com writes: Thanks all , thanks for the detailed answer but do you think compiling is a good solution to go-with, except installing the package from repository. i have heard that people always suggest to install packages from repository not by compiling. i know repo should contain old release but stable one however, for more option and newer releases one should need to compile it from source. but my question is, what pros do normally ? Unless you've got a good reason (it isn't in the repository, or you need something more recent than has made it to the repository, or you want to make some modifications to it are the three that come to mind immediately), install from the repository. There are three major advantages to this: (1) the developer may be working with a directory structure that's different from the Debian structure. The package maintainer will have patched the package to match the Debian structure. (2) the version from the repository will (probably -- exceptions constitute bugs) have been compiled and tested against versions of libraries and other programs that you've got on your system. (3) if you can't install, the package manager will know what other packages you need in order to fix the situation. If you compile from source, (1) says you can get stuff installed someplace weird, (2) says you may trigger bugs that wouldn't have turned up in the version in the repository, and (3) says if compilation fails you're completely on your own to guess what additional software you need to install -- and that may not be in the repository either. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1bvcacg3zh@snowball.wb.pfeifferfamily.net
Re: make command understanding
Thanks all for all the detailed answers :) very helpful. On Fri, Feb 1, 2013 at 7:30 AM, Joe Pfeiffer pfeif...@cs.nmsu.edu wrote: Muhammad Yousuf Khan sir...@gmail.com writes: Thanks all , thanks for the detailed answer but do you think compiling is a good solution to go-with, except installing the package from repository. i have heard that people always suggest to install packages from repository not by compiling. i know repo should contain old release but stable one however, for more option and newer releases one should need to compile it from source. but my question is, what pros do normally ? Unless you've got a good reason (it isn't in the repository, or you need something more recent than has made it to the repository, or you want to make some modifications to it are the three that come to mind immediately), install from the repository. There are three major advantages to this: (1) the developer may be working with a directory structure that's different from the Debian structure. The package maintainer will have patched the package to match the Debian structure. (2) the version from the repository will (probably -- exceptions constitute bugs) have been compiled and tested against versions of libraries and other programs that you've got on your system. (3) if you can't install, the package manager will know what other packages you need in order to fix the situation. If you compile from source, (1) says you can get stuff installed someplace weird, (2) says you may trigger bugs that wouldn't have turned up in the version in the repository, and (3) says if compilation fails you're completely on your own to guess what additional software you need to install -- and that may not be in the repository either. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1bvcacg3zh@snowball.wb.pfeifferfamily.net -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/CAGWVfMkQd23cy6PDVbi52yhmsSb_MpV5i0eZcb=gr1BQNs-=e...@mail.gmail.com
Re: make command understanding
On Thu, Jan 31, 2013 at 8:44 AM, Muhammad Yousuf Khan sir...@gmail.com wrote: i normally install things from the repository of debian by apt-get install however just need to know if in case circumstances push me to compile things at some point.so the question that i am asking is just for learning purpose. i have seen on youtube people first un-tar the package (e.g. spamassassin) then they some time run make command only without any parameter at the end of it and then in next command they run make install so the question is whats does that first make command does, why we do not directly use make install Thanks, Well... make compile existing source to binary format, and make install moves those binaries to proper location (/usr/local/sbin for instatnce). -- Best regards. Artur 'Bzyk' Frydel Always look on the bright side of life. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/cadd_rqjextdcv7fpxkjwix9rhqwgna1bm-t3idv1dwmgz9r...@mail.gmail.com
Re: make command understanding
Le 31.01.2013 08:44, Muhammad Yousuf Khan a écrit : i normally install things from the repository of debian by apt-get install however just need to know if in case circumstances push me to compile things at some point.so the question that i am asking is just for learning purpose. i have seen on youtube people first un-tar the package (e.g. spamassassin) then they some time run make command only without any parameter at the end of it and then in next command they run make install so the question is whats does that first make command does, why we do not directly use make install Thanks, Make without argument run the file ./Makefile (or ./makefile I do not remember). This usually only compile the software, without moving it's files in usual folders, which are not accessible from a normal user. make install moves files generated by make in predefined folders, on debian it is usually /usr/local but there are other classic destinations. The separation is useful because it allows to run a software without installing it for entire system. Consequences: developers can debug it without root rights, and users can use a software absent of the system without annoying the admin. It also means that if the software have a problem, and if you did not installed it, it can not damage your system: only the user's home (except if there are security flaws). On disadvantages: only the user with the binary can run the software, and he needs to configure his path to know that software. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/6530a0d52df201f77d772cc20c9b8...@neutralite.org