Часто бывает что в релиз 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 update2). Скачиваем все зависимости для сборки автоматически:
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*

. Устанавливаем новый 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 Спасибо!