Paul Johnson Fedora linux journal Begins December 26, 2003 I have linux installed on 8 or 10 machines and people come and say "Oh, that's pretty, how can I do that" and then I say "install these disks" and after that they are totally baffled. Its like having a brand new Windows XP system--programs you need are missing and you don't know where to get them without paying. So I have taken a brand new computer and installed Fedora Core 1. And after that, I've made a vow to remember every thing I do. So far, I'm not 100% done with beautification, but if you are wanting to know how to take a stock Linux install and make it less sucky, this might help. Generally, learn your way around the rpm program from the command line, be cautious about grabbing RPMs from everywhere and filling up your system with crap. During the install, I created a user called pauljohn and I set a password for the root user. Never log in as "root". Always log in as a user, and then temporarly "su" as root. If you did not create a user during the install, you have no choice but to log in as root and create a user. There is a GUI that works fine for that in fedora, but you might be a scout and open a terminal and type "man useradd". All you really need to do to create a user "pauljohn" is # useradd pauljohn and let all the defaults go through. After the install, I noticed a graphical login screen appeared. I hate that, but I used it anyway. I logged in, let Gnome start, then # su - # rpm -qa | more Hit the space bar to page through. I reviewed all the installed packages and saw some I knew for sure I did not want. (You can find the description of a package by "rpm -qil package_name"). So I removed them first thing. # rpm -e kernel-smp # rpm -e evolution I ran into a big hassle that the DWL 520+ wireless card was not supported in the kernel as delivered. Eventually, I learned there is a sourceforge project to create the kernel model and it works. In case you are interested: http://acx100.sourceforge.net http://www.houseofcraig.net/acx100_howto.php#configuring The downside there is that this module has to be rebuilt EVERY TIME the kernel package is updated. But now the heavy lifting is done, that won't be so horrible, as long as I remember it has to be done. Next, install some conveniences for system administration. At http://www.fedora.us/wiki/FedoraHOWTO read and get the RPMS for programs apt and synaptic Pay attention to versions. Then install. # rpm -Uvh apt-0.5.15cnc1-0.fdr.3.1.i386.rpm warning: apt-0.5.15cnc1-0.fdr.3.1.i386.rpm: V3 DSA signature: NOKEY, key ID 8df56d05 Preparing... ########################################### [100%] 1:apt ########################################### [100%] # rpm -Uvh synaptic-0.45-1.1.i386.rpm warning: synaptic-0.45-1.1.i386.rpm: V3 DSA signature: NOKEY, key ID 8df56d05 Preparing... ########################################### [100%] 1:synaptic ########################################### [100%] Run "synaptic" and do update list, then change from "all packages" to "upgradeable". After reviewing those, I did not see any old packages I wanted to protect, so I hit the 'upgrade all' button and waited. That took a long time. ---- I need to warn you about something here. There is a lot of magic and danger in the apt approach. The above version of apt is conservative-- it only looks in official sites for rpms. You can get a lot more aggressive. If you go to the "atRPMS" website you can download alternative versions of apt and synaptic that will tie you in to a much larger network of free software. I'd recommend you stay away from that until you understand how to use RPM the old fashioned way. If you jump right in to the aggressive use of apt, then you might end up installing packages that break things and then you will be in trouble. But, in case you want a big adventure, here is some stuff you can manually add in your repositories file from apt, which is: /etc/apt/sources.list Note I've got some commented out here with the pound sign. Frequently in synaptic I will use the preferences/repositories option to remove some or add some of these. If you leave them in, then apt finds a totally overwhelming and unmanageable set of rpms. Also, if you try to use this, you will have to import some PGP keys so the system can recognize the rpms it downloads. I believe the apt from atRPMS will automatically insert those, but you might as well do it manual. Go to the sites where you expect apt to find RPMS. Look around for their Public key, say "THEIR.PGP.KEY", then download that key, then the command to import them is rpm --import THEIR.PGP.KEY ANyway, here are the repositories you can add: rpm http://download.fedora.us/fedora/ fedora/1/i386 os updates stable # rpm-src http://download.fedora.us/fedora/ fedora/1/i386 os updates stable # Fedora Core 1 rpm http://ayo.freshrpms.net/ fedora/linux/1/i386 core updates # rpm-src http://ayo.freshrpms.net/ fedora/linux/1/i386 core updates # ATrpms for Fedora Core 1 # Possible sections: at-stable, at-good, at-testing, at-bleeding rpm http://apt.physik.fu-berlin.de/ fedora/1/en/i386 at-stable at-good # rpm-src http://apt.physik.fu-berlin.de/ fedora/1/en/i386 at-testing # FreshRPMS for Fedora Core 1 rpm http://ayo.freshrpms.net/ fedora/linux/1/i386 freshrpms # rpm-src http://ayo.freshrpms.net/ fedora/linux/1/i386 freshrpms # NewRPMS for Fedora Core 1 rpm http://newrpms.sunsite.dk/apt/ redhat/en/i386/fc1 newrpms # rpm-src http://newrpms.sunsite.dk/apt/ redhat/en/i386/fc1 newrpms # Dag Wieers' rpms for Fedora Core 1 rpm http://apt.sw.be/ redhat/fc1/en/i386 dag # rpm-src http://apt.sw.be/ redhat/fc1/en/i386 dag #-net CCRMA for Fedora Core 1 rpm http://www-ccrma.stanford.edu/planetccrma/apt/ fedora/1/i386 planetcore planetccrma # rpm-src http://www-ccrma.stanford.edu/planetccrma/apt/ fedora/1/i386 # planetccrma # NyQuist for Fedora Core 1 (Matthew Hall's GNOME2 pakages) # rpm http://people.ecsc.co.uk/~matt/downloads/apt/ fedora-1-i386 gnome extras # rpm-src http://people.ecsc.co.uk/~matt/downloads/apt/ fedora-1-i386 gnome # extras --- The upgrade does not include the Linux Kernel. That's a tradition that goes way back. You can manually download a kernel rpm. Don't upgrade the kernel, don't do this: #rpm -Uvh kernel-XXX.rpm Instead, you should install the new one along side the old, # rpm -ivh kernel-XXX.rpm and only delete the old when you are sure the new works. In the last 2 years of so, RedHat company perfected this new way of doing this that is almost fool proof if you upgrade. Upgrading a kernel used to require installing some rpms and then hand tooling a bunch of configurations, but now the rpm does it all. So if you mistakenly do -Uvh, it will probably not kill you. In the termial, start the synaptic program. In synaptic, go to the System Environment/Kernel section, and you should see kernel upgrades. The kernel packages are named in an unusual way, so that each different version of the kernel is seen as a completely different program. So you can install 2 at once. I've downloaded and installed this file: kernel#2.4.22-1.2129.nptl with synaptic. The system must be restarted to use this. It should show up as a new option. Note in /etc/grub.conf that this new kernel is listed after the install (look before the install if you doubt me). grub was an absolutely great innovation that, in my opinion, is pivotal to making Linux palatable to ordinary users. Kernel upgrades now "just work." After the system works with the new, you can remove the old kernel. Note after synaptic does its magic, there are 2 kernel packages installed. Type this in a terminal: # rpm -qa | grep kernel kernel-utils-2.4-9.1.101.fedora kernel-pcmcia-cs-3.1.31-13 kernel-2.4.22-1.2129.nptl kernel-2.4.22-1.2115.nptl kernel-source-2.4.22-1.2115.nptl In case you want to see all your packages, type # rpm -qa After you restart the computer and then you select which kernel to use, you can confirm the new new one works. Then delete the old one. # rpm -e kernel-xxx.rpm -------------------------- Enough kernel adventure for now. Then I did the "standard" things I always do to tighten up a new machine. Fix /etc/hosts.deny like this: -------------------------- # # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # The portmap line is redundant, but it is left to remind you that # the new secure portmap uses hosts.deny and hosts.allow. In particular # you should know that NFS uses portmap! ALL: ALL ------------------------ That blocks everything/everybody through most tcp connections unless I specifically allow them. And I only want to allow ssh: -------------------------- # # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # note: 127.0.0.1 is necessary: it is the generic addres of THIS machine ALL: 127.0.0.1 sshd: ALL sshdfwd-X11: ALL ------------------------- Now let's check the firewall. I don't mind this program called lokkit: # /usr/bin/lokkit I click Enabled and then choose customize by tabbing down. In there, I make sure there are stars by SSH and WWW. That's all. Then, in Other ports, sometimes I want to let through samba connections or the university smpt outgoing mail server requires me to open up port 113. I wrote down how i do that in http://www.ku.edu/~pauljohn. I'm not doing it to this machine yet. after clicking OK, the firewall is up. ------------------------------- There are a few other security and networking things I usually do, but this machine is behind a hardware firewall so I'll wait till later to worry on that. -------------------------------- Now for some creature comforts I can't live without. Creature Comfort 1. mp3 player component for xmms: Go search at http://www.pbone.net, a place where I find many cool things. They refer me to a freshrpm's download http://rpm.pbone.net/index.php3/stat/4/idpl/855278/com/xmms-mp3-1.2.8-3.2.fr.i386.rpm.html But... # rpm -Uvh xmms-mp3-1.2.8-3.2.fr.i386.rpm warning: xmms-mp3-1.2.8-3.2.fr.i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b error: Failed dependencies: libasound.so.2 is needed by xmms-mp3-1.2.8-3.2.fr I don't want to go there. libasound is a big thing from the Alsa libraries, I don't want to bother with it. Alsa is a whole new set of manuals to read. And I know there is a way to avoid it, because on other systems I have installed mp3 support without it. This rpm was probably built on somebody's system that needed Alsa, but I don't. At http://www.gurulabs.com you can get an rpm for xmms-mp3 support. That has worked fine for me. Another approach, which I tried on this computer, was to get the complete xmms rpms from the "real" xmms people. That will have the mp3 support in there. http://www.xmms.org/download.php I took the one for RedHat 9. To make rpm install it, I had to override this warning: # rpm -Uvh xmms-1.2.8-1.i386.rpm Preparing... ########################################### [100%] package xmms-1.2.8-3.p (which is newer than xmms-1.2.8-1) is already installed with the old package option # rpm -Uvh xmms-1.2.8-1.i386.rpm --oldpackage Preparing... ########################################### [100%] 1:xmms ########################################### [100%] I verified that does play rpms. Run "xmms" in a terminal Creature Comfort 2: gnutella client Go here: http://gtk-gnutella.sourceforge.net/ click, click: # rpm -Uvh gtk-gnutella-0.93-1.i586.rpm warning: gtk-gnutella-0.93-1.i586.rpm: V3 DSA signature: NOKEY, key ID 62b064ba Preparing... ########################################### [100%] 1:gtk-gnutella ########################################### [100%] Run that by opening a terminal and typing "gtk-gnutella" Creature Comfort 3: Eterm I can't stand all these boring terminal programs. Eterms with pictures on the background are really great. http://www.Eterm.org Get libast and Eterm, and try to install, you see another dependency # rpm -Uvh libast-0.5-1.i386.rpm Eterm-0.9.2-4.i586.rpm error: Failed dependencies: libImlib2.so.1 is needed by libast-0.5-1 imlib2 is needed by Eterm-0.9.2-4 imlib2-loader_jpeg is needed by Eterm-0.9.2-4 imlib2-loader_png is needed by Eterm-0.9.2-4 libImlib2.so.1 is needed by Eterm-0.9.2-4 imlib is a pretty useful project, started by the famous "Rasterman" who has been a nice guy to me and a great contributor to Linux in general. Lately, the imlib rpms are on the Enlightenment site, so go here http://www.enlightenment.org, choose download and go down the list to the packages for imlib2 Bad thing is you need to grab a bunch of these, because the separate image types are packaged separately: imlib2-1.1.0-1.i386.rpm imlib2-devel-1.1.0-1.i386.rpm imlib2-loader_argb-1.1.0-1.i386.rpm imlib2-loader_gif-1.1.0-1.i386.rpm imlib2-loader_gzbz2-1.1.0-1.i386.rpm imlib2-loader_jpeg-1.1.0-1.i386.rpm imlib2-loader_png-1.1.0-1.i386.rpm imlib2-loader_pnm-1.1.0-1.i386.rpm imlib2-loader_xpm-1.1.0-1.i386.rpm Ah, relief: # rpm -Uvh imlib2-* Eterm-0.9.2-4.i586.rpm libast-0.5-1.i386.rpm Preparing... ########################################### [100%] 1:imlib2-loader_png ########################################### [ 9%] 2:imlib2-loader_jpeg ########################################### [ 18%] 3:imlib2 ########################################### [ 27%] 4:libast ########################################### [ 36%] 5:imlib2-devel ########################################### [ 45%] 6:imlib2-loader_argb ########################################### [ 55%] 7:imlib2-loader_gif ########################################### [ 64%] 8:imlib2-loader_gzbz2 ########################################### [ 73%] 9:imlib2-loader_pnm ########################################### [ 82%] 10:imlib2-loader_xpm ########################################### [ 91%] 11:Eterm ########################################### [100%] Now open a boring ordinary terminal and type # Eterm Eterm is massively configurable, great to use, themable. I have about 100 little pictures to use in Eterms, many featuring movie stars! -------------- apt related note. If you broaden your repositories in apt, or if you get apt from the atRPMS site, then you can install imlib and Eterm with a simple click or two. I tried that on another system and it worked fine. -------------- Creature Comfort 4: instant messager Well, actually, I hate that one, but kids don't. Oops. I notice "gaim" is installed by Fedora's default configuration. So I move down the list. ---------------- Creature Comfort 5: GQview. This is the best picture viewer ever. http://gqview.sourceforge.net/view-down.html I always run the versions out of his "development" series. It installs fine: # rpm -Uvh gqview-1.3.6-1.rh9.i386.rpm Preparing... ########################################### [100%] 1:gqview ########################################### [100%] Awesome. In a terminal, cd to a directory that has lots of pictures, then run "gqview", and mouse clicks in the picture will do amazing things. Creature Comfort 6: acroread. This is the Adobe version of the acrobat file reader. Linux has xpdf which is ok, but acrobat is still better. Get that at http://www.gurulabs.com. # rpm -Uvh acroread-5.08-2.i386.rpm Preparing... ########################################### [100%] 1:acroread ########################################### [100%] Creature Comfort 7: mpg123. This is an "old school" sound program. It is necessary if you want to write mp3 files "on the fly" to make audio cds. I don't remember where that is, so here's how I find it. Go to http://www.rpmfind.net and look it up There are rpms for many different distributions. Generally, I've found packages for the PLD project to be quite excellent, so let's gamble on that. # rpm -Uvh mpg123-0.59r-7.i686.rpm warning: mpg123-0.59r-7.i686.rpm: V3 DSA signature: NOKEY, key ID e01260f1 Preparing... ########################################### [100%] 1:mpg123 ########################################### [100%] You can test that on the command line by typing in # mpg123 somesong.mp3 That plays a song without any graphical interface. It can also play a song in the "standard output"--you don't hear that, it goes into another program from there. That's how you write cd's "on the fly". To do that, I use a couple of programs called "mp3write" and "mp3estimate". Note how mpgwrite is just a "shell script" that grabs all of the mp3 files in a directory and triggers each one through mpg123 and then "pipes" (note the vertical bar) that output to the cdrecord program. ------------------------------ #mpgwrite program I learned to build from the cdrecord FAQ. for I in *.mp3 do mpg123 -s "$I" | cdrecord -v speed=2 dev=0,0,0 -audio -pad -swab -nofix - done cdrecord dev=0,0,0 -fix ------------------------------ mp3estimate is a program I use to predict whether or not songs will fit on a cd. Its a perl program that I ripped out of the mp3burn package by Ryan Richter. To use that, the Perl package MP3Info must be installed. If you want to install that, I can give you the mp3estimate program. Otherwise, you can just guess (pretty accurately) that about 60 megabytes of mp3 files will just about fill up a music cd (if the mp3 files are written at 144 hz or so). --------------------------- Recently I've learned that there is an excellent gui program for writing cd's in the KDE project. This program has several special abilities. It is not distributed widely yet becaus it is still in the testing phases. But I've tested and it works great. It can even write mp3 to cd "on the fly". The easiest way to get k3b is to broaden out your apt repositories and let apt or synaptic do the install of k3b. After I intalled the apt from atRPMS on a differen system, it found packages for k3b. For my research, I need to have Swarm and its development libraries installed. That means I need to add tcl-devel, tk-devel, blt, and Swarm from my web site at http://lark.cc.ku.edu/~pauljohn/Swarm I also need the stats program R, which totally kicks! I'll put up more information if I ever get back into the mood. pj 2004-01-07