Як підробити встановлену версію пакета?


23

Будучи початковим користувачем та використовуючи щоденні версії 11.04, я іноді стикаюся з ситуацією, коли для деяких пакунків потрібні більш ранні версії інших пакетів, ніж ті, які я встановив. Зазвичай новіші (але відмовлені) версії необхідних пакетів забезпечують всю функціональність своїх старих версій.

Якщо я використовую dpkg -i --force-depends-versionдля встановлення залежних пакетів, все працює добре, я ніколи не бачив проблеми.

Замість завантаження та встановлення кожного пакету вручну, чи можу я просто зробити так, щоб система робила вигляд, що встановлена ​​певна версія пакета, коли є новіша? Або є --force-depends-versionключовий еквівалент apt-get?

Відповіді:


16

Ви можете використовувати пакет equivs, Встановити еквіваленти щоб створити макетний пакет, щоб підробити встановлений пакет. Деякі інструкції тут .


Поки цього достатньо. Але посилання може рано чи пізно розірватися. Краще мати принаймні відновлені інструкції в межах відповіді. Моя відповідь може допомогти тут askubuntu.com/a/1181415/26246 . Тож ми можемо посилатися на це питання, який має вищий голос щодо еквівалентів.
user.dz

23

Незважаючи на те, що відповідь вже прийнята, вкладене прийняте краще передає процес:

  1. Є пакет Debian, який називається, equivsякий здатний створювати фіктивні пакети. Встановіть його, запустившиsudo apt-get install -y equivs

  2. Після встановлення ви генеруєте файл керування шаблоном, використовуючи таку команду: equivs-control postfix(замініть postfixна ім'я вашого пакета). У моєму випадку я можу використовувати альтернативну назву пакета, наприклад, postfix-customбудь-яку іншу, але виконати мій спеціальний пакет або Providesвстановити залежність postfix(знову замінюючи postfixбудь-який пакет, який ви хочете.

  3. Після створення файлу управління шаблоном я зазвичай видаляю багато коментованих висловлювань (тверджень, що починаються з #). Мені подобається зберігати конкретно Provides:заяву, в якій я можу сказати, що мій пакет надає можливість, запропонований іншим пакетом, який я намагаюся підробити, наприклад, Provides: postfixрозповідає механізму вирішення залежності Debian / Ubuntu, що мій пакет - незалежно від назви - надає ті ж можливості цільового пакету, знову postfixчи що завгодно. Це дозволяє мені називати свій пакет незалежно від цільового пакету, щоб уникнути плутанини. Erlang Factory робить це зі своїми речами, наприклад, esl-erlangзабезпечує erlang.

  4. Нарешті, після створення файлу управління шаблоном ви використовуєте equivs-buildдля створення підробленого пакету, наприклад equivs-build /path/to/generated/control/file.

  5. Щоб скласти пакет, потрібно кілька секунд, а потім можна запустити sudo dpkg -i my_package_name*.deb

Для досвідчених користувачів, якщо у файлі управління шаблоном є Requires:рядок залежності, ви можете скористатися інструментом, як-от gdebiвстановити ваш пакет, а також різноманітні пакети, які він оголошує залежностями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.