Pacman
| Download Source: | ftp://ftp.archlinux.org/other/pacman/pacman-3.2.2.tar.gz |
|---|
Introduction to Pacman
pacman is a utility which manages software packages in Linux. It uses simple compressed files as a package format, and maintains a text-based package database, just in case some hand tweaking is necessary. This is the package management system used by Arch Linux.
Project Homepage: http://www.archlinux.org/pacman/
Dependencies
Required
Optional
Configuration Information
| --disable-doxygen: Disable building Doxygen API documentation. |
| --disable-fakeroot: Disable fakeroot proof support. |
| --with-config-file=path: Set the location of pacman's config file. |
Non-Multilib
Compile the package:
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --disable-doxygen &&
make
Install the package:
make install
Multilib
32Bit
Compile the package:
CC="gcc ${BUILD32}" ./configure --prefix=/usr \
--sysconfdir=/etc --localstatedir=/var \
--disable-doxygen &&
make
Install the package:
make install
N32
Compile the package:
CC="gcc ${BUILDN32}" ./configure --prefix=/usr \
--libdir=/usr/lib32 --sysconfdir=/etc \
--localstatedir=/var --disable-doxygen &&
make
Install the package:
make install
64Bit
Compile the package:
CC="gcc ${BUILD64}" ./configure --prefix=/usr \
--libdir=/usr/lib64 --sysconfdir=/etc \
--localstatedir=/var --disable-doxygen &&
make
Install the package:
make install
Configuring
See the following webpages for instructions to work with the main portions of pacman
| http://wiki.archlinux.org/index.php/Pacman |
| http://wiki.archlinux.org/index.php/ABS_-_The_Arch_Build_System |
| http://wiki.archlinux.org/index.php/Makepkg |
Arch Linux is not a standards compliant multilib operating system. If you will be using pacman to create your own, local repositories (e.g., to use with your CLFS cluster) on a multilib platform, replace this section in /etc/makepkg.conf:
#-- Exclusive: will only run on x86-64 # -mtune builds exclusively for an architecture # -mcpu optimizes for an architecture, but builds for the whole processor family CFLAGS="-march=x86_64 -mtune=generic -O2 -pipe" CXXFLAGS="-march=x86_64 -mtune=generic -O2 -pipe"
with the following:
#-- Exclusive: will only run on x86-64
# -mtune builds exclusively for an architecture
# -mcpu optimizes for an architecture, but builds for the whole processor family
if [ "$USE_ARCH" = "32" ]; then
CARCH="$CARCH-32"
CFLAGS="${BUILD32}"
CXXFLAGS="${BUILD32}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}"
elif [ "$USE_ARCH" = "n32" ]; then
CARCH="$CARCH-n32"
CFLAGS="${BUILDN32}"
CXXFLAGS="${BUILDN32}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATHN32}"
elif [ "$USE_ARCH" = "64" ]; then
CARCH="$CARCH-64"
CFLAGS="${BUILD64}"
CXXFLAGS="${BUILD64}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}"
else
echo "Unknown or unsupported architecture: $USE_ARCH"
echo "Exiting!"
exit 1
fi
Based on minimal testing to date on an x86_64 multilib CLFS system, using the USE_ARCH environment variable will build the appropriate ABI package. You will need to create separate repositories for the 32-bit and 64-bit packages. The packages will have 32, N32, or 64 inserted in the package name so you will be able to tell them apart.
Contents
| Installed Directories: | /etc/abs, /etc/pacman.d, |
|---|---|
| Installed Programs: | abs, gensync, makepkg, makeworld, pacman, pacman.static, pacman-optimize, rankmirrors, repo-add, repo-remove, testpkg, updatesync, vercmp |
| Installed Libraries: | libalpm.{a,la,so} |