LINUX.ORG.RU

Просчитать BUILD_DEPENDENCIES для набора портов

 , , , ,


0

1

Собрал LFS. Хочу его в CRUX превратить.
Дошло до сборки core в чрутовом LFS.
Как просчитать BUILD DEPENDENCIES, если CRUX'овый PM просчитывает только RUN DEPENDENCIES?
есть https://www.linuxfromscratch.org/lfs/view/development/appendices/dependencies...
Осложняет всё разделение на "Installation depends on" и "Must be installed before".
Как получить список, в какой BUILD последовательности должны собираться пакеты из core?
Там в LFS hints есть пара тем про зависимости
https://www.linuxfromscratch.org/hints/downloads/files/dependency.txt
https://www.linuxfromscratch.org/hints/downloads/files/blfs-deps.txt
, но оно 2003-2004 годов, и я не понял как оно работает.
cast undef.

★★★★★

Последнее исправление: teod0r (всего исправлений: 1)

Не знаком с круксовским PM’ом.

Как получить список, в какой BUILD последовательности должны собираться пакеты из core?

В общем случае, BUILD DEPENDENCIES просчитывают ручками. Также у PM’а может быть список неявных зависимостей, которые не указываются, например libc.

undef ★★★
()
Ответ на: комментарий от undef

ну и как быть? по приведённой табличке реально сделать скрипт, который при подсовывании ему списка программ сортирует их в нужном порядке?

teod0r ★★★★★
() автор топика
Последнее исправление: teod0r (всего исправлений: 1)
Ответ на: комментарий от teod0r

Реально, наверное. Исходники LFS (книги) в xml. Распарсить, отсортировать по «Must be installed before» и «INstall depends on». На первый взгляд так.

undef ★★★
()
Ответ на: комментарий от undef

допустим, на bash получу значения массивов «Must be installed before» и «INstall depends on». Как сортировать по этому мой список? не представляю как делать

есть список

attr
autoconf
libgmp
libpcre2
db
zlib
flex
bzip2
ca-certificates
libnghttp2
openssl
xz
expat
jsoncpp
lzo
libuv
lzlib
rhash
libcap
cpio
dash
dcron
kmod
diffutils
ed
filesystem
findutils
glibc
glibc-32
gperf
groff
gzip
hdparm
iana-etc
jansson
libedit
libmnl
libffi
mpdecimal
kbd
libdevmapper
libpcre
libpipeline
libtool
m4
make
libseccomp
man-pages
python3-setuptools
mlocate
nasm
patch
pkgconf
ports
prt-get
rc
signify
start-stop-daemon
sysfsutils
sysklogd
sysvinit
tar
time
tzdata
which
acl
libmpfr
ncurses
grep
file
binutils
openssh
zstd
elfutils
eudev
libnftnl
meson
coreutils
sed
shadow
libmpc
readline
gettext
less
procps
psmisc
curl
libarchive
rsync
dhcpcd
libusb
pciutils
gcc
gawk
gdbm
bash
bc
util-linux
inetutils
sqlite3
bison
httpup
cmake
pkgutils
usbutils
perl
man-db
e2fsprogs
python3
ninja
automake
nftables
iptables
iproute2
это порты в core. они сейчас отсортированы по тому как prt-get их хочет установить в чистую директорию по RUN_DEPS
как бы из этого получить список по BUILD_DEPS

teod0r ★★★★★
() автор топика
Ответ на: комментарий от undef

даже не знаю чем удобнее парсить эти две «Must be installed before» и «INstall depends on» из списка, на bash через while read? как сортировать потом?

teod0r ★★★★★
() автор топика
Ответ на: комментарий от teod0r

Правильно понимаю, что ты прошел LFS квест как минимум по 8 главу? Т.е. у тебя есть рабочая система в чруте, и теперь эту кучу софта хочешь раскидать по пакетам?

The fourth list of dependencies are packages that require this package to be built and installed in its final location before they are built and installed. In most cases, this is because these packages will hard code paths to binaries within their scripts. If not built in a certain order, this could result in paths of /tools/bin/[binary] being placed inside scripts installed to the final system. This is obviously not desirable.

Это из книжки. Т.е. «Must be installed before» к 8 главе уже неактуален.

undef ★★★
()
Ответ на: комментарий от undef

Правильно понимаю, что ты прошел LFS квест как минимум по 8 главу? Т.е. у тебя есть рабочая система в чруте

да, 8-ая глава пройдена

и теперь эту кучу софта хочешь раскидать по пакетам?

да, хочу переустановить/перезаписать всё портами CRUX'а. Думаю, важен порядок, в каком собирать core: установочные порты и реценты установки из LFS немного отличаются

teod0r ★★★★★
() автор топика
Последнее исправление: teod0r (всего исправлений: 1)
Ответ на: комментарий от teod0r

Не должно быть зависимости от порядка сборки. Для этого дополнительно извращаются со сборочными командами пакета, например явно указывают сборочные зависимости в метаданных пакета, явно указывают –enable, –disable опции в configure. Если есть взаимные сборочные зависимости (например, ncurses при сборке может хотеть gpm, а gpm - ncurses), патчат исходники и/или собирают пакет в два подхода.

В общем, не надо закладываться на порядок сборки. Если такая зависимость выявится, от нее надо избавляться.

undef ★★★
()
Ответ на: комментарий от undef

Благодарю за помощь.
Собрал LFS, сделал из него CRUX и ещё раз пересобрал ПМ'ом CRUX'а на всякий случай.
квест пройден

teod0r ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.