error `eval: 1: ./shoes: not found` #155

Closed
jrgifford opened this Issue Oct 27, 2011 · 17 comments

Projects

None yet

6 participants

@jrgifford
Member

Ubuntu 11.10, 32-bit.

Steps to reproduce:

  1. Download shoes.run from Github.
  2. chmod +x ./<shoes-filename.run> in terminal.
  3. Run the shoes.run file.
  4. Appears to uncompress fine, ends with eval: 1: ./shoes: not found.
@jrgifford
Member

After investigating, this appears to be related to bitrot and downloading the .run file from github's https server. Works fine if I download from a normal HTTP server.

@igorcavalcante

I have the same problem on my Ubuntu 11.10 64 bits. Im trying to run ./shoes-3.1.0.run and i receive de error eval: 1: ./shoes: not found

Maybe the package for linux was corrupted or something like this. Im using now shoes 3 with no problems but i want to use shoes 3.1.

Thanks for any help. :)

@jrgifford
Member

@igorcavalcante Where did you download this from? From here?

@jrgifford
Member

Also just compiled shoes out of the develop branch on 10.04, and I get the same error. I don't think this is a problem with github.

@ccoupe
Contributor
ccoupe commented Nov 11, 2011

I just cloned Shoes 3.1 on my Ubuntu 11.04 (64bit) and it fails to build (copying sqlitel3.so). That's a bug that I fixed and reported, and was accepted and somehow got mungled in the interwebs. Delete line 38 of make/linux/tasks.rb. It compiles and it runs with when I use the proper path to start it. This test was done in ~/Projects/shoes3.1/shoes so for me

ccoupe@twb:~/Projects/shoes3.1/shoes$ ./dist/shoes

That bug is for building from source. There may be a different but related bug when packaging a .run and then attempting to install the .run

@solo123
solo123 commented Nov 25, 2011

still got eval: 1: ./shoes: not found error. not resolved yet?

@ccoupe
Contributor
ccoupe commented Nov 25, 2011

Can you build Shoes from source? Make sure there is a dist/shoes-bin that is about this size:

ccoupe@twb:~/Projects/shoes3.1/shoes$ ls -l dist/shoes-bin
-rwxr-xr-x 1 ccoupe ccoupe 12982 2011-11-10 21:21 dist/shoes-bin

@jrgifford
Member

@ccoupe - if you look back, this is related to the .run file - compiling your own version of shoes isn't really related. :)

@steveklabnik
Member

It would help them get running with Shoes until we get a fix, though. ;)

@alzeih
alzeih commented Dec 29, 2011

Maybe I'm reading it wrong, but the issue seems to be there is no shoes script to run after extracting the package?

In https://github.com/shoes/shoes/blob/develop/make/linux/tasks.rb#L64

sh "makeself dist pkg/#{PKG}.run '#{APPNAME}' ./#{NAME}"

If I run ./shoes-3.1.0.run --noexec it runs fine (but doesn't install), and I can't seem to find a shoes script anywhere ( looking through ./shoes-3.1.0.run --list )

Does this file already exist somewhere, or what does it need to do to install shoes?

I'd like to reopen this issue as I have the same setup as the reporter and can reproduce it.

@steveklabnik
Member

what does it need to do to install shoes?

The .run file runs shoes, it doesn't 'install' it anywhere. It extracts stuff out into a .tmp directory, and then executes things. You'd run the .run every time you want to run shoes.

@jrgifford
Member

It appears to be "resolved" by wrapping the shoes .run file in some sort of an archive (tar, bzip, zip etc).

However, while this might in theory "solve" the issue, it's more of a band-aid than a solution unfortunately.

Unless of course as part of the magic rakefile that makes the .run, it zips it up… hmm. What are your thoughts on that @steveklabnik?

@ccoupe
Contributor
ccoupe commented Dec 30, 2011

The run file is a shell script with a binhexed tarball included. Inside the tarball there might be a shoes script and/or a linux binary Shoes image of the creators shoes installation.

The .run scripts looks to see if It's already installed shoes in ~/.shoes. If it finds one it won't reinstall shoes it just executes the one in the ~./shoes . If that version has an error - 32/64 mismatch or debian/unbuntu/arch/fedora libraries or even a error in one of the shell scripts or permission settings it will continue to fail until it's cleaned out of ~/.shoes and the problem is fixed by regenerating a new download

Naturally, it's all explained in the shell scripts that get packed into a .run by the rakefile AND how the rake file builds shoes on your system. After you think about what those shell scripts do when executing on a users machine of different arch or os version, you'll think "Linux users should build from source and I shouldn't make a Shoes-install.run available for download that is likely to fail" Or you'll think "I'm a gifted shell scripter and I can fix this with my bash skills". I thought I dissected .run files with a wiki article but maybe I didn't get around to it.

@steveklabnik
Member

I thought I dissected .run files with a wiki article but maybe I didn't get around to it.

I don't think you did. What you did write is totally awesome, though. :)

@ccoupe
Contributor
ccoupe commented Dec 31, 2011

Sigh. I only hinted at the structure of the .run in https://github.com/shoes/shoes/wiki/A-Developer%27s-Tour-Through-The-Magic-Packager. Perhaps I'll add a more technical details just to complete the docs but that won't stop people from believing they can package a linux binary

The proper way to distribute a shoes install in Ubuntu is a ppa (32/64, 10.+, 11+) or at least a .deb (both practically) and maintain them as shoes evolves. Lots of ways to get that wrong and kind of un_why-like. And the do the same for Fedora and Suse and Arch and maintain those too. OR a whole lot of love and testing applied to the Linux shell scripts involved and the rakefile and pack.rb that builds the run. We can't get Windows correct in packaging/install and struggle with OSX, Linux is even harder than the shifting versions of Windows and OSX. We are few and they are many.

@steveklabnik
Member

Perhaps I'll add a more technical details just to complete the docs but that won't stop people from believing they can package a linux binary

One of my new years' goals is to go through and comment the crap out of Shoes. Any help there would be very, very welcome.

The proper way to distribute a shoes install in Ubuntu is a ppa (32/64, 10.+, 11+) or at least a .deb (both practically) and maintain them as shoes evolves.

Agreed. We've got something going, @jrgifford was working on it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment