3

Я относительно новичок в Linux, но я возился с виртуальной машиной Ubuntu, чтобы привыкнуть к ней. Я настроил SSH, Apache, PHP, MySQL, Ruby, Rails, Passenger и Git, чтобы возиться с моими проектами веб-разработки. Некоторые из тех, что я собрал из исходного кода, PHP и Git, были у меня в голове.

Мне было интересно, какова общая лучшая практика для перекомпиляции / переустановки чего-либо из исходного кода? Например, если я хочу обновить Git до более новой версии или включить расширение для PHP. Можно ли перекомпилировать его, а затем установить поверх текущей установки? Или это нет-нет, и я должен удалить перед переустановкой?

Если последнее, как именно вы собираетесь удалить что-то, что было установлено из источника?

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

Спасибо за любую помощь.

РЕДАКТИРОВАТЬ: Спасибо за все вклад до сих пор. Вы все, казалось, ответили на мой вопрос об удалении, но основной вопрос, на который я искал ответ, был:

Должен ли я удалить что-то, что я построил из исходного кода, прежде чем перекомпилировать и установить это снова. Или это нормально для установки поверх текущих установок, когда мне нужно изменить флаг конфигурации или обновить до более новой версии?

3 ответа3

3

Это может быть не тот искатель, который вы ищете, но лучшая практика на Ubuntu - не устанавливать вещи из исходного кода. Я бы сказал, что вы хотите посмотреть на apt или его производные (aptitude et al). Git, например, живет в пакете под названием git-core .

Если вы в конечном итоге устанавливаете вещи из исходного кода, вы можете быть вполне уверены, что они окажутся в /usr/local , что позволит вам вручную удалить старые биты и кусочки, если / когда вы решите обновить.

Некоторые файлы Makefile также имеют цели удаления / удаления, но я не уверен, для какой пропорции это верно.

2

Компиляция вашего программного обеспечения в виртуальной машине - отличный способ "привыкнуть" к операционной системе. Вне всякого сомнения, все ужасные предупреждения о том, что вы сами катитесь, действительны для рабочей машины, но в конечном итоге вам будет лучше, если вы сделаете свои ошибки сейчас.

Если есть какая-либо причина для удаления предыдущей версии, это следует указать в файле README или INSTALL. Если нет, то можно просто запустить 'make install', которая перезапишет старую версию. Сделайте снимок вашей виртуальной машины прямо перед "make install". Когда что-то сломается, не пытайтесь это исправить. Если вы не можете это исправить, вернитесь к снимку и попробуйте снова.

Если позже вы захотите полностью отменить то, что сделали, Makefile содержит всю информацию, которую нужно удалить. Вы можете написать свою собственную цель "удаления" или сделать это вручную, просто используя "rm". Имейте в виду, что в то же время другие вещи могут зависеть от программного обеспечения, поэтому стратегию моментальных снимков также имеет смысл удалить.

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

Если вы столкнетесь с одной из этих проблем на важном компьютере и полностью зависите от менеджеров пакетов, ваши ошибки будут дорогостоящими. Но теперь вы можете просто вернуться к последнему известному добру и двигаться дальше, немного мудрее.

1

Не существует универсального способа удаления скомпилированных исходных кодов; это одна из многих причин не устанавливать ничего из исходного кода. make uninstall будет работать иногда, через.

Вы можете внести некоторые изменения в пакет, не устанавливая «сырые» источники: посмотрите на эту и эту статьи Debian-Administration.org .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .