Як понизити пакети на Ubuntu?


14

Менеджер оновлень зберігає пакети в останній версії, але іноді нова версія пакета може працювати не так, як очікувалося або належним чином. Як знизити версію встановленого пакета та заблокувати його у певній версії, щоб запобігти оновленню? Як я можу це зробити за допомогою GUI або за допомогою терміналу ?

Відповіді:


17

У графічному інтерфейсі - використання Synaptic

Спрощений інтерфейс програмного забезпечення Ubuntu Software Center не пропонує можливості зменшення кількості пакетів. Synaptic, більш просунутий графічний інтерфейс менеджера пакунків, який Ubuntu використовував для включення, пропонує цей варіант. Щоб графічно знизити пакет, спочатку встановіть додаток Synaptic :

Програмний центр Ubuntu

Після цього відкрийте диспетчер пакунків Synaptic з тире:

синаптис

Знайдіть пакет, у який потрібно встановити старішу версію в Synaptic, виберіть його та скористайтеся параметром Package > Force Version :

Форсова версія

Виберіть версію, яку ви хочете встановити, і натисніть Force Version. Synaptic покаже лише версії, доступні у ваших сховищах:

Виберіть версію

Натисніть кнопку Застосувати, щоб застосувати зміни та встановити старішу версію пакету, припускаючи, що все працює належним чином.

Застосувати

Після того як ви знизите пакет, виберіть його та скористайтеся опцією Package > Lock Version . Якщо цього не зробити, Ubuntu спробує оновити встановлений пакет під час наступного оновлення встановлених пакетів:

Версія блокування

У Терміналі - використання apt-get

Ви можете встановити певну версію пакета з apt-getв терміналі . Спочатку визначте доступні версії, які ви можете встановити за допомогою наступної команди (використовуйте для імені пакета ім'я програми, яку ви хочете знизити):

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/


4
якщо ви базували свою відповідь на цьому веб-сайті howtogeek.com/117929/how-to-downgrade-packages-on-ubuntu, будь ласка, надайте джерело посилання. Я не думаю, що howtogeek буде проти, але вони, безумовно, потребують належного посилання на джерело, щоб вони могли отримати кредит.
Луїс Альварадо

Коли я намагався це зробити, я стикався з усілякими проблемами із невиконаними залежностями. Я вважав, що краще використовувати aptitude, оскільки це вирішило всі залежності, наприклад, sudo aptitude встановити smbclient = 2: 4.1.6 + dfsg-1ubuntu2. Дивіться askubuntu.com/questions/770789/how-to-downgrade-smbclient
Lance Holland

3

Інша можливість:

Дозволяє знайти заархівований пакет на 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 )
  • і повторне вилучення та виготовлення
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.