libc6 integration gives way wrong error message to libc5 binaries.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
command-not-found |
Won't Fix
|
Wishlist
|
Unassigned | ||
command-not-found (Ubuntu) |
Confirmed
|
Wishlist
|
Unassigned | ||
linux (Ubuntu) |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
Binary package hint: libc6
I know from the start I'm asking for something that doesn't fit in a simple place.
The problem goes like this:
The way libc6 has been integrated, any libc5 binaries that are run will give a way wrong error message.
For example, clueless users running old programs out of remotely mounted filesystems:
WDC-ATHENA-2% which ez
/mit/andrew/
WDC-ATHENA-2% ez
ez: Command not found.
The problem is NOT that the ez binary is not found. The problem is that there is no ld-linux.so.1 to help link
in libc5. The reason for this is, sensibly, there IS no libc5 installed.
What needs to happen is that the person running the program needs to be told that the binary is so old
that it's linking against libc5 when it needs to be recompiled against libc6.
Instead the user is told that the file that can be accessed from myriad file utilities does not exist.
I suggest a work-around:
a Recommends /lib/ld-linux.so.1 that gets installed if none is present that will at least
print an error message that makes sense.
Since Ubuntu is all about the usability experience, I hope I'm not off base here asking for this amendment.
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Triaged |
Changed in command-not-found: | |
status: | Confirmed → Won't Fix |
Ugh.
The problem here is that if you execve() a binary whose interpreter is missing, then the kernel just gives you ENOENT. I'm not sure that dropping in stub interpreters for anything that might need to exist is a good solution here.
Maybe this would be better fixed at the command-not-found level. It could check whether the binary is actually present on $PATH, and then hunt around to tell you which package you need to install in order to get hold of its interpreter.