[РЕШЕНО] Сборка пакета для другой машины

Доброго времени суток.
Есть машина с небольшим количеством оперативки. При попытке собрать на ней php вываливается с ошибкой из-за нехватки памяти.
Если ли какой-нибудь способ собрать пакет на другой машине?
Вариант со свапом не предлагать т.к. места на диске тоже мало.
К сожалению найти на форуме похожие темы не удалось, если она есть то ткните.

Идеальный вариант, работающий в любом Линукс-дистрибутиве - установить в чруте и собирать там.
В кальке есть инструмент, облегчающий это - <>.
То есть, по вашей задаче требуется:

  • На машине-“компиляторе” выделить раздел для “кухни”
  • Развернуть сборку, как на “машине с небольшим количеством оперативки”
  • Привести в соответствие make.conf: юзы, цфлаги…
  • Собрать требуемое с обязательной опцией –buildpkg (Можно сразу убрать в make.conf)
  • Организовать свой, локальный, BINHOST
  • На “слабой” машине указать новый BINHOST
  • “Собрать” требуемое, которое будет уже бинарным.

<<P.S.>> BINHOST - это всего лишь доступная по http*/*ftp директория /var/calculate/remote/packages/

Ну или подключить к ней SSD для свопа. Понятно что ресурс диска не вечный, но и компиляция не 24 ч. в сутки / 7 дней в неделю.

Подключить SSD не получится так как это VDS сервер у провайдера. Попробую первый вариант. Я правильно понимаю что машина “компилятор” должна иметь процессор той же разрядности?

Не обязательно.
Просто чрут нужно будет выполнять так:

 # linux32 chroot /раздел/с/кухней

К сожалению первая “донорская” машина которую смог найти наоборот была 32 бита, а целевая 64. Но это не проблема, нашел подходящую.

Если памяти мало, то может целесообразней использовать 32-битную ОС?

Обращайтесь. Я практически всегда доступен и в IRC

Обращайтесь. Я практически всегда доступен и в IRC

Это как фраза из сериала Альф 1986 г - “встретимся в интернете” :slight_smile:

Пошел по такому пути:

  1. rsync корень “исходной” машины на “донорскую” в отдельный каталог
  2. chroot в полученный каталог
  3. установка нужных пакетов (т.к. “исходная” это калька то buildpkg там стоит по умолчанию как я понял)
  4. на “исходной” в BINHOST прописываю /var/calculate/remote/packages/ на “донорской”.
  5. на “исходной” устанавливаю нужный пакет.

Узким местом считаю rsync т.к. копируется весь корень. Но у меня “исходная” с CSS и объем там небольшой. Да и задача собрать пакет конкретно под эту машину.