|
|
Linux, in its state as of February 13th, 2002, is still a very complex operating system to use. Many advanced users find themselves learning new ways of getting work done even 4-5 years after beginning. However, this doesn't mean you need to spend 4-5 years before you can operate a Linux system and do useful work.
The most important task in beginning to use linux is understanding that 99% of the time you run into a problem, documentation can be found to help you solve it. Immediate, on-demand help comes in two forms (in order of importance!):
Without a doubt, "asking an expert" is the worst of the two methods. Often times, as a new user, recognizing an expert poses a true challenge. Getting the wrong answers from someone you think is an expert during such a crucial phase can be detrimental to your goal. Furthermore, learning how to find your answers in documentation or on the web is to asking like learning to fish is to being given a fish.
Now that we've discusses why it is important to read documentation, the best thing the UCLA LUG can do for you is give you a few places to look as you get started:
Man pages are extremely useful. They exist for almost every common command, system call, etc. Simply type:
to learn about the man command for instance. If you want to learn all about the printf function available on linux, typeman man(the 3 tells man which section to look in. See the man page on man for more information). Look at the bottom of the man pages for examples on how to use the function, a list of the standards the function conforms to, known bugs/incompatibilities, and other important details. Many man pages have these same sections. Lastly, the cross reference section is also very important. If you're interested in functions related to printf, you can find them listed at the bottom of the man page.man 3 printf
Re-read the section on man pages above. They are very important for novice users.
Info pages are one of the most advanced forms of help commonly installed on a linux system. Typically (submit feedback!), info pages are available on RedHat or Mandrake systems and are much less common on other distributions. Example:
info emacsOnce inside the info pages, you can navigate links between subjects and search. The keys used to navigate the system are similar to those available in emacs. To learn to navigate info pages, hit Control-H (C-h in emacs notation) after entering a page. Often, if a man page is available, a similar or better info page exists on the same topic.
This web site is a fantastic collection of HOWTOs, FAQs, and other resources for novice to advanced users.
This guide can give you a quick introduction to the basics of using a UNIX system. It covers elementary commands like ls, cd, and many more.
Google is not just a superb general searching tool! Many mailing-list conversations (see the UCLA LUG discussion list!) are indexed by google, in addition to other Linux resources. Shameless Plug:Google currently (Feb. 2002) uses Linux.
UCLA LUG is a great place to meet people who have encountered similar problems. You are invited to attend a meeting, join our mailing list, or otherwise become involved. Remember that UCLA LUG is not the only LUG in the Los Angeles area and, if you don't always live in Los Angeles, there is probably a LUG in your area!
The projects for CS111 are supposed to be done on a Mandrake 7.2 system. However, since Mandrake now has released version 8.1, that is the recommended version to install.
- Better GUI Tools
We have found that users are much more accustomed to graphical user interfaces than command line-oriented interfaces. Mandrake 8.1 is one of the most advanced GUIs available on Linux at this time.- Bug and Security Fixes
Also, with the newer releases, users get bug fixes and important security updates. (see Mandrake 7.2 Advisories for more information).- Better Hardware Support
Also, during our install fests we have noticed that more and more people want Linux installed on their laptops. In the past, laptops have been filled with exotic hardware. Mandrake 8.1's set of drivers is much larger than those available for Mandrake 7.2.- More useful
Finally, one of our goals is to encourage CS 111 students to continue to use and/or work on Linux long after their class is over. A better GUI combined with a wider set of installed tools show CS 111 students that linux, while complex at times, is becoming a very useable operating system for Computer Sciene students.
Go to Newbie Nights. Don't be afraid of the weird name either.
(for those interested a post on the subject)This is a BUG in the compiler that Mandrake distributed with Mandrake 8.1.
There are three fixes:
- Download Linux 2.4.3
Ask your professor, but in the past we've heard rumors that the course will allow you to use the 2.4 kernel instead of the 2.2 kernel. To our knowledge, the 2.4 kernel source does not excite the particular bug in GCC that the 2.2 kernel does. There has also been rumor that a plain Mandrake 8.1 distribution will be used for CS 111 next quarter. Talk to your TA to make sure.- Find a patch that fixes the kernel source to work around the bug. However, this fix is untested, and this is not the proper response to finding a bug (especially in Open Source Software). See below.
The second proper response is to install a correct compiler:
- Download GCC 2.95. You will need:
From UCLA LUG. These are big files. Unless you want to also compile Chill (another programming language), Fortran, or Java, you do not need to download
- gcc-2.95.2-12mdk.i586.rpm
- gcc-c++-2.95.2-12mdk.i586.rpm
- gcc-cpp-2.95.2-12mdk.i586.rpm
- gcc-chill-2.95.2-12mdk.i586.rpm
- gcc-g77-2.95.2-12mdk.i586.rpm
- gcc-java-2.95.2-12mdk.i586.rpm
- Install GCC 2.95
Type on the command line
rpm -ihv --force --nodeps gcc-*2.95*.rpm- Find out which GCC command will be used (you now likely have TWO versions of GCC installed on your system). Type on the command line
This tells you what version of gcc will be used during a compilation.gcc --version- If GCC is version 2.95 then you are done. Otherwise, continue.
- Type
This command will tell you where GCC is located on your hard drive.which gcc- Type
This command will tell you if GCC is really a symlink (a "shortcut" in Windows parlance). If the result looks like: "/usr/bin/gcc -> /etc/alternatives/gcc", then GCC is really a symlink. Note the use of `which gcc`. The backward apostraphe tells your commandline to substitute the output of the commandls -l `which gcc`which gcconto the commandline.- Replace one of the symlinks so that it points to GCC 2.95:
This builds a symbolic link using the link command ("ln") with the -s option. The first path (/usr/bin/gcc-2.95) is the actual file, and the second path (/etc/alternatives/gcc) is the file that we want to pretend exists.ln -s /usr/bin/gcc-2.95 /etc/alternatives/gccIf you have followed the above procedure and still have problems, please drop by the UCLA LUG lounge and ask for help.
/guides/cs111.php3 last updated on Tue Mar 26 2002