|
47.
|
|
|
fakeroot is implemented by wrapping system calls. This is accomplished by setting LD_LIBRARY_PATH=/usr/lib/fakeroot and LD_PRELOAD=libfakeroot.so.0. That library is loaded before the system's C library, and so most of the library functions are intercepted by it. If you need to set either B<LD_LIBRARY_PATH> or B<LD_PRELOAD> from within a fakeroot environment, it should be set relative to the given paths, as in B<LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/foo/bar/>
|
|
|
type: Plain text
|
|
|
|
(no translation yet)
|
|
|
|
Located in
../doc/fakeroot.1:204
|
|
48.
|
|
|
LIMITATIONS
|
|
|
type: SH
|
|
|
|
LIMITACIONES
|
|
Translated by
Ubuntu Archive Auto-Sync
|
|
|
|
|
type: SH
|
|
Located in
../doc/fakeroot.1:205
|
|
49.
|
|
|
B<Library versions>
|
|
|
type: IP
|
|
|
|
B<Versiones de la biblioteca>
|
|
Translated by
Ubuntu Archive Auto-Sync
|
|
|
|
|
type: IP
|
|
Located in
../doc/fakeroot.1:207
|
|
50.
|
|
|
Every command executed within B<fakeroot> needs to be linked to the same version of the C library as B<fakeroot> itself.
|
|
|
type: Plain text
|
|
|
|
Toda orden ejecutada con B<fakeroot> necesita enlazarse con la misma versión de la biblioteca de C del mismo B<fakeroot.>
|
|
Translated by
Ubuntu Archive Auto-Sync
|
|
|
|
|
type: Plain text
|
|
Located in
../doc/fakeroot.1:214
|
|
51.
|
|
|
B<open()/create()>
|
|
|
type: IP
|
|
|
|
B<open()/create()>
|
|
Translated by
Ubuntu Archive Auto-Sync
|
|
|
|
|
type: IP
|
|
Located in
../doc/fakeroot.1:214
|
|
52.
|
|
|
fakeroot doesn't wrap open(), create(), etc. So, if user B<joost> does either
|
|
|
type: Plain text
|
|
|
|
fakeroot no envuelve open(), create(), etc. Así, que si el usuario B<joost> hace
|
|
Translated by
Ubuntu Archive Auto-Sync
|
|
|
|
|
type: Plain text
|
|
Located in
../doc/fakeroot.1:218
|
|
53.
|
|
|
touch foo 
fakeroot 
ls -al foo
|
|
|
type: Plain text
|
|
|
represents a line break.
Start a new line in the equivalent position in the translation.
|
|
|
|
(no translation yet)
|
|
|
|
Located in
../doc/fakeroot.1:222
|
|
54.
|
|
|
or the other way around,
|
|
|
type: Plain text
|
|
|
|
o del otro modo,
|
|
Translated by
Ubuntu Archive Auto-Sync
|
|
|
|
|
type: Plain text
|
|
Located in
../doc/fakeroot.1:224
|
|
55.
|
|
|
fakeroot 
touch foo 
ls -al foo
|
|
|
type: Plain text
|
|
|
represents a line break.
Start a new line in the equivalent position in the translation.
|
|
|
|
fakeroot 
touch tal 
ls -al tal
|
|
Translated by
Ubuntu Archive Auto-Sync
|
|
|
|
|
type: Plain text
|
|
Located in
../doc/fakeroot.1:228
|
|
56.
|
|
|
fakeroot has no way of knowing that in the first case, the owner of foo really should be B<joost> while the second case it should have been B<root>. For the Debian packaging, defaulting to giving all "unknown" files uid=gid=0, is always OK. The real way around this is to wrap B<open()> and B<create()>, but that creates other problems, as demonstrated by the libtricks package. This package wrapped many more functions, and tried to do a lot more than B<fakeroot .> It turned out that a minor upgrade of libc (from one where the B<stat>() function didn't use B<open>() to one with a B<stat>() function that did (in some cases) use B<open>() ), would cause unexplainable segfaults (that is, the libc6 B<stat>() called the wrapped B<open>() , which would then call the libc6 B<stat>() , etc). Fixing them wasn't all that easy, but once fixed, it was just a matter of time before another function started to use open(), never mind trying to port it to a different operating system. Thus I decided to keep the number of functions wrapped by fakeroot as small as possible, to limit the likelihood of \(oqcollisions\(cq.
|
|
|
type: Plain text
|
|
|
|
(no translation yet)
|
|
|
|
Located in
../doc/fakeroot.1:264
|