Portál AbcLinuxu, 4. května 2025 14:06

Dotaz: Rozbor Slackbuildu

29.4.2020 11:29 Jack Hokus | skóre: 34 | blog: LostHeaven
Rozbor Slackbuildu
Přečteno: 846×
Odpovědět | Admin
Ahoj,

nainstaloval jsem si Slackware a rád bych si k němu dodělal něco jako systém portů. Jako vzor jsem si vzal existující slackbuild. Nikdy jsem nic většího nenaprogramoval, proto Vás poprosím o pomoc s rozborem slackbuildu, který je v příloze.

Tady se definují proměnné. Jediné, čemu nerozumím, je třetí řádka, odhaduju, že se tu pomocí toho sedu hledá ve zdrojovém kódu údaj o verzi.

PRGNAM=openscad
VERSION=${VERSION:-2015.03.3}
SRCVER=${SRCVER:-$(echo $VERSION | sed 's/\./-/2')}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

Tady se pomocí podmínky testuje architektura.

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i486 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

Další definice proměnných, které definují adresáře, které budou použity při tvorbě balíčku. Je tu definovaná proměnná arch, která bude použita později?

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

Tady probíhá série porovnávání, za účelem zjištění architektury procesouru.

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

Tady se pravděpodobně mažou některé proměnné a adresáře, které byly předtím vytvořeny. Pak se rozbaluje zdrojový kód a nastavují práva

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$SRCVER
tar xvf $CWD/$PRGNAM-$SRCVER.src.tar.gz
cd $PRGNAM-$SRCVER
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
 -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
 -exec chmod 644 {} \;
http://www.jackhokus.cz/
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.4.2020 12:14 .
Rozbalit Rozbalit vše Re: Rozbor Slackbuildu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tady se definují proměnné. Jediné, čemu nerozumím, je třetí řádka, odhaduju, že se tu pomocí toho sedu hledá ve zdrojovém kódu údaj o verzi.
Výraz ${A:-B} má hodnotu A pokud ta je definovaná/neprázdná, jinak má hodnotu B. Výraz $() zachytí výstup příkazu a ten je pak jeho hodnotou. Příkaz echo vypíše obsah proměnné $VERSION (definované o řádek výše) a sed v něm nahradí druhou tečku pomlčkou (mínusem). Takže pokud je $SRCVER definovaná tak se nezmění, jinak se vygeneruje podle $VERSION.

Tady se pomocí podmínky testuje architektura.
Pokud je proměnná $ARCH prázdná, tak se nastaví podle výstupu příkazu uname -m.
Další definice proměnných, které definují adresáře, které budou použity při tvorbě balíčku. Je tu definovaná proměnná arch, která bude použita později?
Já ji tam nevidím.
Tady probíhá série porovnávání, za účelem zjištění architektury procesouru.
Podle toho jakou hodnotu má proměnná $ARCH se nastaví hodnoty proměnným $SLKCFLAGS a $LIBDIRSUFFIX.
Tady se pravděpodobně mažou některé proměnné a adresáře, které byly předtím vytvořeny. Pak se rozbaluje zdrojový kód a nastavují práva
rm mazání, mkdir vytvoření adresáře, cd měna aktuálního adresáře, tar komprese, chown změna vlastníka, find vyhledání souborů (s danými přístupovými právy) a chmod pro změnu práv.

Nastartuj man a pročti témata k jednotlivým příkazům.
Gréta avatar 29.4.2020 12:38 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: Rozbor Slackbuildu
Odpovědět | | Sbalit | Link | Blokovat | Admin

táááákže natom třetím řádečku se nejdřiv výstup příkazu echo $VERSION jakoby strčí trubičkou | do příkazu sed. tamten argument příkazu sed se jakoby člení na takový tři kousky s/regulární výraz/čim nahrazuju/flags a v tomdletom konkrétním případě se najdou všecky tečky v tom stringu 2015.03.3 chceme je nahrazovat znakem pomlčky ale tim flagem nakonci řikáme že platí pouze pro druhej výskyt. nóóó takže jakoby dostanem z tamtoho stringu tohleto 2015.03-3 a nakonec to strčíme do proměný SRCVER.

tady něco málo k trubičkám hele tady k sedu hele a nemam vyzkoušený ale možná byse ti mohlo hodit dozačátku todleto 'ide' na dělání se sedem hele :O ;D

proměná arch neni definová tam ale už v tamton ifu s casem. nejdřiv se ten if koukne tim argumentem -z jestli je string nulovej respektive jestli jakoby má nulovou dýlku hele.nóó a když jako jóóó se vezme výstup příkazu uname -m kterej vrací 'machine hardware name' (to sem si našla v manuálu příkazem man uname. šipkama se posouváš a vylezeš z toho máčknutím 'q' ;D) a hledá se vodpovídající pattern a podle toho je ta arch deklarovaná. hele jak case jako funguje ;D

Zelená energetická soustava založená na obnovitelnejch zdrojích energie versus realnej svět 🤡🇪🇸
3.5.2020 15:18 Bubak | skóre: 16 | blog: Čtvrtá cenová
Rozbalit Rozbalit vše Re: Rozbor Slackbuildu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hele, co začít tady?

Případně tady?
... máš jen mrtvou kočku a poškrábanýho jezevčíka ...
5.5.2020 19:56 Martin Matějek | skóre: 12 | blog: Flying_circus | Kladno
Rozbalit Rozbalit vše Re: Rozbor Slackbuildu
Odpovědět | | Sbalit | Link | Blokovat | Admin

nainstaloval jsem si Slackware a rád bych si k němu dodělal něco jako systém portů.

Není to úplně přesně na co se ptáš, ale koukal jsi na pkgsrc?
Don't judge me by the friends I keep. No, no, no. Judge me by the enemies I have slain!
7.5.2020 08:42 chleba namazanej indulonou
Rozbalit Rozbalit vše Re: Rozbor Slackbuildu
Odpovědět | | Sbalit | Link | Blokovat | Admin
slackpkg - aktualizace Slackware balíků

sbopkg - instalace software ze https://slackbuilds.org/

slackpkg update

slackpkg install-new

slackpkg upgrade-all

lilo

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.