Назад | Перейти на главную страницу

«/ Usr», «/ usr / local /», «/ sbin»

Вопрос администратора новичка linux здесь. За последние 6 месяцев или около того я обновил большую часть установленного по умолчанию программного обеспечения на моем сервере в Fedora. За последние несколько недель я понял, что в этой файловой системе есть много экземпляров одного и того же программного обеспечения, и некоторые из них все еще используются, а некоторые нет.

Например, я обновил / переустановил MySQL как минимум 3 раза, один раз из rpm и два раза из архива исходного кода. Я только что понял, что есть двоичные файлы mysql в /sbin, /usr/bin, /usr/local/bin, и /usr/local/mysql/bin. Что еще хуже, which команда указывает на /sbin, (спасибо заказу ENVс PATH написано, вероятно), но init.d сценарий использует /usr/local/bin, а все общие библиотеки и заголовки взяты из еще одной установки. Это беспорядок.

Аналогичная ситуация с текущей установкой PHP и Python.

У меня такой вопрос - как мне это очистить? Я:

  1. Выберите одну из установок, укажите ей правильные ПУТЬ и удалите остальные. Перекомпилируйте все зависимости, которые указывали на (теперь удаленные) другие установки, если они не удались из-за того, что их пути к зависимостям были записаны.
  2. Выровняйте все и начните с нуля.

Есть другое решение? Спасибо за ваш совет!

зависит от того, сколько времени и сил вы хотите вложить. Чистая установка всегда лучше, если у вас есть время и терпение, чтобы все восстановить. Быстрое решение - изменить ваш PATH, чтобы он указывал на нужные вам версии. Другой вариант - создать символические ссылки, указывающие на нужные версии. Опять же, лучший метод - это полностью чистая установка.

Плохая новость в том, что быстрого решения нет.

Хорошей новостью является то, что MySQL обычно не слишком запутан в том, где он устанавливается. Я бы посоветовал почистить их вручную. Начните с составления списка каждой установки. Следующая команда должна все уловить:

INSTALL_PATH="/"
find ${INSTALL_PATH}/{bin,sbin,share} -name 'mysql*' -type f
find ${INSTALL_PATH}/{lib,include,share} -name 'mysql' -type d

Повторите процесс с INTSTALL_PATH так как /usr и /usr/local как требуется. Затем приступайте к принятию решения, какую установку вы хотите сохранить и которую хотите удалить.

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