Skocz do zawartości

32bitowy Chroot - Jak Uruchamiać Pod Nim Aplikacje.


Jusko

Rekomendowane odpowiedzi

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 :P) . 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

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

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

* 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

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ę
×
×
  • Dodaj nową pozycję...