Хотя прошло почти год с тех пор, как я начал использовать Ubuntu, я не пытался устанавливать программное обеспечение из исходных текстов. На самом деле я не нашел в этом необходимости. Но сейчас я работаю над программным обеспечением, которое находится на стадии подготовки к выпуску в репозиториях, но исходный код последней стабильной версии доступен на домашней странице программного обеспечения.
Я узнал, что установка из исходного кода может быть сложной, если у программного обеспечения много зависимостей. Однако, если я займусь этим, я буду счастлив с последней версией. Но я продолжаю задаваться вопросом, может ли такое программное обеспечение автоматически обновляться или мне придется запускать некоторые сценарии для обновления пакета. Или, что еще хуже, придется переустанавливать каждое обновление с нуля?
Также мне не терпится узнать, есть ли какое-то конкретное преимущество при установке из источника, отличного от указанного выше.
источник
Ответы:
Лучше всего отметить, что зависимости программного обеспечения редко меняются. Если вы успешно скомпилировали программное обеспечение один раз, любые последующие версии должны легко компилироваться - все зависимости должны быть уже удовлетворены.
Если вы скомпилировали из исходного кода, не существует
.deb
или аналогичного пакета, который вы могли бы использовать для обновления, если только вы не дождетесь, пока дистрибутив включит это программное обеспечение в свои репозитории, или дождетесь обновления PPA для разработчиков.Проще говоря, кто-то должен сначала скомпилировать его, чтобы превратить в деб. Компиляция старой версии не даст вам возможности автоматического обновления, вам все равно придется пройти через весь процесс «download-configure-compile-install».
Однако , если вы хотите установить одну и ту же версию на нескольких компьютерах, имеет смысл упаковать скомпилированную версию как
.deb
(или аналогичную) и распространить ее на эти компьютеры. Если все сделано правильно, зависимости будут автоматически установлены.Что касается преимуществ установки из исходного кода, я могу думать только о двух:
источник
Согласно этому посту вы можете создать пакет .deb после компиляции исходных текстов. Затем вместо «make install» вы можете установить из пакета .deb. Это облегчает обновление (если оно было в каком-то репозитории), потому что пакет будет управляться менеджером пакетов, который отслеживает обновление.
В случае, если для сборки пакета "some-package" из исходных кодов имеются зависимости, вы можете попробовать "apt-get build-dep some-package", чтобы автоматически установить все зависимости, необходимые для компиляции пакета, без отслеживания каждого вручную. Зависимость себя. Таким образом, зависимости также управляются менеджером пакетов и должны обновляться автоматически.
источник
git
Стоит упомянуть еще одну альтернативу для пользователей:Вы также можете использовать
git pull
более раннююgit clone
версию для обновления исходного кода, а затем перекомпилировать свою программу, если это необходимо. (Вы также можете использоватьgit
для дальнейшего отслеживания файлов: см. Ответ здесь .)Если вы изначально использовали
git clone
для получения исходного кода, как, например,и вы сохранили папку после компиляции и установки, вы можете перейти в папку и запустить,
git pull
чтобы получить последние коммиты. Затем удалите все каталоги сборки, которые вы, возможно, создали и / или запуститеmake clean
(при необходимости), а затем снова скомпилируйте программное обеспечение и установите егоcheckinstall
, что также создает пакет для вас (хотя и не подходит для распространения).Тем не менее, если вы помогаете в разработке программы и вам необходимо перекомпилировать ее после каждого ежедневного рабочего дня,
git pull
то, вероятно, вы установили бы ее в домашнюю папку, поскольку нет необходимости/usr/local/
каждый раз устанавливать ее в иерархию.Например, если я тестирую и так регулярно перекомпилирую программу, я бы попал в свою папку сборки после получения последних коммитов
git pull
и запуска (для этой конкретной программы):а затем скомпилируйте отладочную версию для тестирования.
Однако, если вы просто хотите скомпилировать новую версию своей клонированной программы git каждый месяц или около того (и не тестировать или отлаживать ее), вы обычно устанавливаете ее в
/usr/local/
иерархию с помощьюcheckinstall
.источник
Чтобы управлять вашими установками из исходного кода, смотрите мой ответ здесь: Как обновить пакеты, скомпилированные из исходного кода?
источник