A developer wants to test a single program against a private build of a library in ~/testlib, without changing anything system-wide or affecting other users. What is the appropriate mechanism?
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
Not correct Add ~/testlib to /etc/ld.so.conf.d/ and run ldconfig
Wrong for the requirement. This works technically but is exactly the system-wide change the developer wanted to avoid, and it needs root.
Correct Set the LD_LIBRARY_PATH environment variable to ~/testlib for that program's invocation
Correct. LD_LIBRARY_PATH adds directories the dynamic linker searches ahead of the cached system paths, and because it is an environment variable its effect is limited to that process and its children.
Not correct Set the PATH environment variable to include ~/testlib
Wrong. PATH is searched by the shell for executables to run; the dynamic linker does not consult it when resolving shared libraries.
Not correct Run ldd with the library directory so it prefers the private build
Wrong. ldd only reports dependencies; it has no ability to change how future programs resolve libraries.
Why
LD_LIBRARY_PATH is a colon-separated list of directories the dynamic linker searches before the cache, which makes it the standard way to test or run software against non-system libraries per process. Because it can redirect a program to attacker-supplied libraries, the linker ignores it for set-user-ID and set-group-ID binaries, and leaving it set globally in a login profile is a well-known way to create confusing breakage.
Where this comes from
- Cited
- LPI exam objective 102.3
- What it says
- LD_LIBRARY_PATH and the locations of shared libraries.
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