A library is installed as /usr/lib/x86_64-linux-gnu/libhistory.so.8.1 and its soname is libhistory.so.8. Which name does a dynamically linked program record, so that the dynamic linker can find the library at run time?
LPIC-1 Exam 101-500, objective 102. Linux installation and package management medium
Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.
Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.
How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.
The options
Correct libhistory.so.8
Correct. The soname is what the linker copies into the executable's dynamic section, and ldconfig maintains a symlink of that name pointing at the real file.
Not correct libhistory.so.8.1
Wrong. The full file name carries the minor revision, which changes on every compatible update; recording it would break the program on the next patch release.
Not correct libhistory.so
Wrong. The unversioned name is the linker name, a symlink shipped in the development package for the compile-time linker only; it is not used at run time.
Not correct /usr/lib/x86_64-linux-gnu/libhistory.so.8.1
Wrong. Absolute paths are not baked in, which is what allows the same binary to run on distributions that place libraries in different directories.
Why
Shared libraries carry three names: the real file name with the full version, the soname with the interface version only, and the unversioned linker name. Only the soname is stored in the program, so an update from .8.1 to .8.2 keeps working while a change to .so.9 signals an incompatible interface and installs alongside. ldconfig scans the library directories, creates the soname symlinks and records them in /etc/ld.so.cache, which ld.so consults at start-up.
Where this comes from
- Cited
- manual page ld.so(8)
Practise this
Reading one question is not practice. The trainer will draw a short set from objective 102 and space the ones you get wrong.
More questions on this objective
- A mail server keeps filling its root filesystem because spooled mail and logs grow without bound, and when the disk fills the whole system becomes unusable. Which single change to the disk layout most directly contains that failure? machine-checked
- In LVM terminology, which object is created directly on a partition or whole disk so that its storage can be added to a pool? machine-checked
- You are laying out storage for a general-purpose Linux server. Which TWO of the following are genuine reasons to use LVM for the data filesystems rather than plain partitions? machine-checked
- Which file is the configuration file that GRUB 2 generates, and which administrators are told not to edit by hand on a typical Linux distribution? machine-checked
- You replaced the boot disk in a BIOS/MBR system and need to write the GRUB 2 boot loader into the master boot record of /dev/sda, installing the required GRUB modules under /boot. Which command does that? machine-checked
- On a GRUB 2 system whose configuration file is /boot/grub/grub.cfg, type the grub-mkconfig command — including the option and its argument — that regenerates that file. machine-checked