Чи можете ви допомогти мені у питанні моєї проблеми із програмним забезпеченням?


12

Це канонічне запитання щодо компіляції залежностей та управління пакетами.

У мене є питання щодо компіляції портів / програмного забезпечення або встановлення RPM на моєму сервері * nix. Коли я намагаюся це зробити, я отримую багато повідомлень про відсутніх залежності.

Чи може допомогти спільнота серверних помилок?

Відповіді:


10

Ласкаво просимо до помилки сервера. Взагалі цей тип питань тут не є тематичним. Очікується, що більшість сисадмінів вже зіткнулися з цим питанням, перш ніж вони стали сисадміном через майстерність власних робочих станцій. Однак системні адміністратори, що надходять з фоном Windows, можливо, не стикалися з цим, тому ось що слід врахувати:

Чому б не використовувати менеджер пакунків для встановлення програмного забезпечення на ваш сервер?

Менеджери пакунків, такі як yumабо aptвирішують ці залежності для вас. Крім того, вони також можуть використовуватися для управління оновленнями програмного забезпечення на вашому сервері. Більшість ароматів * nix матимуть менеджер пакунків за замовчуванням, особливо на VPS, які постачаються з попередньо встановленою ОС. Якщо ви справді новачок у цьому, використовуйте один із них у своїй виробничій системі та заощаджуйте пригоди під час збирання або встановлення кровоточних обертів RPM для вашого тестового середовища.

Але я вимагаю використовувати більш сучасний пакет, ніж той, що доступний у моєму менеджері пакунків!

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

Пакет, який мені потрібен, недоступний у будь-яких репостів або менеджерів пакетів

У такому випадку вам, ймовірно , потрібно розібратися в залежності (або висмоктати його і використовувати більш стабільну / поширену версію програмного забезпечення). Ви, ймовірно, повинні зробити наступне в тестовому середовищі та уважно зазначати, що ви робите:

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

У мене ще проблеми!

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

Конкретні поради для основних систем управління пакетами

RPM (RHEL / Fedora і клони) і DEB (Debian / Ubuntu і клони) управління пакетами

  • yum whatprovides назва файлу - це відмінний спосіб знайти пакет, який надає певний файл або бібліотеку в системі типу RHEL.
  • Не використовуйте ./configure && make && make installсліпо, якщо це можливо! Саме з цього приводу було створено управління пакунками, щоб запобігти незручному і нездійсненному безладу, який виникає внаслідок непростежуваної установки багатьох конфліктуючих файлів.
  • Багато бібліотек розділені на дві частини: бінарні (наприклад, спільні об'єкти) та розвиваючі (заголовки). Таким чином, вам знадобляться libfooі пакети, і libfoo-devel(або -dev).
  • Розгляньте можливість використання fpm( https://github.com/jordansissel/fpm ) для перетворення тарілок у акуратні RPM та DEB
  • Якщо ви прокатуєте власні пакунки, ВИ є відповідальною за їх оновлення, тестування та обслуговування. Якщо у вас немає інфраструктури для цього, ви напевно прагнете занадто високо.

Пошук залежностей за назвою файлу для RPM

http://rpmfind.net - це гарне місце для пошуку назв пакетів, якщо ви знаєте ім’я файлу, на який скаржиться процедура встановлення. Однак не рекомендується узгоджувати та змішувати пакети з різних дистрибутивів.


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

Елементи, які я б дуже рекомендував, включали б деталі про src RPM, а також підтримку користувацького локального сховища. Створення файлів deb або rpm має бути частиною будь-кого інструментального ременя, який повинен працювати з вимогами пакетів.
Тім Брігхем

Можливо, варто розширити це, щоб торкнутися теми стеків програм та їхніх підводних каменів. Питання про "більш сучасний пакет" нагадало мені недавнє .
Андрій Б

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