Как я обновлялся до Ubuntu 8.10
Опубликовано 08.11.2008
На следующий день после выхода релиза обновления доползли до местного нижегородского репозитория (yum.fireground.ru), поэтому я решил рискнуть и, несмотря на многочисленные отрицательные отзывы, обновить один из компов своего персонального зоопарка.
Первым делом столкнулся с нехваткой места: установщик обновлений потребовал 1,6 Гб места в корневом разделе, а поскольку при распределении места я пожадничал и выделил под / чуть меньше пяти гигабайт, которые, естественно, сразу же забились, то пришлось основательно почистить систему от старых ядер, ненужных приложений, документации, различных кэшей и т.д. После этого никаких проблем с обновлением не возникло, почти все моё железо продолжило работать в прежнем режиме, включая USB-карточку Netgear WG111T, драйвер которой загружался через ndiswrapper… Кроме графической карты ATI Radeon X1650 Pro, которую и в hardy не удавалось заставить работать на полную мощность ни с проприетарным fglrx, ни с открытым radeon от X.org — обходился vesa. Но и этот баг оказался во благо: достаточно было удалить из /etc/modprobe.d/blacklist
драйвер radeon, внесенный туда в процессе предыдущих экспериментов по настройке видеокарты, и внести его в /etc/modules
. Затем немного подправил xorg.conf
и все отлично заработало.
Через неделю успешного использования Ubuntu Intrepid Ibex дома я решил, что функциональность нового дистрибутива меня устраивает и неплохо бы обновить и рабочий компьютер. Некоторое время назад в нашей компании наконец набралась критическая масса пользователей-линуксоидов, и совместными усилиями удалось уговорить админов открыть неограниченный доступ к вышеупомянутому репозиторию хотя бы в нерабочее время с 18:00 до 9:00 следующего дня (в нашей провинции принято экономить трафик, поэтому каждому корпоративному пользователю еженедельно выделяется 50 мегабайт http-трафика, на которые систему особо не обновишь). Поскольку пакеты устанавливались из этого репозитория без проблем, то я решил, что обновление дистрибутива также пройдёт без особых приключений. Как же я ошибался!
Основная проблема заключалась в том, что в графическом менеджере обновлений никак не появлялась кнопка «доступен новый дистрибутив». Попытка решить проблему методом гугления ничего не дала, кроме еще одного бедолаги, по странному стечению обстоятельств также жаловавшегося на невозможность обновить систему на работе стандартными средствами, тогда как дома все прошло нормально. Автоматический апгрейд из командной строки (do-release-upgrade
), едва начавшись, завершался с сообщением: «Checking for a new ubuntu release: no new release found
».
Поэтому я полез в исходники (на python я за всю жизнь не написал ни строчки, однако, как оказалось, читать его исходники очень легко) и в /usr/lib/python2.5/site-packages/UpdateManager/Core/MetaRelease.py
нашёл, что для определения доступности нового релиза менеджер обновления обращается к файлу по адресу http://changelogs.ubuntu.com/meta-release, который в моем случае был недоступен из-за особенностей нашего корпоративного прокси (сервер обновлений доступен напрямую, тогда как к changelogs.ubuntu.com
необходимо обращаться через прокси-сервер с авторизацией).
Как всегда, обнаружилось несколько способов решения проблемы:
— выкачать Alternate CD и обновиться с него: с учетом наличия сети — не тру unix way :) приберегу этот способ для своего eee pc, на котором в любом случае не хватит места для выкачивания новых пакетов;
— поднять свой прокси-сервер, который обращался бы напрямую к yum.fireground.ru и через корпоративный прокси — ко всем остальным ресурсам: неохота ставить монстрообразный сквид для такой простой задачи, а в более мелких и простых прокси разбираться нет времени, хотя задача интеллектуального переключения между несколькими прокси вне зависимости от клиента (proxy.pac не подходит) довольно интересна;
— создать локальную копию changelogs.ubuntu.com и в вышеупомянутом скрипте MetaRelease.py указать свой адрес: также не совсем правильно с точки зрения соблюдения целостности системы, поскольку требует неконтролируемых изменений в программе, а не в конфигурационном файле, и в процессе обновления этот файл будет заменен (необходимо заметить, что в update-manager в intrepid уже можно указывать свои сервера в /etc/update/manager/meta-release).
Я пошел немного другим путем: нашел инструкцию по ручному обновлению 8.04 до 8.10 и воспользовался ей. Краткое содержание (используйте на свой страх и риск):
sudo -s # become superuser # заменить hardy на intrepid в /etc/apt/sources.list # лучше воспользоваться текстовым редактором :) sed -i '/^deb/ s/hardy/intrepid/g' /etc/apt/sources.list aptitude update aptitude update # два раза — не опечатка! подробности см. по ссылке выше aptitude upgrade aptitude dist-upgrade aptitude upgrade
Поначалу я вместо «intrepid» в /etc/apt/sources.list
«interpid», за что и был обруган :) В процессе обновления опять же не хватило места, пришлось на ходу удалить несколько неиспользуемых ядер, освободив при этом порядка 200 мегабайт), а также слегка чужеродный для гномоориентированного ubuntu amarok, из-за которого не удовлетворялись какие-то зависимости. Пришлось немного поотвечать на вопросы о различиях в конфигурационных файлах; тут приятно удивило то, что задавались вопросы только о настройках, используемых по умолчанию, внесенные пользователем изменения в конфигурации не затрагиваются. По сравнению с mergemaster в FreeBSD это большой шаг вперёд в автоматизации системного обновления :) (правда, FreeBSD последний раз приходилось обновлять с 4.11 до 5.4 и сейчас я не в курсе нынешнего состояния механизма апгрейда, возможно, что-то поменялось в лучшую сторону).
Учитывая то, что все вышеописанное я проделывал из дома, используя только ssh, и в процессе лишь один раз перезагружался для загрузки с новым ядром — обновление прошло просто идеально. Правда, новый внешний вид системы на этом компьютере я еще не успел оценить :) но, поскольку там используется простенькая мать со чипсетом 82801FB 2004 года выпуска, то никаких проблем с графикой не ожидается.
Собственно о впечатлениях от новых фич Intrepid Ibex (а их много: и фич, и впечатлений) расскажу как-нибудь в другой раз. Вкратце скажу, что особых тормозов не замечено, система работает стабильно и без ошибок.
P.S. Для нагугливших этот пост по ключевым словам «ubuntu intrepid radeon x1650» привожу краткую инструкцию по настройке.
sudo apt-get install xserver-xorg-video-radeon sudo sed -i '/^blacklist radeon/ d' /etc/modprobe.d/blacklist echo "blacklist fglrx" |sudo tee -a /etc/modprobe.d/blacklist sudo grep -q ^radeon$ /etc/modules && echo radeon >> /etc/modules
/etc/X11/xorg.conf
:
Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" DefaultDepth 24 EndSection Section "Module" Load "glx" EndSection Section "Device" Identifier "Configured Video Device" Driver "radeon" EndSection
По умолчанию LTS дистрибутивы настроены таким образом, что ждут следующего LTS, а не простого релиза. Изменить это поведение можно в настройках Synaptic.
GiNeR: естественно, я первым делом включил эту галку в источниках приложений :-)
Не в тему – во фре с тех пор придумали etcmerge (в портах живет) – жить стало лучше и веселей. :)
>задача интеллектуального переключения между несколькими прокси вне зависимости от
>клиента (proxy.pac не подходит) довольно интересна;
Думаю что с таким легко бы справился 3proxy (www.3proxy.ru) – маленький, ядреный, опенсорц и есть под все что шевелится (как минимум, все *никсы и винды).Для админов и прочая явно рулит – швейцарский нож сетевика :).Да, придется поучиться оный юзать но нарисовать правило с разными настройками parent проксей там можно.К тому же там можно и дофига всего еще – worth of trying.Да и автор на своем форуме грамотно отвечает тем кто прочел FAQ и доки но не нашел там ответа на свои вопросы.