Tuesday, 2 April 2013

НЕ ПОЛЬЗУЙТЕСЬ DotDeb! Никогда не пользуйтесь DotDeb репозиторием!

Если хотите прибить себе систему или довести ее до неюзабельного (и тут не каждый администратор поможет, уж поверьте) состояния - DotDeb Ваш выбор.

Все решения, которые кажутся простыми и удобными изначально - часто обходятся адскими муками потом, DotDeb - решение именно такого уровня.

Слов обратная совместимость, корректная работа и запиновка репозиториев - они просто не слышали. Кроме этого, товарищи любят обновлять системные библиотеки из своего чудо-репо, что ведет к крайне странному поведению системы.

Update:

Хотелось бы также обратить внимание на "хорошие репозитории" для Debian:
  1. Debian Multimedia (исключительно ПО связанное с мультимедией)
  2. nginx.org (только nginx и ничего лишнего)
  3. puppet.com (только puppet)

Для CentOS/RHEL список поменьше:
  1. Epel
А вот в нереокмендуемые сразу попадает rpmforge, к счастью, с явными косяками с его стороны я не сталкивался, но как только он добавляется в системе обновляется десяток библиотек, что само по себе крайне и крайне нехорошо. Так что с ним я придерживаюсь практики "включил рпмфорж, поставил нужный софт, отключил".

22 comments:

  1. Не встречал с ним проблем, можно конкретный пример?

    ReplyDelete
  2. Подтверждаю, благо я вовремя одумался и от репы пострадал лишь один сервер апача, в который они по дефолту вкрячили ненужный модуль и который вызвал у меня проблемы.

    ReplyDelete
  3. viem77, случаев множество, их никак не объединить. Например, постоянные попытки заменить системные либы mysql. Попытки заменить системные библиотеки, от которых зависит работающее в данный момент ПО. Что, разумеется, выводит его из строя. Но самое поганое - исчезновение пакетов из репо.

    И это далеко не полный список. После дотдеба, если пользователь неверно выставил pin'ы, машина скорее всего потребует переустановки, так как это будет фарш, а не дистрибутив.

    ReplyDelete
    Replies
    1. У меня с дотдеба подтаскиваются php, mysql и redis, за последний год ни разу не было ни конфликтов, ни исчезновений пакетов. Может дело, конечно, в правильном /etc/apt/preferences, не знаю. Но такая критика в сторону дотдеба реально удивила, на многих машинах под разные задачи стабильно полет нормальный...

      Delete
    2. Что то я не нашел какие такие "системные либы" заменяет dotdeb.
      Мейнтейнер собирает прямые зависимости свежих версий, если это обязательное требование, ровно также делает машенька.
      Я в репе не заметил кастомной версии glibc или чего то подобного :)
      Или я что то не уловил ?

      Delete
  4. viem77, для mysql есть нормальный репо - percona, для nginx - собственный. Если стоит выбор использовать dotdeb (кто они вообще? кто уверен, что там нет закладок?) - лучше собрать самому.

    ReplyDelete
    Replies
    1. для мускуля есть еще мария
      https://downloads.mariadb.org/mariadb/repositories/

      Delete
  5. Тут проблема даже не в том, что сам по себе dotdeb плох, а в том, что его используют без головы и он (в отличие от нормальных репо) дает возможность отстрелить себе ногу.

    ReplyDelete
    Replies
    1. С такой формулировкой, пожалуй, соглашусь. Использование репозиториев без включения головы ничем хорошим не заканчивается, тем более если в них возможность стрелять себе в ногу не закопана поглубже.
      А особой альтернативы (кроме как самому собирать) я не вижу, только там оперативно появляется свежий redis под squeeze.

      Delete
  6. Пиннайте разработчиков делать репо :)

    ReplyDelete
    Replies
    1. Проще мейнтейнить самому :) Товарищ Сальваторе и так денно и нощно развивает продукт, предложить ему еще и опакечиванием заниматься язык не повернется :)

      Delete
    2. Вопрос сложный на самом деле. С-софт собрать самому никакой беды. А вот какой-нибудь Puppet, Redmine (sic! ruby!) или zabbix очень неприятно и тут даже не в сборке вопрос, а в том, что почти невозможно собрать окружение не сломав свою систему.

      Delete
  7. Linux сам по себе дает себе отстрелить не только ноги руки голову, так что товарищи - не используйте linux.

    ReplyDelete
    Replies
    1. Почему-то линукс не помогает угробить систему, а вот дотдеб - легко (в официальном мануале есть запиновка?).

      Delete
  8. за все время с ним не было никаких проблем

    ReplyDelete
    Replies
    1. Вам везло :) Когда еще на дворе был ленни и всем был нужен php 5.3, тогда начался массовый тренд юзать дотдеб. Следом же начались проблемы из-за отсутствия каких-либо расширений для php и попытки обновить слабо связанные с php пакеты с dotdeb с весьма печальными последствиями.

      Delete
  9. > НЕ ПОЛЬЗУЙТЕСЬ DotDeb! Никогда не пользуйтесь DotDeb репозиторием!
    > Все решения, которые кажутся простыми и удобными изначально - часто обходятся адскими муками потом, DotDeb - решение именно такого уровня.


    Согласен. Никогда не пользуйтесь неофициальными, как это сказать, system-wide-репозиториями:
    как минимум, они любят заменять библиотеки на свои "улучшенные" версии, и таким образом ломать другие, уже установленные пакеты...

    ReplyDelete
    Replies
    1. Спасибо за поддержку :)

      Хотелось бы также обратить внимание на "хорошие репозитории" для Debian:
      Debian Multimedia (исключительно ПО связанное с мультимедией)
      nginx.org (только nginx и ничего лишнего)
      puppet.com (только puppet)

      Для CentOS/RHEL список поменьше:
      1) Epel

      А вот в нереокмендуемые сразу попадает rpmforge, к счастью, с явными косяками с его стороны я не сталкивался, но как только он добавляется в системе обновляется десяток библиотек, что само по себе крайне и крайне нехорошо. Так что с ним я придерживаюсь практики "включил рпмфорж, поставил нужный софт, отключил".

      Delete
    2. > Debian Multimedia (исключительно ПО связанное с мультимедией)

      dmo? знаем-знаем ;)

      > puppet.com (только puppet)

      http://www.puppet.com — вероятно, что-то здесь не то :)

      В Ubuntu, в принципе, весьма годные (полу-)официальные PPA для всяких там Wine и т. п.

      Delete
    3. Правильная ссылка - https://puppetlabs.com :) Ну да, мультимедия странна :/

      Честно говоря, вот все это озанченное - отчасти проблема пакетного менеджера, надо посмотреть, как сделаны PPA в Убунте, может быть там решили проблему использования кучки репозиториев без убийства системы.

      Delete
  10. С debian lenny они просто выпилили репозиторий.
    Хотя сами пакеты остались в архиве, но апнуть или скачать их через apt-get было уже нельзя.

    Так же они фиксят баги видимо после нового релиза. В init скрипте для nginx не отображало ошибку при старте. Проблема была в server_names_hash_max_size - но пришлось потратить какое-то время на ее поиск. Так как в логах - ничего, а init скрипт не выводил вообще ничего.

    /etc/init.d/nginx start
    никакого ответа.

    ReplyDelete
  11. Использую dotdeb 2,5 года на примерно 15 серверах (Lenny, Squeeze), пользуюсь оттуда php5-fpm, nginx и mysql. Хоть проблем за это время не было ни разу, тоже стал задумываться о переходе с него, правда, по более приземлённым причинам: боязно, что такой проект тянет один человек; если (не дай Бог, конечно) у него будут какие-то проблемы, куча машин на энное время останется без обновлений, пока проект кто-то не подхватит. Ваша статья только укрепила желание с него "соскочить". Был бы вам признателен, если бы вы осветили пару вопросов:
    1) "аварийный" вариант для уже втянутых: просыпаемся утром, а dotdeb'а больше нет - как прекратить использовать его без ущерба для стабильности системы (пусть в ущерб обновлениям того, что из него поставилось)?
    2) какой, на ваш взгляд, наиболее удобный вариант всегда иметь свежие копии PHP/MySQL, не используя dotdeb? Я думаю об автоматизированной сборке из исходников (один раз собрать и все сборочные команды закинуть в bash-скрипт) и установке через checkinstall, может быть, ещё что-то подскажете?
    3) пункт 2, но в масштабе множества серверов с идентичными конфигурациями. Я склоняюсь к заворачиванию собранного пакета в .deb, а то и к подъёму собственного репозитория на одной из машин.

    ReplyDelete

Note: only a member of this blog may post a comment.