Arch Linux Documentation

Release: 0.4 (Dragon)


Copyright ©2002,2003 Judd Vinet <jvinet@zeroflux.org>

This is the general user documentation for the Arch Linux distribution.


Table of Contents

1.    Introduction
1.1    What is Arch Linux?
1.2    License
2.    Installing Arch Linux
2.1    Pre-Installation
2.2    Installation from CD
2.3    Installation from FTP
3.    System Configuration
3.1    Configuration Files
3.2    Boot Scripts
3.3    Networking
3.4    Daemons
3.5    Modules
3.6    Localization
3.7    Managing Users
4.    Package Management
4.1    pacman
4.2    Keeping Your System up to Date
4.3    Accessing Other Package Repositories
5.    Arch Build System (ABS)
5.1    Binary vs. Source
5.2    Synchronizing your ABS Tree
5.3    How to Build Your Own Packages
5.4    Package Guidelines
6.    Frequently Asked Questions

7.    Manpages
7.1    pacman
7.2    makepkg


1.    Introduction

1.1    What is Arch Linux?

Arch Linux is an i686-optimized linux distribution that was originally based on ideas from CRUX, a great distribution developed by Per Lidén.

Arch is fast, lightweight, flexible and simple. Those aren't very fancy buzzwords but they're all true. Arch is optimized for the i686 processor, so you get more for your cpu cycle. It's lightweight compared to RedHat et al, and its simple design makes it easy to extend and mold into whatever kind of system you're building.

This is back by an easy-to-use binary package system that allows you to upgrade your entire system with one command.  Arch also uses a ports-like package build system (Arch Build System) to make it easy to build packages, which can also be synchronized with one command.  Oh yea, and you can rebuild your entire system with one command, too.  Everything is done quite simply and transparently.  

Arch Linux strives to maintain the latest stable version of its software. We currently support a fairly streamlined package set with a growing collection of contrib packages made by myself and other AL developers. A brief component list is below.

In its goal to be simple and lightweight, I've left out the relatively useless portions of a linux system, things like /usr/doc and the info pages. In my own personal experience these are rarely used, and the equivalent information can be obtained from the net if need be. Manpages all the way...

Arch Linux also strives to use some of the newer features that are available to linux users, such as ext3/reiserfs and devfs support.

1.2    License

Arch Linux and all its packages, documentation, and scripts are copyright ©2002 by Judd Vinet and are licensed under the GNU Public License.


2.    Installing Arch Linux

2.1    Pre-Installation

Arch Linux is optimized for the i686 processor and will not run on any lower x86 chips (i386,i486,i586).  A pentium II processor or higher is
required.

Before installing Arch Linux, you should decide which installation method you would like to use.  Arch Linux provides a bootable .iso image for a CD-ROM install, as well as three floppy disk images for an FTP-based install.

2.1.1    What You Will Need

2.1.2    Acquiring Arch Linux

You can download Arch Linux from any of the mirrors listed on the Download page.  If you are downloading the floppy disk images for an FTP-based install, be sure to select a mirror that provides the packages.  Likewise, if you will be performing a CD-based install, be sure to select a mirror that provides the ISO.

The mirrors are listed below for reference (note that these may be out of date; consult the webpage for a current list):

DOWNLOAD MIRRORS
http://prdownloads.sourceforge.net/archlinux/ ISO
ftp://ftp.du.se/pub/mirrors/sourceforge/archlinux/ ISO
ftp://fernplace.ath.cx/pub/archlinux ISO
ftp://ftp.fsn.hu/pub/CDROM-Images/archlinux ISO
ftp://ftp.comu.edu.tr/pub/linux/dagitim/archlinux ISO
ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/ ISO/Packages
ftp://ftp.webtrek.com/pub/mirrors/archlinux ISO/Packages
ftp://ftp.archlinux.org ISO/Packages
ftp://ftp.mpi-sb.mpg.de/pub/linux/mirror/ftp.ibiblio.org/pub/Linux/distributions/archlinux ISO/Packages
ftp://ftp.oit.unc.edu/pub/Linux/distributions/archlinux ISO/Packages
ftp://ftp.tu-chemnitz.de/pub/linux/sunsite.unc-mirror/distributions/archlinux ISO/Packages
ftp://saule.mintis.lt/pub/linux ISO/Packages
ftp://gd.tuwien.ac.at/opsys/linux/archlinux ISO/Packages

2.1.3    Preparing Installation Media

FTP Install
  1. Download images/boot.img (path is relative to the mirror root)
  2. Download images/root.img
  3. Download images/modules.img
  4. Find three blank floppies and write the images to them:
(insert first disk)
# dd if=boot.img of=/dev/fd0
(insert second disk)
# dd if=root.img of=/dev/fd0
(insert third disk)
# dd if=modules.img of=/dev/fd0


(Note: if you need to write these images from a windows box, you can download rawrite.exe and use it)
  1. Write down all your network settings so you can enter them into setup later

CD Install
  1. Download 0.4/iso/i686/arch-0.4iso (path is relative to the mirror root)
  2. Download 0.4/iso/i686/arch-0.4.md5sum
  3. Verify the integrity of the .iso image using md5sum
# md5sum --check arch-0.4.md5sum
arch-0.4.iso: OK

  1. Burn the .iso image to a blank CD-R (this step varies depending on the os/software you're using)

2.2    Installation From CD

  1. Reboot your computer with the CD in the drive.  Hit Enter at the LILO prompt and you should eventually be at a login screen.  Enter root as the user and you should be given a shell.  No password is required.
  2. Now you can run /arch/setup to invoke the installer program.  After some info messages you will be presented with an install menu.  Go through these options step-by-step to perform a regular CD install.  At any point in the install process, you can switch to your 5th virtual console (ALT-F5) to view the output from the commands that setup is running.  Use ALT-F1 to get back to your first console.
Prepare Hard Drive
This will bring you into a submenu.  The first choice is Auto-Prepare, which will automatically partition your hard drive into a /boot, swap, and root partition, and then create filesystems on all three.  You can choose this option if you don't know much about hard drive partitions, but be warned:  IT WILL ERASE ALL DATA ON YOUR HARD DRIVE!

If you choose to do the work yourself, use the other two options, Partition Hard Drives and Set Filesystem Mountpoints to manually prepare the target media.
Select Packages
This menu will let you select all packages you wish to install from the CD.  It is recommended that you install all the base packages.  Don't worry about getting all the packages you want - you can easily install more of them once the base packages are installed and the system boots by itself.
Install Packages
This step will use pacman to install all the selected packages from the CD.
Edit Config Files
See section 3.1 for an explanation of the configuration files.
Install Bootloader
This will install the LILO bootloader on your hard drive.  Make sure you've edited your lilo.conf file before selecting this.

  1. Done!  Exit the install program, type reboot at the command line and cross your fingers.
  2. If all goes well, you will want to set a password for the root user and add a normal user to the system.  See section 3.4.


2.3    Installation From FTP

  1. Reboot your computer with the boot disk in the drive.  After some disk-crunching noises, you should come to a LILO boot prompt.  Press Enter to continue the boot process.  Partway through you will be prompted:
VFS: Insert root floppy disk to be loaded into RAM disk and press ENTER

Insert the root disk in the drive and hit Enter.  After some more chunking you will be given a shell.  Since you'll be needing your ethernet module for the install, you should now load the modules from the modules disk.  Put the modules disk in the drive and run:

# loadmods /dev/floppy/0

  1. If you know which ethernet module you need, you should load it here.  Look through /lib/modules/2.4.18/kernel/drivers/net for the module(s) you need and load them with the insmod command.  For example, if you have a Realtek 8139 card, you would run
# modprobe 8139too
When your ethernet card is up and running, you should see the eth0 entry in the ifconfig status:
# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:A0:C9:32:24:3D 
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:11 Base address:0xf000


  1. Now you can run /arch/setup to invoke the installer program.  After some info messages you will be presented with an install menu.  Go through these options step-by-step to perform a regular FTP install.  At any point in the install process, you can switch to your 5th virtual console (ALT-F5) to view the output from the commands that setup is running.  Use ALT-F1 to get back to your first console.
Configure Network
Pretty self-explanatory.  Fill in the values you wrote down back in in section 2.1.3 if you have a static address, DHCP otherwise.
Prepare Hard Drive
This will bring you into a submenu.  The first choice is Auto-Prepare, which will automatically partition your hard drive into a /boot, swap, and root partition, and then create filesystems on all three.  You can choose this option if you don't know much about hard drive partitions, but be warned:  IT WILL ERASE ALL DATA ON YOUR HARD DRIVE!

If you choose to do the work yourself, use the other two options, Partition Hard Drives and Set Filesystem Mountpoints to manually prepare the target media.
Select Packages
Select a mirror from the list provided.  Setup will download a package list from the server and ask you to select the package you wish to install.  It is recommended that you install all the base packages.  Don't worry about getting all the packages you want - you can easily install more of them once the base packages are installed and the system boots by itself.
Install Packages
This step will use pacman to download and install all the selected packages from the server.  If the file transfer fails for some reason, try removing the file(s) that failed and downloading again.
Edit Config Files
See section 3.1 for an explanation of the configuration files.
Install Bootloader
This will install the LILO bootloader on your hard drive.  Make sure you've checked your lilo.conf file for correctness before selecting this.

  1. Done!  Exit the install program, type reboot at the command line and cross your fingers.
  2. If all goes well, you will want to set a password for the root user and add a normal user to the system.  See section 3.4.


3.    System Configuration

3.1    Configuration Files

These are the core configuration files for Arch Linux.  You should be comfortable hand-editing these files with a text-editor, because there aren't any GUI apps to help you out.
/etc/rc.conf
This is the main configuration file for Arch Linux.  It allows you to set your keyboard, timezone, hostname, network, daemons to run and modules to load at bootup, profiles, and more.  You should read through all the settings in this file and make sure you understand them.
/etc/lilo.conf
This is the configuration file for your bootloader.  Make sure you check this one and get it right.  See LILO documentation for help on this.
/etc/hosts
This is where you stick hostname/ip pairs of other computers on your network.  If a hostname isn't part of DNS, you can stick it here.
/etc/fstab
Your filesystem settings/mountpoints are stored here.  The install program should have created the necessary entries for you, but you should look it over and make sure it's right.
/etc/modules.conf
This tells the kernel which modules it needs to load for system devices.  For example, to have the kernel load your Realtek 8139 ethernet module when it starts the network, use this line:
alias eth0 8139too

/etc/resolv.conf
Use this file to setup your nameserver(s) that you will use.  It should look something like this:
search domain.tld
nameserver 192.168.0.1
nameserver 192.168.0.2


Replace domain.tld and the ip addresses with your settings.

3.2    Boot Scripts

Arch Linux uses a fairly simple bootup sequence.  The first boot script to run is /etc/rc.sysinit. When it's done, /etc/rc.multi will be called (in a normal bootup). The last script to run will be /etc/rc.local.
/etc/rc.sysinit System boot script. It does boot-critical things like mounting filesystems, running devfsd, activating swap, loading modules, setting localization parameters, etc.
/etc/rc.single Single-user startup. Not used in a normal boot-up.
/etc/rc.multi
Multi-user startup script. It starts all the daemons you have configured in the DAEMONS array (set in /etc/rc.conf), and then it calls /etc/rc.local.
/etc/rc.local
Local multi-user startup script. It is a good place to put any last-minute commands you want the system to run during bootup. The only script you should modify.
/etc/rc.shutdown
System shutdown script. It stops daemons, unmounts filesystems, deactivates the swap, etc.
/etc/rc.d/
Location of daemons scripts.

The boot scripts are using user settings found in /etc/rc.conf file and also a set of general functions defined in the /etc/rc.d/functions script. If you plan to write your own daemons files, you should consider having a look at this file.

Note: Arch's rc.d scripts do not support multiple runlevels.

3.3    Networking

Networking is configured from /etc/rc.conf.  The options are quite simple:  Each interface is defined as its own variable, with the value being the commands to be passed to the ifconfig command to activate the interface.  Then all interfaces you want started at boot-time should be set in the INTERFACES array.  You can disable interfaces by prefixing them with a bang (!).  The example below defines three interfaces and activates the first two at bootup ("lo" and "eth0").
[snip]

#
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
#   (prefix an interface in INTERFACES with a ! to disable it)
#
# Note: to use DHCP, set your interface to be "dhcp" (eth0="dhcp")
#
lo="lo 127.0.0.1"
eth0="eth0 192.168.0.2 netmask 255.255.255.0"
eth1="eth1 192.168.1.4 netmask 255.255.255.0"
INTERFACES=(lo eth0 !eth1)

#
# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
#   (prefix a route in ROUTES with a ! to disable it)
#
gateway="default gw 192.168.0.1"
ROUTES=(gateway)



[/snip]


As you can see, network routes are set up the same way.  Define a route with an arbitrary name ("gateway" in the example above).  Then set the value to the command you want passed to the route command.  Then use that variable ("gateway") in the ROUTES array to have it activated at bootup.

3.4    Daemons

All the daemons you want started at boot-time should be set in the DAEMONS array from the /etc/rc.conf file. They are loaded by the /etc/rc.multi script. You can disable daemons loading by prefixing them with a bang (!). The example below allows to start the following daemons at bootup in this order: network, crond and inetd:
[snip]

#
#
# Daemons to start at boot-up (in this order)
#   (prefix a daemon with a ! to disable it)
#
DAEMONS=(!pcmcia network crond inetd)

[/snip]

3.5    Modules

Modules can be loaded at bootup the same way as daemons, by setting them in the MODULES array from the /etc/rc.conf file. They are loaded by the /etc/rc.sysinit script. The following example will modprobe the module ide-scsi at boot-up.
[snip]

#
#
# Module to load at boot-up (in this order)
#   (prefix an interface in INTERFACES with a ! to disable it)
#
MODULES=(!usbserials ide-scsi)

[/snip]

3.6    Localization

The parameters KEYMAP, TIMEZONE and HARDWARECLOCK from the /etc/rc.conf script allow you to tune the system localization settings.
[snip]
#
# Localization
#
# Note: HARDWARECLOCK is either "UTC" or "localtime"
#
KEYMAP=us
TIMEZONE=Canada/Pacific
HARDWARECLOCK="localtime"
[/snip]

3.7    Managing Users

Users and groups can be added and deleted with the standard commands provided in the util-linux package:  useradd, userdel, groupadd, groupdel, passwd, and gpasswd.  The typical way to add a user is something like the following:
# useradd -m -s /bin/bash johndoe
# passwd johndoe

The first command will add the user johndoe to the system, create a home directory for him at /home/johndoe, and place some default login files in his home directory.  It will also set his login shell to be /bin/bash. The second command will ask you for a password for the johndoe user.  A password is required to activate the account.

See the manpages for more information on these commands.


4.    Package Management

4.1    pacman

Pacman is the package manager which tracks all the software installed on your system.  It has simple dependency support and uses the standard tar-gz archive format for all packages.  Some common pacman commands are shown below:
pacman --add file.pkg.tar.gz
This will install the file.pkg.tar.gz on the system.  If dependencies are missing, pacman will exit with an error and report the missing deps.
pacman --upgrade file.pkg.tar.gz
This does essentially the same as the --add operation, but will upgrade an already-installed package.
pacman --remove package
This will remove all files belonging to package.
pacman --sync --refresh
This will download a fresh master package list from the ftp server and uncompress it into the database area.  You should use this before using --sysupgrade.
pacman --sync --sysupgrade
This command will upgrade all packages that are out-of-date on your system by comparing the local package version to the versions in the master package list that gets downloaded with the --refresh command.  It's a good idea to run this every now and then to keep your system up to date.
pacman --sync package
Download and install package, complete with all dependencies it requires.
pacman --query Displays the list of all installed packages in the system.
pacman --query package
Check if package is installed in the system.  If it is, pacman will output the name and the version that's installed.
pacman --query --info package
Displays information on an installed package (size, install date, build date, dependencies, conflicts, etc)
pacman --query --list package
Lists all files belonging to package.

You should see the pacman manpage (and pacman --help) for more operations and syntax.  Also see the configuration file (/etc/pacman.conf) to set global options, package repositories, and download servers.  Again, the manpage is your friend here.

4.2    Keeping Your System up to Date

The easiest way to keep your system up to date is to use pacman's --sysupgrade option.  Note that you can combine options within a package operation (ops are add,remove,upgrade,query and sync) to save yourself some time.   The command below will download a fresh package list, then upgrade all out-of-date packages:
# pacman -Syu

Note the use of short options.  See the help page for the equivalent long options.

4.3    Accessing Other Package Repositories

A package repository is a collection of packages and package meta-info that can reside in a local directory or on a remote FTP server.  The default repository on an Arch system is the current repository.  This is kept up to date with the latest version of most software and stays fairly bleeding-edge.  If you wish to keep your software in a (perhaps) more stable state, you can modify /etc/pacman.conf to use the stable repository instead.

Many users also choose to activate the unofficial package repository which contains more packages that are not part of Arch's offical set.  You can
activate this repo by uncommenting the last few lines in your /etc/pacman.conf.

You can also build, maintain and use your own package repositories.  See the pacman manpage for instructions.


5.    Arch Build System (ABS)

5.1    Binary vs. Source

Where pacman is responsible for the binary side of the package world, ABS is responsible for the source side:  It helps you to build your own custom packages from source code, also letting you rebuild Arch Linux packages with your own customizations.  The procedure usually goes as follows:
  1. Synchronize your ABS tree with the server (run abs as root)
  2. Create a new directory in /usr/abs/local.
  3. Copy in the PKGBUILD.proto prototype and edit it for the new package.
  4. Run makepkg.
  5. Install the newly built package with pacman.
  6. Send the package to your friends for bragging rights (or give it to an Archer so s/he can stick it in the master ABS tree).

5.2    Synchronizing Your ABS Tree

You can synchronize all the PKGBUILD files in /usr/abs by running the abs script as root.  It requires the cvsup package to operate and will complain if you don't have it installed.  Using cvs as the transfer medium allows you to follow different version trees within ABS - this can be configured in /etc/abs/supfile.arch.  For example, the default supfile is set to track the CURRENT package tree, which is bleeding-edge.  The STABLE package tree is locked in at each release and does not fluctuate as much as CURRENT.  You can also follow specific versions.  See the comments in the supfile for more info.

You will also see an /etc/abs/supfile.unofficial file.  This will give you access to all the unofficial build scripts that were not included in the main ABS repository.  If you do not want to use this repository, you can delete the file.

5.3    How to Build Your Own Packages

The build process is thoroughly explained in the makepkg manpage.  See it for instructions on building your own packages.

5.4    Package Guidelines

When building package for Arch Linux, you should adhere to the package guidelines below, especially if you would like to contribute your new package to Arch Linux.

5.4.1    Package Naming

5.4.2    Directories

/etc
System-essential configuration files
/usr/bin
Application binaries
/usr/sbin
System binaries
/usr/lib
Libraries
/usr/include
Header files
/usr/lib/{pkg}
Modules, plugins, etc.
/usr/man
Man pages
/usr/share/{pkg}
Application data
/usr/etc/{pkg}
Configuration files
/opt
Large self-contained packages such as KDE, Mozilla, etc.

5.4.3    makepkg Duties

  1. Checks if package dependencies are installed
  2. Downloads source files from servers
  3. Unpacks source files
  4. Does any necessary patching
  5. Builds the software and installs it in a fake root
  6. Removes usr/doc, usr/info, usr/share/doc, and usr/share/info from the package
  7. Strips symbols from binaries
  8. Strips debugging symbols from libraries
  9. Generates the package meta file which is included with each package
  10. Compresses the fake root into the package file

5.4.4    Other

# export PACKAGER="John Doe <your.email>"

5.4.5    Submitting Packages

  1. Please add a comment line to the top of your PKGBUILD file that follows this format:
    # Contributor: Your Name <your.email>

  2. Verify carefully the package dependencies (eg, run ldd on dynamic executables, check tools required by scripts, ...).
  3. All packages should come as a compressed tar file containing a directory with the newly built package, the PKGBUILD, filelist, and additional files (patches, install, ...) in it. Its name should at least contain the name of the package.
  4. Upload the compressed tar file to ftp.archlinux.org/incoming.
  5. When a package is received it will be assigned to a package maintainer, who will inspect it to make sure it follows these guidelines.  If they have any questions, the maintainer will email you for clarification.

6.    Frequently Asked Questions

From dictionary.com:

arch (arch)
adj.

1. Chief; principal: their arch foe.
2. Mischievous; roguish: an arch glance.


I came across the well-known term "arch-enemy" in a book and clued in that "arch" means the "the primary", "the principal", the one that comes first among others.  Far from true with regard to Arch Linux perhaps, but I'm proud of it. Now, the second definition may or may not fit;  I guess it depends on how you use your computer.  ;)
Arch Linux is my perfect distro, to sum it up.  I started building it for two reasons:
  1. I didn't find any other distributions that met my ideals.  Some came very close to what I wanted but there were annoying quirks, or an added complexity that seemed to hurt more than help.
  2. For fun, and to give a little something back to the free software community, since I've taken so much.
Arch Linux is fast.  Packages are compiled with i686 optimizations.

Arch Linux is small.  It doesn't install things that it doesn't need unless you ask for them.  Packages can be cleanly installed and removed, no cruft or clutter.  Even /usr/doc is gone -- if I need documentation, I can read it on the net, so /usr/doc is useless to me.

Arch Linux is simple.  Almost all utility and package management programs are written in bash except for the package manager itself.  Things are flexible and easy to tweak in Arch Linux.  The package database is all in plain text format, the init scripts are simple bsd-style but with clean output and an easy way to start/stop daemons.  The package build system is simple so users are encouraged to build their own packages.  The Arch Build System is summed up in a single manpage ('man makepkg').

Arch Linux is flexible.  Because of its simplicity, AL can easily be extended or modified to suit different tasks.
You probably compiled your own custom kernel and forgot to include DevFS support.  When configuring your kernel, make sure you ask for "/dev file system support" and "Automatically mount at boot".  You'll also need "Prompt for development and/or incomplete code/drivers" to see the devfs option.
If you would rather have packages install from the CD instead of downloading them, then mount the install CD somewhere (eg, /mnt/cd) and add this line right below the "[current]" line in /etc/pacman.conf:

Server = local:///mnt/cd

Replace /mnt/cd with the mountpoint you chose.  Then use pacman --sync as you normally would --  It will now check the /mnt/cd directory first for packages.
Since we use devfs, your PS/2 mouse port will be /dev/psaux or /dev/misc/psaux.  If you'd like to have a /dev/mouse symlink as well, you can add the following lines to your /etc/devfsd.conf and restart it with killall -HUP devfsd

REGISTER        ^misc/psaux$    CFUNCTION GLOBAL symlink misc/psaux mouse
UNREGISTER      ^misc/psaux$    CFUNCTION GLOBAL unlink mouse

You should see /dev/mouse now.
Edit your /etc/hosts.deny file.  The default configuration will reject all incoming connections.
  1. Run pacman -Sy kdebase kdelibs to install a basic kde setup.  You can add the other stuff later if you like.
  2. Log out and log back in to activate the profiles.
  3. Edit your ~/.xinitrc file.  Comment out any exec lines and uncomment/add the line exec startkde
  4. Run startx to load XFree86 and KDE.
Sure.  You can upload them to ftp.archlinux.org/incoming.  See the Package Guidelines before submitting packages.
If you're building your own packages (or customizing existing ones), a good place to put them is in /usr/abs/local. Don't leave them anywhere else under /usr/abs, or else they could be overwritten when you run abs to update your build tree.

Also note that you can maintain your own pacman repository with packages built in /usr/abs/local. See the pacman manpage for information.
  1. Create a new directory into /usr/abs/local (eg, /usr/abs/local/kernel), and copy in all the files from /usr/abs/base/kernel.
  2. Replace the original config file with your own custom one.
  3. Run makepkg to build the new package.
  4. Once it is done, upgrade the currently installed kernel with pacman: pacman -U kernel-pkgver-pkgrel.tar.gz. You may want to copy the old /boot/vmlinuz to /boot/vmlinuz-old to keep as a backup kernel. (if you do this, don't forget to add the second image entry to lilo.conf)
  5. If you use LILO, re-install the bootloader so it knows about the new kernel (run lilo).
  6. Reboot your computer.
That's all!
Use pacman -Q.
It really depends on the Makefiles. The best way is to check Makefile.in and/or Makefile to look for instances of DESTDIR. If you find DESTDIR, it is likely that the first method will work (usually more ideal). If DESTDIR is nowhere to be found, try the "prefix=" method instead.

A few quirky Makefiles use things like INSTALL_ROOT or PREFIX_ROOT as well. The only way to be sure is to take a look at the "install" section from the Makefile and see how it installs the files.
Try using the 'ldd' command on the binaries and dynamic libraries included in the package. This will give a list of all the shared-object libraries required to run it.
Add the file (minus the leading slash) to the list of files to exclude in your /etc/pacman.conf file:

[options]
NoUpgrade = path/to/file

By default, the users group is not allow to use sound. To change that, add the following lines in your /etc/devfs.conf file (the second one is only needed if you are using alsa):

REGISTER sound/.* PERMISSIONS root.users 660
REGISTER snd/.*   PERMISSIONS root.users 660

Finally, add an alias for your sound card in the /etc/modules.conf file (or list the module your /etc/rc.conf file).
Edit your /etc/rc.conf file and add module names to the MODULES array.

#
# Modules to load at boot-up (in this order)
#   (prefix a module with a ! to disable it)
#
MODULES=(!usbserial !ide-scsi)

There's no need to add modprobe lines to your /etc/rc.local file!


$Id: archdoc.html,v 1.20 2003/02/25 05:08:54 judd Exp $

Arch Linux Documentation
Copyright
©2002,2003 Judd Vinet <jvinet@zeroflux.org>