Difference between revisions of "Pacman"

From CBLFS
Jump to navigationJump to search
 
Line 33: Line 33:
 
Compile the package:
 
Compile the package:
  
  ./configure --prefix=/usr --sysconfdir=/etc --with-config-file=/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 --with-config-file=/etc/pacman.conf &&
+
    --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 --with-config-file=/etc/pacman.conf &&
+
     --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 --with-config-file=/etc/pacman.conf &&
+
     --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-N32"
+
     CARCH="$CARCH-n32"
 
     CFLAGS="${BUILDN32}"
 
     CFLAGS="${BUILDN32}"
 
     CXXFLAGS="${BUILDN32}"
 
     CXXFLAGS="${BUILDN32}"
Line 138: Line 142:
 
!Installed Libraries:
 
!Installed Libraries:
 
|libalpm.{a,la,so}
 
|libalpm.{a,la,so}
|}
 
 
=== Short Descriptions ===
 
 
{| style="text-align: left;"
 
|-valign="top"
 
!
 
|
 
|-valign="top"
 
!
 
|
 
|-valign="top"
 
!
 
|
 
 
|}
 
|}
  
 
[[Category:Package Management]]
 
[[Category:Package Management]]

Latest revision as of 20:47, 4 July 2009

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}
Retrieved from "?title=Pacman&oldid=18603"