wiki:TipAndDoc/Linux/ArchLinux

packages

Arch Build System

  • archja:Arch_Build_System
    • /etc/abs.conf
      -MIRRORLIST="/etc/pacman.d/mirrorlist"
      +MIRRORLIST="/etc/pacman.d/mirrorlist.jp"
      
      • ミラーをmirrorlist以外のファイルに独自に追加している場合など
      • $ abs
        ==> ERROR: No mirrors found in mirrorlist file /etc/pacman.d/mirrorlist
        
  • archja:Makepkg
    • https://www.archlinux.org/pacman/makepkg.8.html
    • /etc/makepkg.conf (デフォルトのインストール設定では、/tmpはtmpfsになるので注意)
      • etc/makepkg.conf

        a b CHOST="x86_64-unknown-linux-gnu" 
        3737# -march (or -mcpu) builds exclusively for an architecture 
        3838# -mtune optimizes for an architecture, but builds for whole processor family 
        3939CPPFLAGS="-D_FORTIFY_SOURCE=2" 
        40 CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" 
        41 CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" 
         40CFLAGS="-march=native -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" 
         41CXXFLAGS="${CFLAGS}" 
        4242LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro" 
        4343#-- Make Flags: change this for DistCC/SMP systems 
        44 #MAKEFLAGS="-j2" 
         44MAKEFLAGS="-j8" 
        4545#-- Debugging flags 
        4646DEBUG_CFLAGS="-g -fvar-tracking-assignments" 
        4747DEBUG_CXXFLAGS="-g -fvar-tracking-assignments" 
        BUILDENV=(!distcc color !ccache check !sign) 
        6666#DISTCC_HOSTS="" 
        6767# 
        6868#-- Specify a directory for package building. 
        69 #BUILDDIR=/tmp/makepkg 
         69BUILDDIR=/tmp/makepkg 
        7070 
        7171######################################################################### 
        7272# GLOBAL PACKAGE OPTIONS 
  • archja:.SRCINFO
  • Arch_Build_System#SVN_.E3.83.84.E3.83.AA.E3.83.BC

    各パッケージにはサブディレクトリが存在します。サブディレクトリの中には repos と trunk ディレクトリがあります。repos はリポジトリ名 (例: core) とアーキテクチャで分かれています。公式ビルドでは repos に入っている PKGBUILD とその他ビルドファイルが使われます。trunk のファイルは開発者によって使われ、その後 repos にコピーされます。

build kernel

  • 手動でパッチなどを当てる場合
    1. PKGBUILDからソースのDL、展開、公式パッチ適用
      • makepkg -o
    2. 適宜ソースを修正
    3. make
      • make -j8 LOCALVERSION= bzImage modulesもしくはmakepkg --noextract --noarchive
      • 後者だとfakeroot installされる
    4. makepkg -R
Last modified 6 years ago Last modified on Jul 23, 2018 10:10:38 PM