Czy możesz mi pomóc z moim problemem związanym z oprogramowaniem?

12

To jest pytanie kanoniczne dotyczące zależności kompilacji i zarządzania pakietami.

Mam pytanie dotyczące kompilacji portów / oprogramowania lub instalacji RPM na moim serwerze * nix. Kiedy próbuję to zrobić, otrzymuję wiele wiadomości o brakujących zależnościach.

Czy społeczność związana z awarią serwera może pomóc?

dunxd
źródło

Odpowiedzi:

10

Witamy w usłudze Server Fault. Zasadniczo tego typu pytania nie są tutaj tematyczne. Oczekuje się, że większość sysadminów będzie musiała zmierzyć się z tym problemem, zanim staną się sysadminami, majstrując przy swoich stacjach roboczych. Jednak sysadmini pochodzący z systemu Windows mogli nie zmierzyć się z tym, więc oto kilka rzeczy do rozważenia:

Dlaczego nie użyć menedżera pakietów do zainstalowania oprogramowania na serwerze?

Menedżerowie pakietów, tacy jak yumlub aptobsługujący te zależności dla Ciebie. Ponadto można ich również używać do zarządzania aktualizacjami oprogramowania na serwerze. W większości odmian * nix domyślnie zainstalowany jest menedżer pakietów, szczególnie na VPS, które są fabrycznie zainstalowane. Jeśli jesteś naprawdę nowy, skorzystaj z jednego z nich w systemie produkcyjnym i uratuj przygody w kompilowaniu lub instalowaniu najnowocześniejszych RPM dla środowiska testowego.

Ale muszę użyć bardziej aktualnego pakietu niż ten, który jest dostępny w moim menedżerze pakietów!

Większość menedżerów pakietów można skonfigurować w taki sposób, aby korzystały z różnych repozytoriów - może się okazać, że istnieje taki, który zapewnia potrzebną wersję pakietu i nadal umożliwia korzystanie z funkcji menedżera pakietów.

Potrzebny pakiet nie jest dostępny za pośrednictwem repozytoriów ani menedżerów pakietów

W tym przypadku prawdopodobnie zrobić trzeba dowiedzieć się zależnościami (lub ssać go i użyć bardziej stabilny / wspólną wersję oprogramowania). Prawdopodobnie powinieneś wykonać następujące czynności w środowisku testowym i dokładnie zanotować swoje działania:

  • Zapoznaj się z dokumentacją instalowanego oprogramowania - prawdopodobnie będzie to zawierało listę elementów, które musisz zainstalować najpierw, ale nie to, co jest wymagane dla tego oprogramowania.
  • Użyj menedżera pakietów, aby zainstalować wymagane elementy - w większości przypadków będą one dostępne.
  • Po zakończeniu spróbuj zainstalować.
  • Jeśli nadal widzisz komunikaty o brakujących zależnościach, zanotuj je wszystkie i ponownie spróbuj zainstalować jak najwięcej za pomocą menedżera pakietów.
  • Jeśli zależność nie zostanie znaleziona, musisz uznać ją za podzadanie i potraktować ją rekurencyjnie (znajdź źródłowy plik archiwum, znajdź zależności, zainstaluj).
  • To proces iteracyjny.

Nadal mam problemy!

Jeśli wykonałeś wszystkie powyższe kroki i nadal masz problemy, być może natknąłeś się na dziwny problem, z którym mogą pomóc inni autorzy serwera. Utwórz nowe pytanie, podając szczegóły dotyczące oprogramowania, które próbujesz zainstalować, która wersja oraz dokładnie wyświetlane komunikaty o błędach.

Szczegółowe porady dotyczące głównych systemów zarządzania pakietami

Zarządzanie pakietami RPM (RHEL / Fedora i klony) i DEB (Debian / Ubuntu i klony)

  • yum whatprovides nazwa_pliku to doskonały sposób na znalezienie pakietu, który udostępnia określony plik lub bibliotekę w systemie typu RHEL.
  • Nie używaj na ./configure && make && make installślepo, jeśli to w ogóle możliwe! Z tego właśnie powodu wymyślono zarządzanie pakietami, aby zapobiec niezręcznemu i niemożliwemu do utrzymania bałaganowi wynikającemu z niemożliwej do wyśledzenia instalacji wielu sprzecznych plików.
  • Wiele bibliotek jest podzielonych na dwie części: binarną (na przykład obiekty współdzielone) i programistyczną (nagłówki). Zatem należałoby obie libfooi libfoo-devel(lub -dev) pakietów.
  • Rozważ użycie fpm( https://github.com/jordansissel/fpm ) do konwersji tarballi w czyste RPM i DEB
  • Jeśli wdrażasz własne pakiety, TY jesteś osobą odpowiedzialną za ich aktualizacje, testy i konserwację. Jeśli nie masz do tego odpowiedniej infrastruktury, zdecydowanie dążysz do osiągnięcia zbyt wysokiego celu.

Znajdowanie zależności według nazwy pliku dla RPM

http://rpmfind.net jest dobrym miejscem do wyszukiwania nazw pakietów, jeśli znasz nazwę pliku, na który skarży się procedura instalacji. Nie zaleca się jednak dopasowywania i miksowania pakietów z różnych dystrybucji.

dunxd
źródło
Myślę, że przydałaby się sekcja, która omawia kwestię zależności bibliotek, które mogą być nieco trudniejsze do rozwiązania - ale mam w tym mniej doświadczenia - czy ktoś chciałby coś wnieść?
dunxd
Elementy, które gorąco polecam, obejmowałyby szczegółowe informacje na temat RPM src i sposobu obsługi niestandardowego lokalnego repozytorium. Budowanie plików deb lub rpm powinno być częścią każdego paska narzędzi, który musi współpracować z niecodziennymi wymaganiami pakietu.
Tim Brigham
Warto rozwinąć tę kwestię, aby poruszyć temat stosów aplikacji i ich pułapek. Pytanie „bardziej aktualny pakiet” przypomniało mi ostatnie .
Andrew B,
To wiki społeczności, więc możesz dodawać rzeczy lub oczywiście podać własną odpowiedź :-)
dunxd