Возможный дубликат:
Как создать мета-пакет, который автоматически устанавливает другие пакеты?
] Я хочу использовать Frescobaldi (редактор для Lilypond), но пакетный выпуск lilypond (2.12.3; lilypond похож на TeX для оценочных листов) в официальных репозиториях немного устарел, так как я хочу использовать некоторые совершенно новые функции . Итак, я просто клонировал их репозиторий git и установил его оттуда.
Теперь мой вопрос: как я могу сказать apt, что я удовлетворил зависимость от lilypond вручную, чтобы он не пытался установить другую копию?
Там, где вы фактически предоставляете зависимость, я бы использовал checkinstall
для установки. checkinstall
в основном заменяет make install
и генерирует правильный пакет .deb, а затем устанавливает его. Это не только позволяет вам удалить или обновить пакет лучше (когда придет время), но и удовлетворяет зависимости от других приложений.
Альтернативой является написание небольшого фиктивного пакета, который не предоставляет никаких файлов, но утверждает, что предоставляет все, что вы хотите. Самый простой способ, который я могу увидеть, - это использовать приложение под названием equivs
:
sudo apt-get install equivs
equivs-control lilypond
# edit your fake package so it has the right versions, names, description, etc
nano lilypond
equivs-build lilypond
sudo dpkg -i lilypond-dummy*.deb
. Существует третий простой, но потенциально опасный путь: просто установите его из стандартного репозитория и затем замените его файлы те, которые вы генерируете. Заблокируйте версию пакета, чтобы он не обновлялся. Это может пойти не так, поэтому делайте это только в том случае, если вы не можете checkinstall
или каким-либо другим способом подделать пакет.
Вы должны были использовать dhmake
или sudo check install
вместо sudo make install
. Таким образом, вы создаете deb (проверьте, что install также устанавливает deb) более поздней версии lilypond ^^.
Если у вас все еще есть исходный код (и объектные файлы / файл make и т. Д. После компиляции), вы все равно можете сделать это без необходимости повторной загрузки.