LinuxQuestions.org
LinuxAnswers - the LQ Linux tutorial section.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
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

Reply
 
Search this Thread
Old 12-30-2009, 05:54 PM   #1
belliott4488
Member
 
Registered: Oct 2003
Location: Ellicott City, MD, US
Distribution: Fedora 11
Posts: 67

Rep: Reputation: 15
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?
 
Old 12-30-2009, 06:19 PM   #2
cg40oz
LQ Newbie
 
Registered: Dec 2009
Location: /dev/random
Posts: 15

Rep: Reputation: 0
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.
 
Old 12-30-2009, 06:26 PM   #3
XavierP
Moderator
 
Registered: Nov 2002
Location: Kent, England
Distribution: Lubuntu
Posts: 19,174
Blog Entries: 4

Rep: Reputation: 428Reputation: 428Reputation: 428Reputation: 428Reputation: 428
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.
 
Old 12-30-2009, 08:20 PM   #4
evo2
Guru
 
Registered: Jan 2009
Location: Japan
Distribution: Debian, SL
Posts: 5,123

Rep: Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104
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.
 
Old 12-30-2009, 11:48 PM   #5
belliott4488
Member
 
Registered: Oct 2003
Location: Ellicott City, MD, US
Distribution: Fedora 11
Posts: 67

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by cg40oz View Post
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 ...
 
Old 12-30-2009, 11:51 PM   #6
belliott4488
Member
 
Registered: Oct 2003
Location: Ellicott City, MD, US
Distribution: Fedora 11
Posts: 67

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by XavierP View Post
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.
 
Old 12-31-2009, 12:29 AM   #7
belliott4488
Member
 
Registered: Oct 2003
Location: Ellicott City, MD, US
Distribution: Fedora 11
Posts: 67

Original Poster
Rep: Reputation: 15
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 View Post
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 View Post
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 View Post
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.
 
Old 12-31-2009, 01:22 AM   #8
evo2
Guru
 
Registered: Jan 2009
Location: Japan
Distribution: Debian, SL
Posts: 5,123

Rep: Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104Reputation: 1104
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.
 
Old 12-31-2009, 01:42 AM   #9
londy
LQ Newbie
 
Registered: Feb 2009
Distribution: openSUSE 11.4
Posts: 28

Rep: Reputation: 3
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.
 
Old 12-31-2009, 10:43 AM   #10
cg40oz
LQ Newbie
 
Registered: Dec 2009
Location: /dev/random
Posts: 15

Rep: Reputation: 0
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.
 
Old 12-31-2009, 04:26 PM   #11
jefro
Guru
 
Registered: Mar 2008
Posts: 11,158

Rep: Reputation: 1365Reputation: 1365Reputation: 1365Reputation: 1365Reputation: 1365Reputation: 1365Reputation: 1365Reputation: 1365Reputation: 1365Reputation: 1365
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 04:28 PM.
 
Old 12-31-2009, 05:15 PM   #12
vigi
Member
 
Registered: May 2009
Location: australia
Distribution: slackware
Posts: 177

Rep: Reputation: 27
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?
 
Old 12-31-2009, 05:24 PM   #13
allanf
Member
 
Registered: Sep 2008
Location: MN
Distribution: Gentoo, Fedora, Suse, Slackware, Debian, CentOS
Posts: 97
Blog Entries: 1

Rep: Reputation: 19
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.
 
Old 12-31-2009, 05:33 PM   #14
allanf
Member
 
Registered: Sep 2008
Location: MN
Distribution: Gentoo, Fedora, Suse, Slackware, Debian, CentOS
Posts: 97
Blog Entries: 1

Rep: Reputation: 19
Quote:
Originally Posted by belliott4488 View Post
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 05:36 PM. Reason: Added a nice site url to the message
 
  


Reply

Tags
building, make, source


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: The Fourth ‘Patent Deal’ was with Europe… and the Sixth Deal That Won’t be LXer Syndicated Linux News 0 10-24-2007 03:40 PM
Question for programmers/occasional programmers Robert Diggs Programming 9 12-23-2006 07:55 PM
How to Uninstall sourcecode apps? sob7y Linux - Software 2 03-10-2006 09:23 AM
Sourcecode freshjada Linux - Software 3 08-11-2004 04:13 PM


All times are GMT -5. The time now is 09:42 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration