Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [HOWTO] Как обновить или устарить программу на несколько версий  (Прочитано 2108 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zenitur

  • Автор темы
  • Участник
  • *
  • Сообщений: 216
    • Просмотр профиля
Часто бывает что в релиз Ubuntu не вошла самая последняя версия программы. Или наоборот, вошла слишком новая, тогда вам по какой-то причине нужна старая. Как поменять версию?

Необходимо пересобрать программу из исходного кода. Для этого необходимо установить зависимости для сборки. Например, если программа хочет libpng12, то нужно установить пакет libpng-dev*. При установке пакета создастся симлинк libpng.so -> libpng12.so.0, а также заголовочные файлы в /usr/include. После успешной установки новой программы, libpng-dev можно удалить.

Давайте рассмотрим обновление программы Pidgin в Ubuntu 12.04.5 с версии 2.10.3 до 2.10.12.

1). В главном меню ищем менеджер репозиториев, в нём ставим эту галочку:


Затем обновляем репозитории, например с помощью команды sudo apt-get update

2). Скачиваем все зависимости для сборки автоматически:

sudo apt-get build-dep pidgin
3). Создаём новую директорию:

mkdir ~/build && cd ~/build
Скачиваем исходный код Pidgin 2.10.3**:

apt-get source pidgin
4). Скачиваем с официального сайта http://pidgin.im новые исходники. Удаляем в исходниках Pidgin 2.10.3 все директории, кроме "debian". Распаковываем на их место новые исходники.

5). Редактируем файл debian/changelog. В верхней строчке меняем номер 2.10.3 на 2.10.12.

6). Начинаем сборку:

cd pidgin-2.10.3
fakeroot ./debian/rules binary

7). Удаляем dbg-пакеты*** и dev-пакеты:

cd ..
rm *dbg*
rm *dev*

8). Устанавливаем новый Pidgin:

sudo dpkg -i *.deb

В пределах одной мажорной версии программы проблем не должно быть. При обновлении/устарении мажорных релизов могут быть проблемы.

* - В RPM-based дистрибутивах Linux -dev пакеты называются -devel пакетами. Например libpng-devel.

** - Команда "apt-get -b source pidgin" сразу начнёт собирать пакет. Поэтому мы не используем параметр -b

*** - эти пакеты отличаются от основных только тем, что на бинарниках не делали strip. Это очень помогает в отладке с помощью gdb, но сильно увеличивает размер бинарников.

Пользователь решил продолжить мысль 03 Февраля 2016, 15:57:08:
Перенесите сюда: https://forum.ubuntu.ru/index.php?board=13.0 Спасибо!
« Последнее редактирование: 03 Февраля 2016, 15:57:08 от Zenitur »

dmitriy_konovalenko

  • Гость
Автор молодец! Это актуальная тема. Хотя случай больше частный - в пределах одной мажорной версии.
Было бы неплохо рассказать и про более общий случай - сборку старых версий программ для более новых дистрибутивов. Это бы могло заинтересовать тех, кто хочет заняться бекпортированием уже в основных репах. Я бы еще добавил про то, что делать, если сборка завершилась с ошибкой - скопировать строку с описанием ошибки и указать ее в любой поисковой системе на выбор. Ну и посмотреть, что пишут насчет ее обхода или исправления. И было бы неплохо дополнить сей документ и рассказать, а что делать, если этой программы вообще нет в репозитарии и заранее подготовленных файлов (типа .dsc или orig.tar.gz) в репозитарии для сборки тоже нет.

 

Страница сгенерирована за 0.017 секунд. Запросов: 20.