Debian Lenny 5 «закончился». Переходим на Debian Squeeze 6!

    Как известно, полтора месяца назад (в феврале) закончилась поддержка 5-го Дебиана и он официально канул в лету, т.е. в архив archive.debian.org.
    Что делать дальше? — Задумались многие хостеры. Ведь перейти на 6-ой Дебиан не так уж и просто в связи с несколькими факторами:

    1) Его не поддерживают некоторые панели управления (как минимум, ISP Manager имеет свои странности, хотя разработчики и локализовали почти все проблемы)

    2) Из коробки доступен PHP 5.3 вместо уже привычного нам 5.2, а это чревато тем, что перестанет работать много сайтов. Одним из самых неприятных моментов является отсутствие функции ereg, которая используется огромным количеством народа в скриптах, в неофициальных модулях к популярным CMS (свежие версии самих CMS уже совместимы с ним).
    Но никто не стоит на месте, а тем более не смотрит назад, и в любом случае переходить на 6-ой нужно, поэтому приступим.

    Для начала давайте разберем сам переход. В принципе, он произошёл без неожиданностей. Опишу:

    1) Добавляем в /etc/sources.list необходимые репозитории:
    # Squeeze
    deb http://security.debian.org squeeze/updates main contrib non-free
    deb http://ftp.ru.debian.org/debian/ squeeze main non-free contrib
    deb ftp://ftp.debian-multimedia.org squeeze main non-free


    2) Обновляем списки пакетов командой:
    # apt-get update


    3) Обновляем саму операционную систему:
    # apt-get dist-upgrade

    Лично у меня всё прошло гладко, но, как пишут в интернете, может мешать некий пакет splashy, на всякий случай удалите и его перед установкой.
    # apt-get purge splashy


    Всё, перезагружаемся и наслаждаемся (будем надеяться) свежей версией дебиана.

    Следующий шаг, о котором я говорил выше – это PHP 5.2.

    Приступим. Способ, в принципе, тривиален.

    1) Необходимо удалить PHP5. Если он установлен (при апгрейде, полагаю, он у всех обновился):
    # aptitude remove `dpkg -l | grepphp| awk '{print $2}' |tr "\n" " "`


    2) Открываем наш:
    sources.list 
    # vi /etc/apt/sources.list

    Добавлем репозиторий от lenny deb:
    http://archive.debian.org/debian/ lenny main contrib non-free
    и закрываем.


    3) Далее необходимо расставить приоритеты работы службы apt. Открываем:
    # vi /etc/apt/preferences

    И прописываем туда следующее:

    Package: php5*
     Pin: release a=oldstable
     Pin-Priority: 700
    
    Package: *
     Pin: release a=stable
    Pin-Priority: 600


    4) Устанавливаем php:
    # apt-get update
    # apt-get -t oldstable install `dpkg -l | grep php5| awk '{print $2}' |tr "\n" " "`


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

    5) Проверяем версию и перезагружаем апач:
    # dpkg -l | grep php5
    # /etc/init.d/apache2 restart


    На этом установка окончена.

    Данный способ был опробован на сервере с ISPManager и DebianLenny 5 – всё прекрасно завелось.
    Если планируется устанавливать сервер «с нуля», то при установке php, в принципе, пропадает только один шаг – удаление старой версии. А так всё сохраняется.

    Будем надеяться, что данная статья поможет Вам!

    Автор: Роман Малиновский, руководитель службы технической поддержки хостинг-проекта Unlimits Telecom.

    Оригинал статьи на английском, опубликованной на slashdot.org

    UPD: Спасибо tbicr за найденную неточность:
    # apt-getpurgesplashy

    заменяем на:
    # apt-get purge splashy

    и
    #aptitude remove `dpkg -l | grepphp| awk '{print $2}' |tr "\n" " "`

    заменяем на:
    # aptitude remove `dpkg -l | grepphp | awk '{print $2}' |tr "\n" " "`
    Частный фонд бизнес ангелов 16,64
    Компания
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 14
    • 0
      Как известно, полтора месяца назад (в феврале) закончилась поддержка 5-го Дебиана и он официально канул в лету, т.е. в архив archive.debian.org.
      Что делать дальше? — Задумались многие хостеры.

      Вовремя.

      Статья же о том как обновить дистрибутив и настроить приоритет пакетов.
      • +3
        И вот еще одна революционная разрывающая статья на хабре. Опишите хотя бы зачем вы «прописывали следующее» и что за «некий пакет splashy» и чем он может помешать в этом процессе.
        • +5
          По-моему 6-й Дебиан всю жизнь назывался Squeeze.
          • +1
            Большое спасибо за указание неточности, исправили!
          • +4
            Проблема в том, что в PHP иногда находят уязвимости. А для 5.2 фиксов уже не будет. Поэтому все равно надо и PHP обновлять.
            • 0
              проблема еще в том, что zend работает только под php 5.2
              • 0
                Если вы про guard loader, то:
                # php -i|egrep «PHP\ Version|Guard»
                PHP Version => 5.3.3-7+squeeze8
                with Zend Guard Loader v3.3, Copyright © 1998-2010, by Zend Technologies
                PHP Version => 5.3.3-7+squeeze8
                Zend Guard Loader
                Zend Guard Loader => enabled
                • 0
                  И что? Скрипты закодированные для 5.2 работать не будут! На них нужен zend optimizer
            • –2
              Зачем добавлять репозитории?.. Пропишите уже вместо названия дистрибутива — stable. И всех делов.

              Splashy не «некий пакет», а юзерспейсный сплэш-скрин. Чем он может мешать я не знаю, но зачем его удалять то? Если что-то «мешает» вам apt об этом скажет и предложит варианты решения.
              И, судя по дальнейшей установке старой версии php, вы пишите инструкцию для серверов/хостеров. Мне сложно представить себе чтоб на сервере стоял графический сплэш скрин.
              • 0
                Если не название прописывать, а статус — «stable» — то может случится страшное, когда нынешний дебиан testing станет stable.
                • 0
                  что страшное?.. ни разу ни единой проблемы небыло с апгрейдом дебиана…
              • +4
                И когда только люди научатся читать маны, прежде чем писать статьи на хабр?
                Безумную конструкцию
                aptitude remove `dpkg -l | grepphp | awk '{print $2}' |tr "\n" " "`
                
                можно заменить на вполне компактную
                aptitude remove ~iphp
                
                • 0
                  И да, какой-то больно странный, совсем не юниксвейный способ: сначала обновить, а потом откатывать.
                  Почитайте ман apt-get / aptitude, там написано про hold. Его сделали как раз для того, чтобы просто не обновлять необходимые пакеты.
                • 0
                  Между 2) и 3) очень рекомендую вставить отдельно обновления удева и ядра, или хотя бы очень внимательно смотреть список пакетов для обновления — в противном случае есть все шансы поиметь после ребута нерабочую систему.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое