[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#632682: base-files: please provide a /lib64 -> /lib symlink on 64-bit systems



On Wed, Aug 10, 2011 at 08:35:39PM +0200, Sven Joachim wrote:
> On 2011-08-10 19:48 +0200, Aurelien Jarno wrote:
> 
> > On Wed, Aug 10, 2011 at 07:14:57PM +0200, Sven Joachim wrote:
> >> On 2011-07-25 14:50 +0200, Santiago Vila wrote:
> >> 
> >> > reassign 632682 libc6
> >> > retitle 632682 we should probably remove /lib64 -> lib symlink (with care)
> >> > thanks
> >> >
> >> > Hi. After discussing about this today, it seems what we really need
> >> > for multiarch to work is to remove those symlinks, hence this reassign.
> >> 
> >> Has anyone started working on this yet?
> >> 
> >
> > We got some ideas, but AFAIK nobody has started to work on that.
> 
> I'll have a look at it in the next few days if nobody beats me to it.
> Just to confirm that my ideas were the same as yours, AFAICS the
> following needs to be done in the preinst (on amd64), if /lib64 is a
> symlink:
> 
> 1) remove /lib64
> 2) create /lib64 directory
> 3) symlink $(readlink -e /lib/ld-linux-x86-64.so.2) to /lib64/ld-linux-x86-64.so.2
> 
> 2) and 3) are a bit difficult after the path to the ELF interpreter has
> just disappeared.  I guess you still want to stick to shell nonetheless
> (as opposed to doing these steps in perl, say) ?
> 

This is basically what we have in mind, though it has not been tested.
For step 2 and 3, you can call the ELF interpreter directly, that is 
"/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 mkdir /lib64".

The whole operation is still not atomic, but so far it's the best way to
do it. We might want to insert a call to sync as steps 0 and 4, to
minimize the possible time with ELF interpreter, and to make sure the
data is written to the disk as soon as possible (otherwise if the
machine crashes, the system can't boot).

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net



Reply to: