Як зберегти мою систему Debian з останніми пакетами?


9

Більшість "програмного забезпечення", яке я встановлюю на своєму сервері, має бути останньою версією (Java, Tomcat, MySQL-Cluster). Тож мені ніколи не пощастить, що є готові пакети Debian (у дистрибутиві). Тому все програмне забезпечення завантажується з веб-сторінки проекту та будується з джерела.

Тепер моє запитання полягає в тому, який правильний спосіб встановити їх у моїй системі Debian?

Моя основна проблема полягає в тому, що при встановленні їх безпосередньо з джерела вони не включаються до управління пакетами (з придатністю). Здається, Checkinstall насправді не пропонується використовувати, а еквівалент також має недоліки. Є єдиний правильний спосіб вирішити це, створивши власні пакунки з dh_make та dpkg-buildpackage?

Що ви робите, якщо вам завжди потрібна остання версія?

Відповіді:


10

Потрібні новітні пакунки - це поширена проблема в будь-якій ОС. Цикл випуску Debian за останні роки становив у середньому 2 роки, тож наприкінці цього циклу це, мабуть, більш актуальна проблема. Одним із способів їх пом'якшення є перехід до тестування до кінця циклу стабільного випуску, коли наступна версія майже стабільна. З питання не зрозуміло, чи йдеться про стабільне, загалом, про тестування та / або нестабільність. Незважаючи на те, наявність найновішої версії може бути проблемою, навіть якщо вона працює, якщо вона нестабільна, оскільки найновіша версія може бути ще не упакована. Розробники / пакувальники Debian - це добровольці, тому їм може бути нудно або зайнято іншими справами, в результаті чого пакет знемагає.

Для простоти та конкретності я припускаю, що з цього випливає, що план полягає в тому, щоб підтримувати пакет стабільним, але він застосовується більш загально. Отже, ось що я роблю, якщо хочу отримати більш новітню версію програмного забезпечення, яка не є стабільною, у приблизному порядку.

  1. Шукайте пакет у Debian Backports . Іноді ви можете знайти пакет, який є досить недавним, щоб задовольнити ваші цілі. Однак часто трапляється, що ці пакети застаріли в порівнянні з версією в нестабільній, експериментальній або вище за течією.

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

    apt-get install packagename/unstable
    

    це перше, що потрібно спробувати. При версіях apt в стабільній системі це часто провалюється, оскільки для цього потрібні інші пакети від нестабільних, і ця заповнення лише підвищує перевагу packagenameдостатньо високої, щоб встановити її в нестабільній. Якщо ви не розумієте, що це означає, підіть і почитайте man apt_preferences. Продовжуйте додавати залежності від нестабільних, переконуючись, що вони не намагаються оновити базові пакети. Наприклад, якщо він починає намагатися оновити libc6 або X або KDE або Gnome, негайно скасовуйте роботу. Зазвичай це добре, якщо він намагається оновити інші пакунки з того самого вихідного пакету, оскільки вони, як правило, щільно з'єднані між собою. Щоб побачити, від якого джерела пакунків залежить двійковий пакет, зробіть

    apt-cache showsrc packagename
    

    Оскільки багато матеріалів залежить від бібліотеки GNU C (libc6), це раніше було проблемою. З недавніх пір API, здається, стабілізувався, тому тепер частіше можна відійти від необхідності його оновлення. Якщо пакет задовольняє залежність від стабільності роботи, але він не працює належним чином, подайте помилку. Якщо пакувальник скаже вам, що це не помилка, вони помиляються. :-)

  3. Підкріпіть пакунок самостійно від тестування, нестабільності або експериментальності.

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

    Це часто може вимагати рекурсивної речі побудови циклу залежності. Спочатку потрібно отримати залежності побудови

    apt-get build-dep packagename    
    

    Якщо це не вдається, оскільки одна із залежностей не є достатньо недавньою, вам потрібно спочатку підтримати цю залежність. Це може вийти з-під контролю. Я зазвичай відмовляюся, якщо мені доводиться стикатися з більш ніж двома рівнями рекурсії. Зауважте, що реальні залежності не обов'язково є настільки жорсткими, як зазначено, тобто. може працювати старша версія. Пакувальник часто не намагається знайти найстарішу версію залежності побудови (або, справді, під час виконання), яка працюватиме.

  4. Перевірте наявність пакетів з відповідного висхідного потоку. В ідеалі вони відповідатимуть вашій версії розповсюдження, але ви, можливо, також зможете відновити їх.

  5. Створіть пакети для версії програмного забезпечення пізнішої, ніж найновіші пакети тестування / нестабільні / експериментальні. Це може бути досить складно, але все ж іноді напрочуд можливо. Перше, що слід зазначити, це те, що якщо ви намагаєтесь упакувати більш нову версію пакету, який вже є в Debian, ви вже починаєте з великою перевагою, а саме, що у вас є існуюча упаковка, з якою ви працюєте. Просто роби

    apt-get source packagename
    

    і apt-getзавантажить відповідний вихідний пакет, включаючи підкаталог debian, де живе упаковка. Крім того, зауважте, що в наші дні ця упаковка часто знаходиться всередині якогось сховища версії управління (git здається популярним у Debian) та стабільного apt (на даний момент 0.8.10.3 ) корисно підказує, де це відбувається, коли ви викликаєте apt-get source. Слід звернути увагу на це, оскільки упаковщики можуть мати новіші версії упаковки, ніж вони відповідають будь-якому випущеному упаковці. Напр.

    $ apt-get source mercurial
      Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
      svn://svn.debian.org/python-apps/packages/mercurial/trunk
    

    Крім того, ви можете просто використовувати

    apt-cache showsrc mercurial | grep Vcs
    

    перелічити сховище.

    Якщо пакет сильно застарів, можливо, вам доведеться внести зміни в
    пакет, оновити застосовані виправлення, але це як правило хороша відправна
    точка. Debian, схоже, знаходиться в процесі стандартизації управління пакетами на
    ковдру в форматі dpkg-source 3.0 (quilt) , так що це допомагає при оновленні патчу.

    Я закінчу прикладом із реального життя, як я підтримував пакет Debian у форматі pgf . Остання упакована версія pgf була 2,00 у 2008 році, і з того часу випущено 2,10. Дивіться дискусію в « Будь ласка, оновіть до новітньої стабільної версії pgf (2.10) , і мою подальшу помилку з патчем, pgf: патчі проти упаковки Debian 2.0 . Як виявляється, упаковка pgf Debian була дуже простою, і мені довелося просто змінити одну лінію в упаковці 2.10, щоб вона працювала. Я врешті-решт припинив усі скарги на літнійські країни , але це було суворо необов'язково.


Останнє речення першого абзацу може ввести в оману. Будь ласка, уточніть, що у вас проблема виникає лише іноді . Те, як ви ставите, здається, що ДД, як правило, так.
tshepang

@Theheng: Добре. Чи все в порядку?
Faheem Mitha

Так, набагато краще.
thepang

5

Ви, звичайно, можете створити власні пакети, і це спрацює. Однак я б рекомендував спочатку скористатися спинками, якщо там є те, що ви хочете.

Списки підтримуються Debian, і ви отримуєте оновлення безпеки для них.


3

Побудова власних пакетів - це шлях. (ІМХО). Залежно від віку версії пакету Debian і того, що змінилося, це може бути настільки ж просто, як замінити ім'я файлу вихідного коду в описі пакета, і в гіршому випадку ви все одно можете використовувати його як шаблон для власної версії.


1

Що ви робите, якщо вам завжди потрібна остання версія?

  1. Як вже було сказано , використовуйте підпорки.

  2. Підтримується лише невелика підмножина пакетів Debian, тому я пропоную скористатися тестуванням Debian . Він пропонує приємний баланс між стабільністю та сприйнятливістю, і в певному сенсі схожий на кочення.

  3. Якщо ви трохи сміливіші, використовуйте Debian Unstable . Стверджується, що вона досить стабільна. Деякі навіть йдуть настільки далеко, що стверджують, що це стабільніше, ніж "стабільні" версії інших дистрибутивів. У будь-якому разі, нестабільна, де зазвичай прибувають нові версії пакету. Вони зазвичай просиджують там близько 10 днів, щоб дати змогу пройти тестування, перш ніж перейти до тестування.

  4. Навіть використовуючи ці дві, ви все ще можете виявити, що не маєте останніх версій. У такому випадку подивіться на Debian Experimental . Зазвичай він використовується, коли нові пакунки занадто руйнівні для звичайних архівів (Нестабільний і Тестуючий).

  5. Якщо в Experimental все ще немає нових версій програмного забезпечення, перегляньте PPA Ubuntu . Я бачив там версії програмного забезпечення більш пізні, ніж те, чого не вистачає у всіх перерахованих вище архівах. Використовуйте це з обережністю, оскільки Ubuntu не на 100% сумісний з Debian (але в більшості випадків проблем не повинно бути).

  6. Якщо вищезгадане не вдасться, я думаю, просто будуйте власні пакунки, як було сказано .


Люди, які говорять про нестабільність Debian, більш стабільні, ніж інші стабільні дистрибутиви, в кращому випадку жартують. Нестабільні зміни щодня, стабільний - це фіксований сховище. Нестабільний не означає, що він вийде з ладу, але це означає, що розробники вносять багато змін у пакети. Стабільний означає, що він випущений, і будуть додані лише виправлення безпеки. У мене ніколи не було дивних аварій, які працювали нестабільно. Я бачив, як пакунки розбиваються і проблеми залежностей після оновлення Тхо, будьте обачні; У цьому контексті немає "стабільнішого". Це змінюється, чи ні.
Ар’ян Драйман

@ArjanDrieman: насправді ці люди не жартують, і в цьому контексті вони мають на увазі, що це більш стійкий до краху.
thepang

Вони все одно жартують у кращому випадку. Я дійсно бачив, як люди жартують з цього приводу. Полум'я мікророзподілу ;-) Я використовував декілька дистрибутивів у часі, і ніколи не траплявся дивних збоїв під керуванням будь-якого іншого. Люди, які говорять про це, серйозно не можуть підкріпити це дослідженнями або статистикою. Це може бути незнання, зарозумілість, забобони, будь-що ... але це краще, ніж жарт? Чи можете ви сказати мені, хто такі загадкові "Деякі"? Я можу попросити їх дослідити? "Деякі навіть йдуть далеко" ... це слова, які милують. Що б ви хотіли у відповіді, фактах чи популярній думці та неоднозначних твердженнях?
Arjan Drieman

1
@Arjan Drieman: Я фактично погоджуюся на нестабільну ситуацію, може "коли-небудь" відповідати своїй назві. Ви торгуєте стабільністю для того, щоб підійти ближче до краю, кожен, хто стверджує, що це не так, у кращому випадку сумлінний. В цілому він напрочуд стабільний, але стабільність не є найвищим пріоритетом для нестабільних. Я також схильний погодитися з вами щодо "слизької" норми. Тут майже захисний механізм, оскільки будь-яка абсолютна / пряма заява негайно атакується.
Дж. М. Бекер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.