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? |
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.
|
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.
|
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:
Quote:
Evo2. |
Quote:
So, obviously, no - I haven't considered trying that. More to learn ... |
Quote:
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. |
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:
Quote:
Quote:
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. |
Hi belliott4488,
Quote:
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. |
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. |
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. |
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. |
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?
|
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. |
Quote:
I found that the site http://lowfatlinux.com/ has very nice non-geeky tutorial for Linux. |
All times are GMT -5. The time now is 04:20 AM. |