- How can I install a .bin file?
- 8 Answers 8
- Arch Linux
- #2 2008-01-25 22:07:13
- Re: /usr/bin/install is missing!
- #3 2008-01-25 22:10:50
- Re: /usr/bin/install is missing!
- #4 2008-01-25 23:16:36
- Re: /usr/bin/install is missing!
- #5 2008-01-25 23:27:32
- Re: /usr/bin/install is missing!
- #6 2008-01-25 23:39:01
- Re: /usr/bin/install is missing!
- #7 2008-01-25 23:40:25
- Re: /usr/bin/install is missing!
- #8 2008-01-26 01:06:30
- Re: /usr/bin/install is missing!
- What does /usr/bin/install do besides copying?
- 2 Answers 2
- What is the practical purpose of -c in the linux install (/usr/bin/install) command?
- How to install to /usr/bin directory?
- 2 Answers 2
How can I install a .bin file?
I want to update Acrobat Reader for Firefox, but the download has the .bin extension. How can I install it?
You should always try to install software from repositories (that is using synaptic/software center) to get security updates, new release,etc much more easily. Please note that you won’t get support (from launchpad.net, ubuntuforums.org or other Ubuntu support channels) for applications that aren’t installed from official sources.
8 Answers 8
Go into a terminal and issue the following command in the directory where the bin file is,
If you get a permission error and/or you’re dealing with an installer that applies system-wide changes you might have to launch your application with root privileges:
Hi, I am very illiterate in terminal. I have the bin file in desktop. Please tell me how to execute it. thanks
In terminal type cd Desktop and press enter.And then type chmod a+x name_of_file.bin and press enter.Finally type sudo ./name_of_file.bin It will install the bin file.
if you wanted to do this without the terminal you can flip executable bit with right click properties -> permissions -> set executable bit. but run as I don’t know how to do without a terminal
Right click and select properties then go to permissions tab and tick allow excecuting.
Now double click the file and select run.
Some binaries require to be run from a terminal. If that’s the case with your .bin file and/or nothing happens after double-clicking, drag the file into a new terminal window and run it by pressing ‘Return’. The output should give you a clue on what’s wrong.
So! 1. I changed the «allow exectuing » from properties. 2. used chmod to change permission, currently the permission is -rwxr-xr-x- 3. then i executed using .?filename.bin there is no response after that! what should i do?
If you want to globally install any binary, use the install command.
sudo install ./mybin /usr/bin/
The install command is used to copy files, and it does so by combining several commands into one to make them easy to use, i.e. cp , chown , chmod , and strip .
I want to update the Acrobat reader for firefox.
Adobe Reader is available in the Software Center.
Important note: This is only relevant for packages that don’t have a 64-bit version (e.g. Acrobat Reader). Installing ia32-libs is not required if you can download a 64-bit executable and/or are running a 32-bit system in the first place.
If your 64-bit Ubuntu doesn’t have the following package installed , you will not able to access Acrobat Reader.
sudo apt-get install ia32-libs chmod a+x yourfile.bin sudo ./yourfile.bin
Arch Linux
Well, I don’t know how this one happened. I was trying to «make install» a program I had just finished compiling, and then I get a message saying that /usr/bin/install is missing. I checked /usr/bin for «install», and it isn’t there, even though it was before. How do I fix this problem?
Last edited by Falcata (2008-01-25 22:02:46)
#2 2008-01-25 22:07:13
Re: /usr/bin/install is missing!
> pacman -Qo /bin/install
/bin/install is owned by coreutils 6.9-4
There might be a problem with that program. It should look in /bin, not /usr/bin. Or just use install directly, which is in the PATH..
Last edited by shining (2008-01-25 22:07:50)
pacman roulette : pacman -S $(pacman -Slq | LANG=C sort -R | head -n $((RANDOM % 10)))
#3 2008-01-25 22:10:50
Re: /usr/bin/install is missing!
Huh. It was always in /usr/bin on other distro’s. Thanks for the help.
EDIT: How do I fix this? I have no idea on what part of the makefile I need to modify, so I’m a little stuck. Is there a way to override it’s location, or would coping install over to /usr/bin work?
Last edited by Falcata (2008-01-25 22:21:32)
#4 2008-01-25 23:16:36
Cerebral Forum Fellow From: Waterloo, ON, CA Registered: 2005-04-08 Posts: 3,108 Website
Re: /usr/bin/install is missing!
sed -i "s#/usr/bin/install#/bin/install#g" Makefile
and see if that works. Backup the Makefile first, in case it screws something up.
Otherwise, we can’t really help you without seeing the Makefile you’re using
#5 2008-01-25 23:27:32
Re: /usr/bin/install is missing!
Well, I don’t think that I could post the makefile, due to it’s size. But, you can find the sources for the program I was trying to compile here.
Last edited by Falcata (2008-01-25 23:27:54)
#6 2008-01-25 23:39:01
Re: /usr/bin/install is missing!
#7 2008-01-25 23:40:25
Re: /usr/bin/install is missing!
Problem solved. I made a link to /bin/install under /usr/bin, and it worked fine.
Now then, another question: why did Nodoka get installed under /usr/local/lib, rather than /usr/lib?
EDIT: Should have waited a moment before posting, I guess. How do you install packages from AUR? Or packages that you downloaded onto your system?
Last edited by Falcata (2008-01-25 23:41:26)
#8 2008-01-26 01:06:30
Re: /usr/bin/install is missing!
/usr/local is the default path for make to install to. to change that, use ./configure —prefix=/usr
What does /usr/bin/install do besides copying?
«Does make install with a Makefile most of the time call /usr/bin/install?» No, it does whatever it wants. It is a make target. Is your question about the install executable? Or about make? It is not clear.
Ok, well, 1 and 2 are different questions, and the answer to 1 is, probably not, but define «most of the time». I’m not sure of the point of 1, anyway.
2 Answers 2
install offers a number of features in addition to copying files to a directory.
- the -s option removes the symbol table from an executable, saving space
- the -m option sets the permission bits. The files sitting in the developer’s directory were created subject to his or her umask, which may prevent others from executing them. install -m 755 file1 /usr/local/bin ensures that everyone can execute the file, which is likely what the developer wants for a file in a shared directory.
- the -o and -g options set the owner and group. With cp , the owner and group of the destination file would be set to the uid and gid of whoever ran the cp , and with cp -p , the owner and group of the destination file would be the same as the file in the build directory, neither of which might be what the developer wants. The wall program needs to be in group tty , the screen program needs to be group utmp , etc.
- it reduces the number of commands that need to be put in a makefile recipe. install -s -m 755 -o root -g bin file1 file2 lib/* $(DESTDIR) is more succinct than the four commands cp , strip , chmod , and chown .
The last bullet point is likely why the install command was invented and why many makefiles use it.
Install isn’t always used, though. I’ve seen cp -r lib $(DESTDIR)/lib when there’s a whole tree full of stuff to copy, and ./install.sh if the developer prefers to use a custom script. Many packages have a install.sh derived from the one that comes with X11, which is like install but supports a -t (transform) option to rename the destination files in a specified way.
What is the practical purpose of -c in the linux install (/usr/bin/install) command?
I think it exhibits the same behavior for copying files and creating directories. Also, taking a look at https://github.com/NagiosEnterprises/nagioscore/blob/master/Makefile.in#L37-L39 and https://github.com/NagiosEnterprises/nagioscore/blob/master/Makefile.in#L415-L421 we can see that these are set by the ./configure script.
Taking a look at configure.ac we see that it is the default autoconf macros that determine the binary to use: https://github.com/NagiosEnterprises/nagioscore/blob/master/configure.ac#L17-L19. And it is Nagios specific for setting the $(COMMAND_OPTS) : https://github.com/NagiosEnterprises/nagioscore/blob/master/configure.ac#L237-L240.
TL;DR: It’s a relic and doesn’t matter 🙂
Long time ago, but what’s the source of the install man page entry above? All the sources I’ve been able to find so far list «-c (ignored)»!
Historically, BSD’s install would not copy files unless specified with the -c option. GNU Coreutils’s version of install copied files by default, and provided -c as a BSD-compatibility option that is ignored. The GNU Coreutils manpage simply says
and doesn’t provide context. This is the version of coreutils present on most Linux systems.
FreeBSD’s manpage is a little bit more descriptive:
-c Copy the file. This is actually the default. The -c option is only included for backwards compatibility.
Nowadays, there’s no particular reason to use the -c option unless you want compatibility with very old systems. That being said there’s also no particular downside to leaving it in since it’s unlikely you’ll be hitting the character limit for the command line, so it’s kind of an «up to you» sort of thing.
How to install to /usr/bin directory?
New to using Linux and trying to install software called PrinceXML in the /usr/bin directory. I’ve logged in as the root user, used wget to download the package, ran tar and followed the steps to install. When asked I then chose default install directory (/usr/local). I tried again specifying /usr/bin/ When I try to access it via the PHP wrapper I get a blank screen, which I’m fairly certain is because the software is installed in the wrong location. Any guidance as to how to install into the /usr/bin directory would be greatly appreciated. This is the call from the wrapper:
$prince = new Prince('/usr/bin/prince');
2 Answers 2
You specified /usr/bin as the prefix, rather than simply /usr . Probably your program is now distributed across /usr/bin/lib , /usr/bin/share , /usr/bin/bin etc.
You really shouldn’t mess around with /usr/bin , your package manager manages this directory. Try to incrementally uninstall your software and reconfigure it again with /usr/local or /opt/prince as the install directory. Then adapt the wrapper to call the correct binary.
Wouldn’t you specify /usr instead of /usr/local if you wanted it in /usr/bin instead of /usr/local/bin ?
Where is it installed? You can use the which command to find out where it is in your path. Does your PHP program need to specify an absolute path, or can it execute it with just the app name?
Makes sense. From Plesk it looks like the files are located in usr/local/lib/prince/ — what’s strange is when I change the directory in the PHP same issue. I’m going to look into the which command.