SUSE / openSUSEThis Forum is for the discussion of Suse Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Hi.
I am using openSUSE 10.2 on my system. Recently, I screwed up my system while updating the kernel to 2.6.19.1 and so I had to do a reinstall. Later, while trying to install a game (Super Maryo Chronicles), I followed the following steps:
1) sh ./autogen.sh (there was a file called autogen.sh in the untarred SMC folder)
2) The above command created a file called configure in the directory.
But when I try to run ./configure, bash says "configure : Comand not found".
I tried to see if theres a manual entry for configure (man configure) but theres not even a manual entry for it.
THe thing is all these commands were working fine before the reinstall. What could be wrong? I tried the ./configure command for other packages but got the same result.
What do i need to do to resolve this?
That error message seems odd--there's a space before the colon, which smells.
Anyways, things I would try: running "bash ./autogen.sh" and "./autogen.sh" instead of "sh autogen.sh", and similarly for ./configure; try all nine combos, do they all produce the same output? What is the top line of autogen.sh and configure, respectively (I would think #!/bin/bash or #!/bin/sh)?
All of this shouldn't matter (bash should be sh-compatible), but it might. My theory about the space before the colon is that configure treats a variable (whose value is the empty string) as a command and tries to run it (compare with user@host$ '' foo). So, run "bash -x configure" and post the 10-or-so lines around the error message. If I'm right, I suspect that I(/we) will need to see the whole configure script.
Maybe you need to make it executable first. Run chmod a+x configure and try again.
You won't find a man entry for configure, as this script is specific for the respective software. But mostly, you can list available options with ./configure --help
That error message seems odd--there's a space before the colon, which smells
Hey jonaskoelker. Im sorry i misleaded u but actually i havent copied the error msg straight from the command line. I just typed it out while writing the post. I checked, and theres no space there.
I will put up the results as you say.
Quote:
you can list available options with ./configure --help
I tried that. Again, command not found.
Could this be coz I reinstalled opensuse over the older installation? what i mean is i did not erase the hard disk before the install, although I resized and reformatted the partitions. But I have a doubt about this because after I finished the install, YAST asked me if I wanted to use the users i created in the previous installation. I said a yes and was able to select the users i ad created earlier.
ALso, I reinstalled from a different source. That is, the earlier installation I had done from the iso files I had downloaded. But I did the reinstall from a DVD that came with a mag.
$ ./not-here.sh
bash: ./not-here.sh: No such file or directory
$ touch not-here.sh
$ ./not-here.sh
bash: ./not-here.sh: Permission denied
$ chmod +x not-here.sh
$ echo uncommand >> not-here.sh
$ ./not-here.sh
./not-here.sh: line 1: uncommand: command not found
$ sed -i -e "s:^:./:" not-here.sh
$ ./not-here.sh
./not-here.sh: line 1: ./uncommand: No such file or directory
Note the subtle differences. What is your path (echo $PATH)? Try running "bash -x configure" (or ./configure); what is the result? If it's big, grep for "command not found", and show us a 10-line(-or-so) context ($ bash -x configure 2>&1 | grep -iC10 "command not found").
How did the chmod +x go? What about trying all combinations of {bash ,sh ,./}?
hey.
its working now.
i first tried sh configure...this worked. Then i did chmod a+x configure..after this ./configure is working too. But i havent undrstood what i have done.
whats the diff beth running sh configure or ./configure or all the others? What does chmod a+x do?
I am still learning the command line.
thanks a lot.
chmod changes permissions. the 'a' stands for all, '+' means add new permissions, and 'x' is short for execute. The 'all' is all of {the owner, members of the owning group, other people}.
Try saying 'ls -l configure', there you can see the permissions.
If a program "foobar" starts with "#!/path/to/intepreter", then saying "./foobar" is the same as saying "/path/to-interpreter foobar". So, if configure start with #!/bin/sh, it should be the same as saying 'sh configure' (sh is a shorthand for /bin/sh; try saying "echo $PATH").
The reason 'sh configure' works even though configure doesn't have execute permission is that it "doesn't count as executing" (whereas ./configure does); sh just reads the configure file, in the same way that "kwrite foobar.txt" doesn't execute foobar.txt, it just reads it (in programming parlance, sh _interprets_ the program 'configure').
Hope this helps. Otherwise, I think google has lots of tutorials
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.