( uzsolt | 2015. 12. 21., h – 13:02 )

Most már nagyon szúrja a szemem, így grammarnáci üzemmód: a "hibásan" egy "s". Ha két s-sel írod, akkor hibásan írod.

De amit én javasoltam (meg kikadff is szerintem), hogy a conf() függvény legyen egy külön, általánosan használt fájlban, amit mindig behúzol a source paranccsal (persze lehet csinálni egy build-package szkriptet, ami ezt megteszi, és nem kell minden egyes csomaghoz beírni). Esetleg egy (csomag-függő) CONF_ARGS változóban tárolod a ./configure opcióit (ebben az esetben --enable-charset - a prefix opciót meg mindig hozzáírod).

Tehát pl.


#!/bin/sh
# main.sh

PREFIX="/usr"
pkg_download_source() {
  curl --megfelelő-paraméterek ${PKG_SOURCE}
}

pkg_extract() {
  tar xf ${PKG_SOURCE}
}

pkg_conf() {
  ./configure --prefix=${PREFIX} ${CONF_ARGS}
}

pkg_build() {
  make
}

pkg_install() {
  make install DESTDIR=${DESTDIR}
}

#!/bin/sh
# pkgbuild.sh
PKG_PATH=/usr/pkgfiles

# Behúzzuk a main.sh fájlt, ami az alapfüggvényeket tartalmazza
source main.sh
# Behúzzuk az előállítandó csomag conf-fájlját, ami a csomag-specifikus infókat tartalmazza
source ${PKG_PATH}/${1}.conf

pkg_download_source
pkg_extract
pkg_conf
pkg_build
pkg_install

# /usr/pkgfiles/mc.conf
PKG_VERSION=4.8.15
PKG_SOURCE=http://ftp.midnight-commander.org/mc-${PKG_VERSION}.tar.xz
CONF_ARGS=--enable-charset

Tehát ha pl. az mc-t akarod előállítani, akkor pkgbuild.sh mc. Ha a verziója változik, akkor csak a PKG_VERSION=... sort kell átírni. Ha nem csak mc-t akarsz használni, akkor bármelyik más csomaghoz kb. annyit kell írnod, mint az utolsó fájlban:


# /usr/pkgfiles/foo.conf
PKG_VERSION=1.2.3
PKG_SOURCE=http://foo.com/foo-${PKG_VERSION}.tar.bz2
CONF_ARGS="--enable-bar --disable-foo"

Persze lehet ezeket finomítani, hibaellenőrzéssel bővíteni, vizsgálni, hogy van-e egyáltalán ./configure, függőségeket hozzáadni (pl. PKG_DEPENDS="foo bar"), csomagleírást, stb.