Table of Contents

Miscellaneous

Here's where we'll document the installation of miscellaneous small software packages.

Note that some of these packages may get installed during the installation of the OS, depending on the revision and the options selected. Packages that we've seen get installed include mailx, lsof, less, w3m, telnet, bc, and at.

System

The lsb_release command tells us what Linux distribution we're running, as well as the version. Debian comes with it pre-installed, but we have to manually install it on CentOS:

sudo yum install redhat-lsb

The locate program is great for finding files on the system, without find having to search through a bunch of directories.

apt-get install slocate
/etc/cron.daily/slocate &

This resolves some issues with Perl complaining about LC_ALL/LANG/LANGUAGE when using en_US.UTF-8 encoding.

apt-get install locales locales-all

This program provides a utility to configure init files for various runlevels.

apt-get install -y sysv-rc-conf

This package is used by several web and email packages (Apache and PINE).

apt-get install mime-support

We'll need OpenSSL and certificate management packages for web and email later (Apache and Postfix).

apt-get install openssl ssl-cert ca-certificates

The psmisc package includes some useful tools, including pstree, killall, and fuser.

apt-get install psmisc

The lsof program list files (and sockets) that are open, and which processes are using them.

apt-get install lsof

The htop program is an enhanced version of top.

apt-get install htop

mail command line utility

The "mail" comand line utility was not installed which caused several scripts thet rely on that command to fail. It is part of the mailx package.

apt-get install mailx

Text Editors and Readers

NOTE: nano and file get installed by default.

apt-get install -y vim vim-doc vim-scripts
apt-get install less
apt-get install pinfo

Console Tools

apt-get install -y mc

Packaging and Compression

apt-get install unzip zip
apt-get install bzip2

NOTE: wget gets installed by default.

apt-get install -y curl
apt-get install links
apt-get install lynx-cur  # Newer release of lynx
apt-get install ncftp
apt-get install lftp
apt-get install rsync
#apt-get install elinks
#apt-get install w3m

Network Tools

Note that netcat apparently gets installed by default in Debian 4.0.

Tcpdump is a good tool for monitoring packets going across the wire. It's helpful when troubleshooting network protocol issues.

apt-get install -y tcpdump

Telnet is no longer good for connecting to remote systems to get shell access. (Always use SSH for remote shell access.) However, it's good for connecting to other ports to test network connectivity. (For example, it's the easiest way to test low-level SMTP functionality.)

apt-get install telnet

The mtr program is an enhanced version of traceroute, with some additional features. We want the "tiny" version, which does not require X11.

apt-get install mtr-tiny

ZModem isn't used much any more, but it can be used to send files across an existing SSH (or any other pty) connection. The lrzsz package supports ZModem – use the rz command to receive a file. KDE's Konsole provides good ZModem upload support.

apt-get install lrzsz

Development Tools

NOTE: There are a ton of -dev packages that we could install. Unless we find a development "super-package", we'll have to install them as-needed.

apt-get install binutils
apt-get install -y gcc cpp linux-kernel-headers
apt-get install -y g++
apt-get install binutils-doc manpages-dev
apt-get install -y gcc-doc cpp-doc
apt-get install make autoconf automake libtool flex bison m4 autotools-dev libc6-dev
apt-get install glibc-doc libtool-doc
apt-get install gdb
apt-get install patch
apt-get install build-essential dpkg-dev
apt-get install diff-doc

Revision Control

These are various source code management (SCM) packages.

apt-get install cvs
apt-get install -y subversion subversion-tools db4.4-util
sed -i -e 's/^# global-ignores.*$/global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store/' \
    /etc/subversion/config
apt-get install -y git-core git-doc git-svn gitweb

Perl

NOTE: Perl gets installed by default now, along with perl-modules.

apt-get install perl-doc
apt-get install libcompress-zlib-perl  # Compress::Zlib

Shells

Install ksh93, tcsh, and csh using apt-get. Add sym links for path variations and add to /etc/shells if not done automatically.

apt-get install ksh
apt-get install tcsh
apt-get install csh
ln -s /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /usr/local/bin
ln -s /bin/bash /bin/csh /bin/sh /usr/bin
ln -s /usr/bin/perl  /usr/local/bin
ln -s /usr/bin/perl  /bin

Ruby

NOTE: These have not been installed yet. It's generally recommended to install Ruby and RubyGems from sources. Anything else should be installed through RubyGems.

#apt-get install ruby ruby1.8 irb1.8 libreadline-ruby1.8 libruby1.8 
#apt-get install ruby1.8-examples rdoc1.8 ri1.8
#apt-get install liberuby
#apt-get install libapache2-mod-ruby libapache-ruby1.8

PINE

Due to the license, PINE only comes as a source package in Debian's non-free archive. So it has to be built from sources. This requires GCC development packages (see above) and a few -dev packages:

apt-get install libldap2-dev libncurses5-dev libssl-dev zlib1g-dev

Make sure you've met all the dependencies:

apt-get --only-source build-dep pine

Create a location to build the package. The typical location for this is /usr/src.

mkdir /usr/src/pine
cd /usr/src/pine

Download and build the source package:

apt-get --only-source -b source pine

Press enter when prompted to read about not being allowed to distribute the binaries. The build process will take several minutes after that.

Then install the resulting packages.

dpkg -i pine_4.64-3_i386.deb
dpkg -i pine-tech-notes_4.64-3_all.deb

Python

apt-get install -y python
apt-get install -y python-doc

Security

GNU Privacy Guard is a clone of PGP. The command-line utility is called gpg. It's now installed by default.

Documentation

apt-get install doc-base

Other

apt-get install tree

bc for doing simple math.

apt-get install bc

Deferred execution scheduler to supplement cron:

apt-get install at

Gary requests "elm", the user mail agent as we have on Michelob. 3 problems: 1. elm uses mbox and we are using maildir on bud & budlight. We would have to movemail from gnu or fetchmail to move the mail. 2. elm WAS the most used mail agent in the early 90s and the default for Debian. But in 1999, Debian switched to Mutt. There is no longer a apt-get Debian installable for elm. I moved the latest (2.5.8 in Aug '05) and untarred it in /usr/src for possible future use if we get around issues 1 & 3. 3. We are intending users to be on shell access on budlight but mail to be on bud. We would need to NFS mount the mail directories or use fetchmail to get the IMAP from bud to budlight.

General Customization

motd

On Debian, you can't edit /etc/motd directly and expect it to stay because /etc/motd is just a symbolic link to /var/run/motd and the symbolic link is likely to be recreated by future patches from Debian. /etc/init.d/bootmisc.sh rebuilds /var/run/motd on every reboot, using /etc/motd.tail. So to make a permanent change on Debian systems, edit /etc/motd.tail, instead of /etc/motd, to put in the information we want.

mv /etc/motd.tail /etc/motd.tail.orig 
cat > /etc/motd.tail << EOD
*******************************************************************************
* St. Louis UNIX Users Group XXXXXXXX server running Debian Etch              *
* For use by our paying members.  Rules of conduct must be followed.          *
*                                                                             *
* For system information, see:                                                *
*     http://www.sluug.org/members/accounts/                                  *
*                                                                             *
*******************************************************************************
EOD
chmod a+r /etc/motd

Edit the new /etc/motd.tail to fill in the server name and change anything needed to match this system.

To make the change to /var/run/motd without a reboot, do the same thing that /etc/init.d/bootmisc.sh does:

uname -snrvm       >  /var/run/motd
cat /etc/motd.tail >> /var/run/motd

issue

The /etc/issue* files are customized in the ssh configuration procedure.

Credits

Lee Lammert originally built and installed PINE.

Requests

[Please ask for any packages you would like installed here.]

TODO