Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

A little Preface:
I'm unable to copy+paste between my Windows PC and a Linux machine that I'm viewing through VNC Viewer and yes the Share Clipboard option is enabled in VNC Settings.
Thus I came across autocutsel.

I downloaded it from here.
Extracted the archive and as per the readme file, ran the following commands:

./configure  
make  
make install

My expectation was that this would present me with an installable rpm file.
That however doesn't happen and instead I get this message:

[root@linuxpc autocutsel-0.9.1]# make install  
make[1]: Entering directory `/root/Desktop/autocutsel-0.9.1'  
 /bin/mkdir -p '/usr/local/bin'  
/bin/sh ./libtool   --mode=install /usr/bin/install -c autocutsel cutsel '/usr/local/bin'  
libtool: install: /usr/bin/install -c autocutsel /usr/local/bin/autocutsel  
libtool: install: /usr/bin/install -c cutsel /usr/local/bin/cutsel  
make[1]: Nothing to be done for `install-data-am'.  
make[1]: Leaving directory `/root/Desktop/autocutsel-0.9.1'   

Can somebody please help me out. This is something I never came across before.
P.S I'm using Oracle Linux.

share|improve this question

3 Answers 3

make install won't make you a rpm package, it'll just move the compiled executables into the proper places (like /usr/bin/local). You never really have to use make install; it's just a convenience that puts your executables in a central location instead of leaving them where they were built in whatever directory you put the source. The places it moves stuff to are also probably in your PATH, so you don't have to type a full path when you want to execute your stuff.

There's really no such concept as installation in Linux, insofar as it involves registry entries and arcane files hidden away in corners of the OS like in Windows. It's just putting files in more convenient, organizable places. Often the programs themselves will handle creating configuration and storage directories. Making rpm packages is somewhat more complicated and requires, among other things, that you write a .spec file which specifies things like name, version, and description, as well as instructions for what the package manager is supposed to do to build and install the raw innards.

If you look at that output:

libtool: install: /usr/bin/install -c autocutsel /usr/local/bin/autocutsel  
libtool: install: /usr/bin/install -c cutsel /usr/local/bin/cutsel 

install just copies files around and sets proper permissions on those files. autocutsel and cutsel have already been copied into /usr/local/bin.

And the last two lines:

make[1]: Nothing to be done for `install-data-am'.  
make[1]: Leaving directory `/root/Desktop/autocutsel-0.9.1'   

install-data-am is a separate make target, and for whatever reason there's nothing to do for it on your system. It's not an error, just a notification.

At this point, if you just enter autocutsel or cutsel the proper program should run. Refer to autocutsel's documentation for everything from then on.

share|improve this answer
    
That's the thing... when I type autocutsel/cutsel it just shows 'command not found'. –  Gh0sT Jan 31 at 9:21
    
Is it in /usr/local/bin? Does your PATH include that directory? –  Backgammon Jan 31 at 9:28
    
Yes it's in /usr/local/bin. I'm however not aware of PATH. Can you please elaborate.. –  Gh0sT Jan 31 at 9:50
    
PATH is an environment variable (a system setting of sorts) containing a bunch of directories. Anything in those directories can be run by just typing the filename on the command line. Usually, you have to type the full path of the file you want to run. Here's a more complete explanation: linfo.org/path_env_var.html –  Backgammon Jan 31 at 9:55
    
You may also need to run hash -r, or start a new shell. –  Mikel Feb 1 at 3:48

Some (few!) source packages offer a make-rpm or similar target, but I wouldn't trust that the result is up to snuff with respect to your distribution packaging guidelines. The Fedora RPM guidelines are perhaps the most extensive, and probably applicable with little change to RHEL.

Look if the package is available for RHEL, or check EPEL for it. If you want a slightly newer version than the one available, you can start by grabbing the source RPM, unpack it and edit it to taste. But enterprisey distributions (RHEL, SLES, Oracle Linux, CentOS, etc) prefer not to bump up version numbers ever (their users are extremely against even minor inteface changes!), so if you see an ancient version of something on which half of Internet screams is unbelievably insecure and cite a dozen CVEs and horror stories, more othen than not the distribution has fixed the problems by backporting the patches to their antiques.

In any case, using a homebrew RPM makes you responsible for integration with the system, tracking (and patching) bugs, following upstream, ... it's a lot of work, and unless you have very specialized needs I'd stay away from it.

share|improve this answer

make runs a script, called appropriately enough, a makefile. The argument you give to make specifies a target in that makefile.

Targets can do anything, though their original and most common purpose is to run a list of commands used to compile the source code. You don't need to know these commands, all you do is change to the right directory and do a make - possibly with some options if needed. Source code is typically split into many files (thousands if you are talking about something like the Linux kernel) - make exists to allow compilation of all files with one command instead of many.

The end-result executable may be in the root of that directory, in a subdirectory build, or others - it's up to whoever wrote the makefile.

Some projects/authors include an install target in the makefile. Typically this will put the executable in a directory like /usr or /bin, and copy over any library files in the right places if they were also compiled. So after a make install you usually can use the program by invoking it on the command line. This is a convention, not a standard, so specific behavior may be different depending on the author or project.

make install ought to work no matter what distribution or package manager you have going on.

I'm sure some authors/projects provide makefiles that build packages, but at that rate they may as well build and distribute the package directly.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.