You are not logged in.

#1 2009-07-01 03:55:20

eulallia1
Member
Registered: 2009-04-08
Posts: 3

Unable to execute a file which is shown to exist by ls

Like I said, ls reports the file as existing, colors the filename green showing it's an executable, which was confirmed by `ls -l`. Normal file manipulation such as rm, mv, cp, etc all seem to work. Bash can not execute the file, reporting it as non-existant, and sh can't execute it either.

It might be a permissions issue but I doubt it, the file's permissions are as follows: All can read, only the owner can execute, write, AND read.

The file along with the others in the directory were extracted from a zip archive by the latest version of unzip (as pulled from the arch repos).

Last edited by eulallia1 (2009-07-01 13:08:38)

Offline

#2 2009-07-01 04:50:06

fukawi2
Ex-Administratorino
From: .vic.au
Registered: 2007-09-28
Posts: 6,223
Website

Re: Unable to execute a file which is shown to exist by ls

What is the output of:

ls -lh
file chrome
uname -a

Offline

#3 2009-07-01 04:52:33

skottish
Forum Fellow
From: Here
Registered: 2006-06-16
Posts: 7,942

Re: Unable to execute a file which is shown to exist by ls

Welcome to the forums eulallia1.

Let me guess, you're on 64 bit. If so, you're trying to run a self-contained 32 bit executable without the necessary 32 bit libraries.

Look at the AUR page for Chrome to see its dependencies. Then you can install some of the 32 bit libraries through pacman. They're all prefixed with lib32 (lib32-gcc-libs for instance). The rest are probably in AUR.

Offline

#4 2009-07-01 07:34:56

fukawi2
Ex-Administratorino
From: .vic.au
Registered: 2007-09-28
Posts: 6,223
Website

Re: Unable to execute a file which is shown to exist by ls

That was where I was going... You're too nice giving the answers away skottish tongue

Offline

#5 2009-07-01 13:08:23

eulallia1
Member
Registered: 2009-04-08
Posts: 3

Re: Unable to execute a file which is shown to exist by ls

skottish wrote:

Welcome to the forums eulallia1.

Let me guess, you're on 64 bit. If so, you're trying to run a self-contained 32 bit executable without the necessary 32 bit libraries.

Look at the AUR page for Chrome to see its dependencies. Then you can install some of the 32 bit libraries through pacman. They're all prefixed with lib32 (lib32-gcc-libs for instance). The rest are probably in AUR.

You're correct about the 64-bit architecture and running native 32-bit binaries. I had this same problem firefox 3.5.

Also, here's the output of the requested commands (telling you what you expected):
snap.jpg
Sorry for the image size, I really didn't want to crop it.

Anyway thanks for (probably) resolving my issue, in all honesty (just being curious), why was it being reported as not existing if it's such as simple issue as not having the proper libraries? It wasn't executed because the libraries were not found and bash just decided to report the file as non-existant?

(EDIT):
While I've found some of the libraries, one lib32- version of a library I can't seem to be able to find. Also, pacman has the latest definitions. The library I can't install is gconf.

pacman -S lib32-gconf fails.

Last edited by eulallia1 (2009-07-01 13:23:23)

Offline

#6 2009-07-01 15:10:32

mcmillan
Member
Registered: 2006-04-06
Posts: 737

Re: Unable to execute a file which is shown to exist by ls

gconf isn't a library file. It should probably work using the 64bit version of it, so pacman -S gconf

Offline

#7 2009-07-01 16:54:36

eulallia1
Member
Registered: 2009-04-08
Posts: 3

Re: Unable to execute a file which is shown to exist by ls

mcmillan wrote:

gconf isn't a library file. It should probably work using the 64bit version of it, so pacman -S gconf

Oh, thank you. I'm not entirely used to linux yet, even though I've used it for months.

Well I'm having a different issue now at the moment. lib32-nss is installed but chrome is reporting an error stating that it's elf-class is ELFCLASS64, so the library is 64-bit. Where do I find the 32-bit nss Library (locally, as lib32-nss was installed by pacman)? At first, chrome threw an error because it couldn't find libnss3.so.1d, so I copied libnss3.so as libnss3.so.ld.

(Edit)
I fixed that issue.
Chrome is now throwing an error before execution (before it was because it couldn't handle the 64-bit libraries so I had to copy the 32-bit versions from /opt/lib32/), about libgconf-2.so.4, because it is 64-bit. This may sound like a repeat of the issue before but it truly is not. This time, due to ambiguous naming conventions I can not replace the library it is complaining about because it is in a sense, a necessity. Things could quite easily go wrong if I replaced it with a 32-bit library just to satiate chrome.

In short, Is there some prefix path variable or something, thus eliminating chrome's constant checks of /usr/lib and instead redirecting them to /opt/lib32?

Because I believe I've heard of a variable which contains colon separated library directories for applications to check through but I can't remember what it was called, just that it was a part of ldconfig.

Finally, (hopefully after this question and the prior question, there won't be anymore hmm),
is there a way to install a 32-bit version of libdbus-glib? E.g., using make to compile a 32-bit version. (Edit: Compiling the latest dbus-glib doesn't work, as online forums seem to say that a 32-bit version 'libc9' (ubuntu forums) is necessary. Glibc is installed in both 32-bit and 64-bit versions on this system)

Last edited by eulallia1 (2009-07-01 17:33:59)

Offline

#8 2009-07-01 20:23:30

rwd
Member
Registered: 2009-02-08
Posts: 664

Re: Unable to execute a file which is shown to exist by ls

I know this doesn't answer your question but if you goal is to have a fast webkit based browser instead of specifically Chrome (which is still incomplete/beta for Linux) , try Midori instead.

Last edited by rwd (2009-07-01 20:24:30)

Offline

#9 2009-07-01 20:35:03

ngoonee
Forum Fellow
From: Between Thailand and Singapore
Registered: 2009-03-17
Posts: 7,355

Re: Unable to execute a file which is shown to exist by ls

It looks like you're trying to do very involved 32-bit related stuff in Arch64. Nothing wrong with that, but I've found it easier to use a 32-bit chroot for things like this. That way, you take advantage of the actual repo packages and all their dependencies, rather than depending on a whole lot of lib32s. And as long as you remember to check the ELF of a new executable/program, you just run it in the chroot if necessary or in your own install if not.

http://wiki.archlinux.org/index.php/Arc … bit_system


Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.

Offline

Board footer

Powered by FluxBB