Как заставить менеджер пакетов Linux распознавать программное обеспечение, установленное из исходного кода?

1384
Javier

Я даже не знаю, возможно ли это, но я все равно спрошу.

Я создаю систему Linux From Scratch, и я близок к концу. Очевидно, что все до сих пор было скомпилировано и установлено из исходного кода. Поэтому я решил установить dpkg для будущего управления пакетами. Однако почти каждый файл .deb, который я пытаюсь установить, имеет некоторую зависимость, такую ​​как libc, libstdc ++ или coreutils. Я знаю, что установил их раньше, но dpkg их не распознает. Есть ли способ заставить это работать, или, если нет, возможная альтернатива?

Я уже спрашивал на форуме LFS, но он довольно неактивен, и я не получил ответа.

1
Вам нужно будет адаптировать dpkg к вашей системе. Это нетривиальная задача, но вы можете взглянуть на документацию [debian docs] (http://www.debian.org/doc/manuals/maint-guide/build.en.html). Если ваша цель - использовать пакеты Debian, то вы делаете это неправильно. Ярослав Рахматуллин 12 лет назад 0

3 ответа на вопрос

2
theotherreceive

Наверное, есть способы взломать это, но я не буду этим заниматься. Суть системы управления пакетами состоит в том, что она управляет всем так, чтобы все было вместе.

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

Так есть ли решение? Javier 15 лет назад 0
Простой ответ: нет, не совсем. theotherreceive 15 лет назад 0
1
sleske

Оба dpkg / aptи rpmпостроены с предположением, что они будут управлять всем программным обеспечением в системе (с возможным исключением нескольких специальных приложений). Нет разумного способа обойти это; вы можете взломать его, пока он не заработает, но какой смысл даже использовать их.

Если вы просто хотите установить содержимое .deb (или .rpm), вы можете просто извлечь файлы и установить их (используя ar и tar для .deb, rpm2cpio и cpio для rpm). Если вы хотите использовать полную систему зависимостей, то вам нужна полная установка.

1
SkyRaT

Создав «Linux с нуля», вы фактически создали совершенно новый дистрибутив Linux. Так что теперь вы можете выбрать любую упаковочную систему (deb, rpm, tgz, ...) на вершине того ядра, которое у вас есть. Выбор Deb не сделает ваш дистрибутив Debian!

Это означает, что вы все еще можете использовать debs для установки дополнительного ПО, но вам придется создавать пакеты самостоятельно (снова "с нуля") с зависимостями, созданными для вашего дистрибутива, а не только с использованием Debian.