← Back to team overview

sslug-teknik team mailing list archive

Total udskiftning af userspace som bruger.

 

Jeg har en konto på et libc-2.0.7 system. Så vil jeg gerne, uden nogen
form for rootadgang, morfe det til et libc-2.1.3 system.

Jeg har taget base2_2.tgz fra Debian Potato og hacket en lille
bitte smule på den. Så sætter jeg LD_LIBRARY_PATH til min nye
``/lib''.

På nuværende tidspunkt kan jeg bruge alle programmer ved explicit at
kalde den nye dynamiske loader:

johansen:~/potato> bin/ls
bin/ls: error in loading shared libraries
/b/00/brother/potato/lib/libwcsmbs.so.0: undefined symbol: _dl_initial_searchlist
johansen:~/potato> lib/ld-2.1.3.so bin/ls
base2_2.tgz  bin  boot  cdrom  dev  etc  floppy  home  initrd  lib  mnt  proc  root  sbin  tmp  usr  var
johansen:~/potato> 

Men der stopper festen altså. Mit problem er så hvordan får jeg den
til at kalde den rigtige loader implicit?

Jeg prøvede forsigtigt med LD_PRELOAD, men det gik ikke helt godt:

johansen:~/potato> setenv LD_PRELOAD ~/potato/lib/ld-2.1.3.so
johansen:~/potato> bin/ls
Segmentation fault
johansen:~/potato> lib/ld-2.1.3.so bin/ls
Segmentation fault
johansen:~/potato> 

Nogen bud på hvordan jeg kommer videre?

[Spørgsmålet "Hvorfor?" vil blive besvaret med et "Fordi jeg kan (måske)!"] 


Det der generer mig en smule det er at jeg har hele to
løsningsforslag, hvis bare maskinen kørte FreeBSD. Jeg tror både at
"jails" og kompabilitetstingen vil kunne løse problemet.

-- 
Keep a clear mind: quaff clear potions.