MarekZ Napisano Grudzień 2, 2015 Zgłoszenie Share Napisano Grudzień 2, 2015 Witam. Jak poradzić sobie w sytuacji kiedy potrzebne są dwie różne wersje tego samego pakietu. dnf daje komunikat że w systemie jest już zainstalowany pakiet w nowszej wersji i w związku z tym starszy pakiet jest w konflikcie? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Grudzień 3, 2015 Zgłoszenie Share Napisano Grudzień 3, 2015 Nie bardzo wyobrażam sobie taką sytuację. Albo rybka albo akwarium. Próbowałbym ewentualnie wrzucić biblioteki do jakiegoś osobnego drzewka pakietu i stworzyłbym skrypt startowy wskazujący na tę strukturę a nie na domyślną, systemową. Ale w praktyce przy bardziej skomplikowanych zależnościach mogłoby to oznaczać zrobienie niemal drugiego "roota". Z ciekawości zapytam po co Ci to? Nie możesz znaleźć pakietu na nowszą lub starszą wersję biblioteki? Jakie programy się konfliktują przez tę bibliotekę? [EDIT] Jak masz dużo RAM, wielordzeniowy procesor, to przychodzi mi jeszcze do głowy jakaś minimalna maszyna wirtualna uruchamiana w seamless mode. Ale to żre RAM i zabiera moc obliczeniową z podstawowego systemu a i wydajność oraz czas uruchamiania nie musi być zadowalający. Wszystko w sumie zależy od aplikacji. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
WaldoWaldow Napisano Grudzień 3, 2015 Zgłoszenie Share Napisano Grudzień 3, 2015 Najprościej przebudować pakiet, by używał nowszej wersji.Na siłę można także skorzystać z opcji instalacyjnych pakietu rpm.Przykładowo potrzebujesz starszej "innej" wersji biblioteki niż dostępna w systemie:# rpm -i --relocate /usr/lib=/usr/local/lib inna_wersja_pakietuUruchomienie programu zależnego od innej wersji lib:$ LD_PRELOAD=/usr/local/lib/alternatywny_lib PROGRAM$ PROGRAM *** Dla odinstalowania alternatywnej wersji biblioteki, lub w razie problemów z "update systemu" w przyszłości: # rpm -e --nodeps alternatywny_pakiet-wersja # update systemu # rpm -i --relocate /usr/lib=/usr/local/lib inna_wersja_pakietu Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MarekZ Napisano Grudzień 4, 2015 Autor Zgłoszenie Share Napisano Grudzień 4, 2015 Nie bardzo wyobrażam sobie taką sytuację. Albo rybka albo akwarium. Próbowałbym ewentualnie wrzucić biblioteki do jakiegoś osobnego drzewka pakietu i stworzyłbym skrypt startowy wskazujący na tę strukturę a nie na domyślną, systemową. Ale w praktyce przy bardziej skomplikowanych zależnościach mogłoby to oznaczać zrobienie niemal drugiego "roota". Z ciekawości zapytam po co Ci to? Nie możesz znaleźć pakietu na nowszą lub starszą wersję biblioteki? Jakie programy się konfliktują przez tę bibliotekę? [EDIT] Jak masz dużo RAM, wielordzeniowy procesor, to przychodzi mi jeszcze do głowy jakaś minimalna maszyna wirtualna uruchamiana w seamless mode. Ale to żre RAM i zabiera moc obliczeniową z podstawowego systemu a i wydajność oraz czas uruchamiania nie musi być zadowalający. Wszystko w sumie zależy od aplikacji. Było by super gdyby tak było można. Generalnie pytanie o te biblioteki było spowodowane dwoma sytuacjami potrzebą kompilacji ze źródeł oprogramowania (brak rpm lub bardzo długi czas oczekiwania na najnowszą wersję) a druga sytuacja to wtyczka w programie która do instalacji potrzebuje bibliotek tyle że z najnowszymi nie działa. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MarekZ Napisano Grudzień 4, 2015 Autor Zgłoszenie Share Napisano Grudzień 4, 2015 Najprościej przebudować pakiet, by używał nowszej wersji. Na siłę można także skorzystać z opcji instalacyjnych pakietu rpm. Przykładowo potrzebujesz starszej "innej" wersji biblioteki niż dostępna w systemie: # rpm -i --relocate /usr/lib=/usr/local/lib inna_wersja_pakietu Uruchomienie programu zależnego od innej wersji lib: $ LD_PRELOAD=/usr/local/lib/alternatywny_lib PROGRAM $ PROGRAM *** Dla odinstalowania alternatywnej wersji biblioteki, lub w razie problemów z "update systemu" w przyszłości: # rpm -e --nodeps alternatywny_pakiet-wersja # update systemu # rpm -i --relocate /usr/lib=/usr/local/lib inna_wersja_pakietu ta opcja z przebudową pakietów by była bardzo dobra. Znasz może jakiś dobry poradnik na ten temat i na temat budowy pakietów, taki dla osub które jeszcze nigdy tego nie robiły? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
WaldoWaldow Napisano Grudzień 4, 2015 Zgłoszenie Share Napisano Grudzień 4, 2015 Podstawowe informacje: https://fedoraproject.org/wiki/How_to_create_an_RPM_package Paczki dla siebie możesz budować tak: Zależności: # dnf install @development-tools # dnf install fedora-packager # dnf install rpmdevtools z konta użytkownika: $ rpmdev-setuptree stworzy wymaganą strukturę katalogów na koncie użytkownika i to prawie wszystko Potrzebujesz pakiet src.rpm z fedory, instalujesz go na koncie użytkownika $ rpm -ivh pakiet.src.rpm budowanie paczek z pliku spec pakietu bez budowania pakietu źródłowego: $ rpmbuild -bb --define 'dist .Twoje_oznaczenie_pakietu' --clean --target $(uname -m) $(rpm --eval %{_specdir})/xx.spec lub z budowaniem pakietu srpm $ rpmbuild -ba --define 'dist .Twoje_oznaczenie_pakietu' --clean --target $(uname -m) $(rpm --eval %{_specdir})/xx.spec xx - nazwa pliku spec budowanego pakietu, znajdziesz go w ~/rpmbuild/SPEC/xx.spec Jeżeli w pliku spec występuje fraza Release: 1%{?dist} to 'dist .Twoje_oznaczenie_pakietu' pojawi się w nazwie zbudowanego pakietu. Gdy nie będziesz miał odpowiednich zależności do budowania pakietu, rpmbuild wypisze co musisz doinstalować. Po pomyślnym budowaniu pakiety znajdziesz w ~/rpmbuild/RPMS/ *** Można także bez ingerencji w plik spec przebudować bezpośrednio sam pakiet src.rpm, przykład: $ rpmbuild --rebuild --target $(uname -m) pakiet.src.rpm Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Grudzień 4, 2015 Zgłoszenie Share Napisano Grudzień 4, 2015 Krótki poradnik jak budować/przebudować pakiet jest też na naszej wiki http://wiki.fedora.pl/wiki/Rpmbuild # rpm -i --relocate /usr/lib=/usr/local/lib inna_wersja_pakietuOj... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się