Как понизить версию пакетов в Ubuntu?
Диспетчер обновлений сохраняет пакеты в последней версии, но иногда новая версия пакета может работать не так, как ожидается, или работать неправильно. Как понизить версию установленного пакета и заблокировать его в определенной версии, чтобы предотвратить его обновление? Как я могу сделать это с помощью графического интерфейса или терминала?
2 ответа
В GUI - с помощью Synaptic
Упрощенный интерфейс Ubuntu Software Center не дает возможности понизить версию пакетов. Synaptic, более продвинутый графический интерфейс менеджера пакетов, который Ubuntu использовал для включения, предлагает эту опцию. Чтобы графически понизить версию пакета, сначала установите приложение Synaptic:
После этого откройте диспетчер пакетов Synaptic из Dash:
Найдите пакет, для которого вы хотите установить более старую версию в Synaptic, выберите его и используйте опцию Пакет > Принудительная версия:
Выберите версию, которую хотите установить, и нажмите "Принудительная версия". Synaptic покажет вам только версии, доступные в ваших репозиториях:
Нажмите кнопку Применить, чтобы применить ваши изменения и установить старую версию пакета, при условии, что все работает правильно.
После понижения версии пакета выберите его и используйте параметр " Пакет" > " Заблокировать версию". Если вы этого не сделаете, Ubuntu попытается обновить установленный пакет при следующем обновлении установленных пакетов:
В Терминале - используя apt-get
Вы можете установить конкретную версию пакета с apt-get
в Терминале. Сначала определите доступные версии, которые вы можете установить, с помощью следующей команды (используйте для packagename название программы, которую вы хотите понизить):
apt-cache showpkg [packagename]
Затем запустите команду apt-get install и укажите версию пакета, который вы хотите установить (используйте для версии номер версии, ранее определенный для программы, которую вы хотите понизить):
sudo apt-get install [packagename]=[version]
После установки выполните следующую команду, чтобы сохранить установленную версию, не позволяя диспетчеру пакетов автоматически обновлять ее в будущем:
sudo echo "[packagename] hold" | sudo dpkg --set-selections
Источник: http://www.howtogeek.com/117929/how-to-downgrade-packages-on-ubuntu/
Другая возможность:
Давайте найдем заархивированный пакет на http://packages.ubuntu.com/:
Например понижение php5:
Поиск:
Найденный точный хит позволяет взглянуть на страницу пакета для php5:
Мы можем увидеть различные версии выпусков Ubuntu здесь, в которых мы уверены:
Давайте переключимся на версию с php (5.3) ... 12.04 (точная), например:
скачать tar.gz
А затем распакуйте файл tar и установите его:
cd /path/to/download
tar -xzvf name_of_package
cd name_of_extracted_folder
./configure
make
sudo make install
Возможные проблемы, с которыми можно столкнуться при запуске ./configure
:
- Отсутствующие зависимости (пришлось установить
libxm2-dev
):
Проблемы запущены make
:
- ошибки при компиляции могут включать неправильно установленные флаги или проблемы с самим кодом.
- Куча мусора при компиляции, а затем какая-то проблема в коде?
- В моем случае я должен был найти последние исходные файлы /tarball для php ( http://php.net/downloads.php)
- и повторите попытку извлечения и сделайте