Jusko Napisano Styczeń 20, 2010 Zgłoszenie Share Napisano Styczeń 20, 2010 Witam. Piszę art o pewnej grze. Niestety jak to w Linuksie - mija parę lat i stawaj na głowie, by aplikację komercyjną uruchomić. Anyway - odpalanie z 32bitowymi libsami i jako linux32 nie zdało egzaminu (a jeszcze pół roku temu działało ) . Na forum gry otrzymałem jednak poradę, iż uruchomienie jako 32bitowy chroot najczęściej rozwiązuje sprawę. W tym momencie jednak zgłupiałem, bo nie miałem o 32bitowych chroocie pojęcia, a tym bardziej, jak go używać. W życiu może logowałem się na chroota raz z jakimś how-to na widoku, więc nie zgłębiłem tej materii, gdyż nie było takiej potrzeby. Jak mogę zatem uruchomić tę aplikację jako 32bitowy chroot (system x86_64)? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Styczeń 20, 2010 Zgłoszenie Share Napisano Styczeń 20, 2010 We wstępie podałem prosty przykład jak uruchomić "bash": Borzole/chroot Wiele aplikacji uruchomi się jeśli tylko znajdzie biblioteki. W chroot nie do końca wszystko jest robione od zera mimo, że tak wygląda na pierwszy rzut oka. Wszystko jest uruchomione na jednym jajku i w chroot nadal będzie to system 64bit. Jednak ten problem pojawia się rzadko, kiedy aplikacja/skrypt sprawdza architekturę. Istnieją programy fakeroot i fakechroot pozwalające na robienie chroot'a na zwykłym userze. Przykład: - po staremu jako root: chroot /mnt/fc32/ /bin/sh - nowe, jako user (w chroot jest się userem) fakechroot chroot /mnt/fc32/ /bin/sh - nowe, jako user (w chroot jest się rootem) fakeroot fakechroot chroot /mnt/fc32/ /bin/sh Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jusko Napisano Styczeń 20, 2010 Autor Zgłoszenie Share Napisano Styczeń 20, 2010 fakechroot chroot /mnt/fc32/ /bin/sh Chcę uruchomić aplikację, po czym: ERROR: ld.so: object 'libfakechroot.so' from LD_PRELOAD cannot be preloaded: ignored. Signal: SIGIOT [iot trap] Aborting. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Styczeń 20, 2010 Zgłoszenie Share Napisano Styczeń 20, 2010 nie mam pojęcia skąd ten błąd, sprawdź może trzeba coś odświeżyć: man ldconfig Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jusko Napisano Styczeń 20, 2010 Autor Zgłoszenie Share Napisano Styczeń 20, 2010 No cóż - może uruchomienie całej gry jest zbyt dużym wyzwaniem Dla testów aplikacji przeskakuję na parę dni na inne distro, więc problem nie jest palący. p.s: Czy jako chroot można instalować paczki do systemu? Kiedyś próbowałem na poprzednim distro i coś nie mogło sobie z tym poradzić. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Styczeń 20, 2010 Zgłoszenie Share Napisano Styczeń 20, 2010 * Tak możesz w chroot instalować paczki. Zarówno z poziomu chroot (musiałbyś utworzyć wszystkie pliki potrzebne do uruchomienia rpm --> ldd /bin/rpm ) jak i hosta. Zakładając, że paczki (nie repozytorium, po prostu paczki) są w /mnt/fc32/myrepo/ W pierwszym przypadku wyglądało by to tak: - inicjujemy bazę rpm chroot /mnt/fc32 /bin/rpm --root / --initdb - instalujemy coś chroot /mnt/fc32 /bin/rpm -ivh /myrepo/*.rpm W tym drugim przypadku było by to jakoś tak (chyba): - inicjacja bazy rpm --root /mnt/fc32 --initdb -instalacja rpm --root /mnt/fc32 -ivh /mnt/fc32/myrepo/*.rpm Jednak poznałbyś co tzn. "piekło zależności" i zapewniam Cię że to nic przyjemnego. * Istniej też program febootstrap ktory pozwala ładnie z hosta fedory zainstalować do chroot fedorę używając yum. Tak naprawdę to krótki skrypt w bash ustawiający parametry dla yum, który można przerobić wpisując na sztywno architekturę (chodzi głównie o parametr $arch w plikach *.repo), albo chociażby podejrzeć co jak jest ustawione. Wadą jest to, że działa tylko na fedorze, bo używa yum. Zaletą, że używa yum Obecnie paczka trochę się rozrosła i to już kilka skryptów: rpm -ql febootstrap /usr/bin/febootstrap /usr/bin/febootstrap-install /usr/bin/febootstrap-minimize /usr/bin/febootstrap-run /usr/bin/febootstrap-supermin-helper /usr/bin/febootstrap-to-initramfs /usr/bin/febootstrap-to-supermin ... ale nie wnikam po co jest reszta. * Kiedy już zainicjujesz bazę rpm i uda ci się uruchomić yum tak by instalował paczki 32bit to reszta jest prosta jak w zwykłej fedorze i możesz zwyczajnie zainstalować grę. Uruchamianie aplikacji przez kopiowanie potrzebnych bibliotek jest tylko do "rozbujania" systemu, albo gdy uruchamia się program w chroot dla bezpieczeństwa jego działania (np. testowanie zależności paczek lub dziurawy BIND) 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ę