Время от времени я нуждаюсь в обновлении программного обеспечения, работающего на одном из наших тестовых серверов на работе (в основном, Debian). Практически каждый раз меня смущает тот факт, что не существует только одного способа установки программного обеспечения. Сегодня мне нужно было обновить Coffeescript. Я не знал, как он был установлен изначально, и поэтому не знал, как его обновить наилучшим образом.
Его можно было установить с помощью apt или вручную, клонировав github-проект и собрав его самостоятельно или через менеджер пакетов nodejs npm. После того, как я боролся с этим и вручную выбросил все связанные с coffeescript файлы и директории, мне удалось сделать новую установку. Но затем я хотел использовать команду coffeescript, которая требует, чтобы были установлены nodejs 0.6 и 0.4.
Итак, пусть игры начнутся снова!
Был ли установлен nodejs вручную? Или как пакет? Или это было положено там богом? Я не знаю.
Поэтому я спрашиваю себя, есть ли какая-то простая стратегия обновления установленного программного обеспечения, когда вы действительно не знаете, как оно было изначально установлено? Каковы лучшие подходы здесь?
источник
Ответы:
Есть простое правило, которому вы должны следовать, которое разрешит большинство случаев:
Таким образом, если файл находится в области, управляемой менеджером пакетов, вы знаете, что он пришел из пакета. Если это не так, вы знаете, что установили его вручную.
Вы должны придерживаться пакетов, предоставляемых вашим дистрибутивом, когда это возможно. Устанавливайте сторонние пакеты только в том случае, если у вас есть задокументированная потребность в функциональности, не предоставляемой дистрибутивом. «Я хочу иметь последнюю версию» не является обоснованным оправданием. Если вы устанавливаете сторонние пакеты, сохраняйте записи о том, где вы их получили, и где-нибудь архивируйте пакеты (
.rpm
или.deb
файлы). Привилегируйте apt или yum источники по случайным сетевым загрузкам.Используйте stow или xstow для программ, которые вы устанавливаете вручную.
Используйте etckeeper , чтобы держать
/etc
под контролем версий . Фиксируйте всякий раз, когда вы вносите изменения, с осмысленным сообщением.Если вы столкнулись с ситуацией, когда вы делали вещи грязным путем и потеряли путь, откуда взялась часть программного обеспечения:
источник
Я могу предложить вам использовать
puppet
для отслеживания установленного программного обеспечения в Linux.Puppet, автоматизированный механизм администрирования для ваших * nix систем, выполняет административные задачи (такие как добавление пользователей, установка пакетов и обновление конфигураций сервера) на основе централизованной спецификации.
Вы можете сослаться на ссылку
источник
Если вы устанавливаете какой-либо пакет с помощью apt-get, все зависимые пакеты будут установлены самостоятельно, потому что apt-get разрешает все зависимости.
В моем случае я пытаюсь установить каждый пакет с помощью командной строки, используя apt-get, поскольку этот пакет находится в репозиториях Ubuntu. Если его нет в их репозитории, вам необходимо прочитать руководство по установке этой утилиты и установить его в зависимости от того, использует ли утилита Makefile или что-то еще.
источник