Difference between revisions of "Pacman"
Weibullguy (talk | contribs) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 33: | Line 33: | ||
Compile the package: | Compile the package: | ||
− | ./configure --prefix=/usr --sysconfdir=/etc -- | + | ./configure --prefix=/usr --sysconfdir=/etc \ |
+ | --localstatedir=/var --disable-doxygen && | ||
make | make | ||
Line 47: | Line 48: | ||
CC="gcc ${BUILD32}" ./configure --prefix=/usr \ | CC="gcc ${BUILD32}" ./configure --prefix=/usr \ | ||
− | + | --sysconfdir=/etc --localstatedir=/var \ | |
+ | --disable-doxygen && | ||
make | make | ||
Line 59: | Line 61: | ||
CC="gcc ${BUILDN32}" ./configure --prefix=/usr \ | CC="gcc ${BUILDN32}" ./configure --prefix=/usr \ | ||
− | --libdir=/usr/lib32 --sysconfdir=/etc -- | + | --libdir=/usr/lib32 --sysconfdir=/etc \ |
+ | --localstatedir=/var --disable-doxygen && | ||
make | make | ||
Line 71: | Line 74: | ||
CC="gcc ${BUILD64}" ./configure --prefix=/usr \ | CC="gcc ${BUILD64}" ./configure --prefix=/usr \ | ||
− | --libdir=/usr/lib64 --sysconfdir=/etc -- | + | --libdir=/usr/lib64 --sysconfdir=/etc \ |
+ | --localstatedir=/var --disable-doxygen && | ||
make | make | ||
Line 109: | Line 113: | ||
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" | export PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" | ||
elif [ "$USE_ARCH" = "n32" ]; then | elif [ "$USE_ARCH" = "n32" ]; then | ||
− | CARCH="$CARCH- | + | CARCH="$CARCH-n32" |
CFLAGS="${BUILDN32}" | CFLAGS="${BUILDN32}" | ||
CXXFLAGS="${BUILDN32}" | CXXFLAGS="${BUILDN32}" | ||
Line 140: | Line 144: | ||
|} | |} | ||
− | + | [[Category:Package Management]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 19:47, 4 July 2009
Download Source: | ftp://ftp.archlinux.org/other/pacman/pacman-3.2.2.tar.gz |
---|
Contents
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} |