Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place! |
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.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
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.
|
|
12-30-2009, 06:54 PM
|
#1
|
Member
Registered: Oct 2003
Location: Ellicott City, MD, US
Distribution: Fedora 11
Posts: 67
Rep:
|
how do non-programmers deal with apps available only as sourcecode?
I just came across the Speed Dreams game ( http://speed-dreams.sourceforge.net/) and thought I might try it out, but as is so often the case, I can find only source code for download, and no binaries for Linux (annoyingly there are binaries for Windows).
Once again I'm stumped because I'm not a software developer, so the instructions are near meaningless to me. I see that before attempting to build the software I should verify that I have certain libraries installed, but I barely know what a software library is, let alone where to look to see if I have a particular one installed.
What should I do? Should I just walk away and resign myself to using only software applications that my package manager can install for me? Are all those applications that are available only as source code meant only for developers?
This is very frustrating for me, since so often when I run into a problem on Linux (I'm running Fedora 11 64-bit, BTW), the recommended solution is to recompile something so that it will run on my system. WTF? I can type "make", but don't me what in the world happens when I do. It's pure luck if it works, and if it doesn't, then I'm dead in the water.
Is Linux really still meant primarily for software developers? Is there - or should there be - a clear distinction between software apps that can be installed by a reasonably savvy end user vs. those that require some knowledge of programming?
|
|
|
12-30-2009, 07:19 PM
|
#2
|
LQ Newbie
Registered: Dec 2009
Location: /dev/random
Posts: 15
Rep:
|
Have a thought about creating a virtual machine and then trying to build the application in the virtual environment? That way if the compile goes bad and crashes you at least only broke a virtual machine.
|
|
|
12-30-2009, 07:26 PM
|
#3
|
Moderator
Registered: Nov 2002
Location: Kent, England
Distribution: Debian Testing
Posts: 19,192
|
In the tarball your grabbed, is there a README or INSTALL file? They usually give installation instructions. Normally it will be ./configure, make, make install (as root) but check for those 2 files.
|
|
|
12-30-2009, 09:20 PM
|
#4
|
LQ Guru
Registered: Jan 2009
Location: Japan
Distribution: Mostly Debian and CentOS
Posts: 6,726
|
You don't need to be a programmer to compile code. You just need to follow instructions. If the instructions don't make sense, do some research to fill the gaps in your knowledge. Most of the problems you mention in your post have nothing to do with developing software, they are related to understanding your system and the tools it comes with.
Quote:
Is Linux really still meant primarily for software developers?
|
Far from it. The average Ubuntu user probably wouldn't even know what gcc is.
Quote:
Is there - or should there be - a clear distinction between software apps that can be installed by a reasonably savvy end user vs. those that require some knowledge of programming?
|
That depends on how your define "a reasonably savvy end user". If you mean someone who has been happily riding his mouse around his desktop, clicking on icons in MS windows for a few years, then your definition would be different to mine. The point is that if you want to go beyond your package manager you need to understand your system. Understanding windows does not mean you understand your linux system.
Evo2.
|
|
|
12-31-2009, 12:48 AM
|
#5
|
Member
Registered: Oct 2003
Location: Ellicott City, MD, US
Distribution: Fedora 11
Posts: 67
Original Poster
Rep:
|
Quote:
Originally Posted by cg40oz
Have a thought about creating a virtual machine and then trying to build the application in the virtual environment? That way if the compile goes bad and crashes you at least only broke a virtual machine.
|
I don't even know what that means ... I know that people run Linux on Windows machines using a VM (or vice versa), but I didn't know you could run a Linux VM in an actual Linux environment (if that's what you meant).
So, obviously, no - I haven't considered trying that. More to learn ...
|
|
|
12-31-2009, 12:51 AM
|
#6
|
Member
Registered: Oct 2003
Location: Ellicott City, MD, US
Distribution: Fedora 11
Posts: 67
Original Poster
Rep:
|
Quote:
Originally Posted by XavierP
In the tarball your grabbed, is there a README or INSTALL file? They usually give installation instructions. Normally it will be ./configure, make, make install (as root) but check for those 2 files.
|
Yes - the INSTALL file lists some prerequisite libraries, but I wasn't sure how to check to see if I had them. I tried "which" and "locate" with what I thought were likely filenames, but they came up empty.
Next I just tried running the configure file, which naturally complained about missing stuff, but I wasn't sure about where to get some of it. So, I'm just trying to figure out what it needs now.
|
|
|
12-31-2009, 01:29 AM
|
#7
|
Member
Registered: Oct 2003
Location: Ellicott City, MD, US
Distribution: Fedora 11
Posts: 67
Original Poster
Rep:
|
Thanks - this really gets to the heart of my current frustration. I'm not really worried about being able to build this particular game application; it's more a matter of my periodically getting tired of always having three or four things that need to be fixed on my Linux box at any given time. I don't think I've ever had a Linux system where everything was working all at the same time.
Quote:
Originally Posted by evo2
You don't need to be a programmer to compile code. You just need to follow instructions. If the instructions don't make sense, do some research to fill the gaps in your knowledge. Most of the problems you mention in your post have nothing to do with developing software, they are related to understanding your system and the tools it comes with.
|
Yeah, I know ... I guess that's just it - I've never really understood the default directory structure or the purpose of all those hundreds of files in /usr, /var, /etc. When I get instructions that say I need (for e.g.) "OpenAL soft 1.5", but I have no idea what it is or where to look for it, often I just put it off for later rather than starting down another endless path of Google searches trying to track down software libraries whose function I don't really understand. It just gets tedious.
Quote:
Originally Posted by evo2
Far from it. The average Ubuntu user probably wouldn't even know what gcc is.
|
That what I would think, but I wonder how the average Ubuntu user decides which compiler to install, or which version of openGL he should find and download.
Quote:
Originally Posted by evo2
That depends on how your define "a reasonably savvy end user". If you mean someone who has been happily riding his mouse around his desktop, clicking on icons in MS windows for a few years, then your definition would be different to mine. The point is that if you want to go beyond your package manager you need to understand your system. Understanding windows does not mean you understand your linux system.
|
No, I mean more than that - I really mean me, so let me introduce myself (probably should have done this up front - sorry!)
I wrote my first computer program some time in the 1970's, so I'm not exactly new to computers. That was BASIC, though, so I never used a compiler until I started writing FORTRAN in the 1980's. I took a course in C++ in the late 90's, but I've never used it professionally, so I've never gotten good at it. Nowadays all my programming is in scripting languages, primarily the m-code used by Matlab.
As for OS's, I mainly worked on VMS on a VAX and MS-DOS on PC's in the 80's. I also occasionally worked on Unix systems in the 1980's and 1990's, but I really didn't use it regularly until 2004 or so, when I used it at work for a while and also got my first Red Hat Linux system at home. I've worked with Windows as long as it's been around.
So I guess my point is this: if I have to, I can usually figure out how to get things to work on whatever computer I'm using, but there are times when the shear volume of stuff I have to learn to get things working on my Linux machine gets kind of overwhelming. I'm sure it gets better eventually.
|
|
|
12-31-2009, 02:22 AM
|
#8
|
LQ Guru
Registered: Jan 2009
Location: Japan
Distribution: Mostly Debian and CentOS
Posts: 6,726
|
Hi belliott4488,
Quote:
I really mean me, so let me introduce myself
<snip>
|
ok, it seems you have significantly more knowledge/experience than I assumed.
The place to start is by understanding the output of configure, and how to use your package manager to search for the missing libs and headers. I know that this post was not about compiling a specific program, but if you have something that you've been unable to satisfy the dependecies for, please post the output from configure, and we can find what packages you need to install. In doing so, you will hopfuly learn a bit more about your system, in particular how to workout what packages provide what libs and headers.
This should help you solve similar problems that you may encounter in the future.
Cheers,
Evo2.
|
|
|
12-31-2009, 02:42 AM
|
#9
|
LQ Newbie
Registered: Feb 2009
Distribution: openSUSE 11.4
Posts: 28
Rep:
|
I almost never need to compile anything but for times like these it's good to use a popular/beginner friendly distro like Ubuntu. Speed Dreams has a .deb for Ubuntu which was just posted yesterday.
http://www.webupd8.org/2009/12/speed...buntu-deb.html
Maybe you can use "alien" to convert it to a rpm, I don't know.
|
|
|
12-31-2009, 11:43 AM
|
#10
|
LQ Newbie
Registered: Dec 2009
Location: /dev/random
Posts: 15
Rep:
|
belliott4488,
You can have linux in a vm and run linux as the host operating system. You can use vmware server or vmware player in linux and virtualize any other OS.
|
|
|
12-31-2009, 05:26 PM
|
#11
|
Moderator
Registered: Mar 2008
Posts: 22,177
|
You can't take windows binaries and try to compile them on linux.
Well, not easily. It is very difficult to port an application even if you have all the required software and training.
Last edited by jefro; 12-31-2009 at 05:28 PM.
|
|
|
12-31-2009, 06:15 PM
|
#12
|
Member
Registered: May 2009
Location: australia
Distribution: slackware
Posts: 187
Rep:
|
I started with mandrake a few years back, but found it too difficult due to hardware issues at the time. Revisited linux with ubuntu, and now on to slackware. There are so many shortcuts to a binary, that I have never needed to compile anything. I use src2pkg for the odd application I need. It works from a source.tarball as well as other binaries. Surely there is a similar converter for rpm systems?
|
|
|
12-31-2009, 06:24 PM
|
#13
|
Member
Registered: Sep 2008
Location: MN
Distribution: Gentoo, Fedora, Suse, Slackware, Debian, CentOS
Posts: 100
Rep:
|
Assuming that the installation included the compilers, make, linkers...
Also remember that all file and directory names are case-sensitive!
(The tar-ball was created using a "tar" (Tape ARchive) command and may or may not be compressed. This program has not been restricted to "magnetic tapes" for nearly forever but the name stayed.)
The most common tar-ball package contains the needed information within it to build the product. The needed piece of information is how to untar the tar-ball. That is easy also.
Bring up a "terminal" (usually under "system" in the menus). Use the "cd" (Change Directory) command to move to the location that has the downloaded tar-ball. Verify that the tar-ball is there by using the "ls" (LiSt directory contents) or "ls -l" commands.
for example:
cd ~/Desktop
ls -l
When you are in the directory that has the tar-ball of interest, continue past this point.
Since you are new to this I will walk you through creating a directory, moving into it and then eXtracting the files from the tar-ball. (By creating and moving into the directory, you will only see the extracted files and directories.) The "mkdir" (MaKe DIRectory) command is used to create a new directory (folder to some people).
mkdir temporary_build_dir
cd temporary_build_dir
tar xf ~-/TAR-BALL-FILENAME-GOES-HERE
(NOTE: that the "~-/" says with the previous directory location.)
ls -l
Use the "cd" command to move into the directory present, looking for files named
README (or starting with README)
INSTALL (or starting with INSTALL)
The INSTALL file explains the building steps to build and install the software. Typical
steps are:
./configure
make
then as user "root"
make install
The "tar" command can be asked to show the "Table-of-contents" (like an ls but for its contents) via the command:
tar tf TAR-BALL-FILENAME-GOES-HERE
or
tar tvf TAR-BALL-FILENAME-GOES-HERE
By the way, the "system administrator" (normally NOT a programmer) is the person that does these builds an installs in the real world work places.
|
|
|
12-31-2009, 06:33 PM
|
#14
|
Member
Registered: Sep 2008
Location: MN
Distribution: Gentoo, Fedora, Suse, Slackware, Debian, CentOS
Posts: 100
Rep:
|
Quote:
Originally Posted by belliott4488
I really mean me, so let me introduce myself (probably should have done this up front - sorry!)
I wrote my first computer program some time in the 1970's, so I'm not exactly new to computers. That was BASIC, though, so I never used a compiler until I started writing FORTRAN in the 1980's. I took a course in C++ in the late 90's, but I've never used it professionally, so I've never gotten good at it. Nowadays all my programming is in scripting languages, primarily the m-code used by Matlab.
As for OS's, I mainly worked on VMS on a VAX and MS-DOS on PC's in the 80's. I also occasionally worked on Unix systems in the 1980's and 1990's, but I really didn't use it regularly until 2004 or so, when I used it at work for a while and also got my first Red Hat Linux system at home. I've worked with Windows as long as it's been around.
So I guess my point is this: if I have to, I can usually figure out how to get things to work on whatever computer I'm using, but there are times when the shear volume of stuff I have to learn to get things working on my Linux machine gets kind of overwhelming. I'm sure it gets better eventually.
|
To bad that in the 74 or 75 you did not take the correct path which was UNIX. I started in computers in 1971, moved to UNIX (pdp and VAX machines) then to CDC 3200, CDC 6600, CDC Cyber 74, Sperry Univac 1100/80, several other models of the 1100, Apollo DN 1000 workstation, Sun Workstation, HP-UX workstation, AIX workstation, IRIX workstation, and in 1993 added in Linux along with the other UNIX workstations. Like a maid, "I do not do Windows".
I found that the site http://lowfatlinux.com/ has very nice non-geeky tutorial for Linux.
Last edited by allanf; 12-31-2009 at 06:36 PM.
Reason: Added a nice site url to the message
|
|
|
All times are GMT -5. The time now is 12:43 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|