LINUX.ORG.RU

Пара вопросов по портам в CRUX

 


0

1

1) при использовании опции --install-root=/dir/ откуда будут проверяться зависимые библиотеки, из /dir/ или из / ? т.е. где будет смотреться версия и вообще наличие библиотек при компиляции? надеюсь, что проверяться будет из /dir/, а то иначе это неправильно.

2) как быть, если нужно установить бинарный пакет? не хватает оперативы на компиляние всяких clang и rust. где брать бинарные пакеты? допустим хочу установить пакет из слаки, есть ли какие-то тулзы для конвертации пакетов? как быть, если будут pre- и post-install скрипты? оборачивать установку бинарного пакета в Pkgfile?

★★★★★

откуда будут проверяться зависимые библиотеки

они не проверяются в принципе, это то, куда будет распакован архив с готовым пакетом.

это аналогично опции tar --directory, в буквальном смысле аналогично т.к. пакет ты можешь просто распаковать как tar архив с занесением списка файлов в текстовую БД. реализация pkgadd на bash

как быть, если нужно установить бинарный пакет?

для конвертации .deb придумали такое: https://github.com/baguette/crux-ports/tree/master/deb2pkg

а вообще, пакет в CRUX это обычный tar-архив, главное только соблюсти правило именования: name-version#release.pkg.tar

в остальном ты можешь взять любое файлО, запаковать его в архив, обозвать таким вот образом и затем установить систему через pkgadd. так что бери любой пакет из любого дистрибутива, выковыривай файлики и вперёд...

ЗЫ. не факт, что это взлетит в принципе, но попробовать стоит. ^^

Spoofing ★★★★★ ()

как быть, если нужно установить бинарный пакет?

CRUX это source-based дистрибутив и бинарный сборок от авторов не предусмотрено, всё собираете своими силами.

как быть, если будут pre- и post-install скрипты?

никак, они не идут в комплекте с пакетами, pre/post скрипты хранятся только в портах, в папке с пакетом. подразумевается, что они будут исполнены во время сборки пакета из сорцов. т.е. вы конечно можете вместе с пакетом (tar архивом) таскать их всюду за собой, но предполагается, что каждый пакет каждый раз собирается из сорцов и после этого действа выполняется pre/post.

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

я не знаю откуда вы взяли про «компиляцию в другую диру», но сборка системы в другой директории делается как и всегда, внутри chroot. соответственно все либы _внутри_ chroot проверяются в /

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

это фигово. можно ли как-нибудь сделать, чтобы смотрело в /dir/? подправив какие-нибудь переменные или ещё как-нибудь? это вообще теоретически возможно?

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

это не одно и то же. в том варианте, котором я хочу, в /dir/ вообще может не быть компилятора, пакетного менеджера и подобной лабуды. никак что ли нельзя?

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

а где можно скачать свежий deb clang’а? не гуглится. нужен 11-ый для сборки месы

в портах clang чем не устраивает?

$ prt-get depends mesa
-- dependencies ([i] = installed)
[i] bzip2
[i] xz
[i] zlib
[i] expat
[i] ncurses
[i] libffi
[i] libnsl
[i] libtirpc
[i] mpdecimal
[i] ninja
[i] xorg-libpciaccess
[i] xorg-xorgproto
[i] xorg-util-macros
[i] openssl
[i] attr
[i] lzo
[i] elfutils
[i] zstd
[i] libxml2
[i] readline
[i] xorg-libxau
[i] xorg-libxdmcp
[i] xorg-xtrans
[i] xorg-libxshmfence
[i] acl
[i] curl
[i] gdbm
[i] sqlite3
[i] libarchive
[i] python3
[i] cmake
[i] python3-setuptools
[i] xorg-xcb-proto
[i] llvm
[i] meson
[i] python3-markupsafe
[i] xorg-libxcb
[i] libdrm
[i] python3-mako
[i] xorg-libx11
[i] xorg-libxext
[i] xorg-libxfixes
[i] xorg-libxrender
[i] libglvnd
[i] libvdpau
[i] xorg-libxv
[i] xorg-libxxf86vm
[i] xorg-libxdamage
[i] xorg-libxrandr
[i] xorg-libxvmc
[i] mesa
anonymous ()
Ответ на: комментарий от anonymous

не устраивсет тем, что не хватает рамы его собрать.

нашёл деб пакет 11-ого clang'а ,конвертнул в pkg, установил.
при попытке собрать месу ругается, что нет какой-то библиотеки clangCodeGen

teod0r ★★★★★ ()