If you are a Linux user, you may often need to install or uninstall various software packages. But, did you know that every software package depends on some shared object files, which are provided by other software packages? If these object files are missing or corrupted, your package may not work properly or even start. Therefore, knowing how to find and manage package dependencies is a very useful skill that can help you maintain and optimize your Linux system. This article will introduce a powerful command line tool called ldd, which allows you to manage software package dependencies on Linux using the ldd command like a professional.
Software is not just independent source code, but a combination of local source code and code borrowed from external libraries. When these libraries and other shared objects are missing from your system, applications that depend on them may malfunction or even refuse to start.
All these shared files, packages, libraries, etc. are collectively called dependencies on Linux. While this short definition gives you a rough idea, the reality is more complex than that, which is why it's important to have a deep understanding of package dependencies.
ldd is the abbreviation of List Dynamic Dependencies. As the name suggests, ldd lists all the shared objects required by the application.
It calls the dynamic linker by setting special environment variables. When you run ldd with the location of the binary, it returns an output that contains a list of dependencies, their locations, and hexadecimal values representing their loading into memory.
Now that you have a clear understanding of the basic concepts of ldd, let’s get hands-on and learn how to use it to find the dependencies of your software.
Before learning how to use ldd, please confirm whether your system has ldd installed. You can confirm by printing the installed ldd version:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ ldd --version
If the "command not found" error is returned, you need to install ldd first.
Run the following commands to install on Ubuntu and Debian based systems:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ sudo apt install libc-bin
For Arch based distributions:
sudo pacman -S glibc
For RHEL and Fedora:
sudo dnf install glibc-common
With ldd installed, you can now focus on learning how to use it. The following is the basic syntax of the ldd command:
ldd 二进制文件路径
If you don't know the location of the binaries, you can take advantage of one of the Linux command line operators and combine the output of the which command with the ldd command to find the dependencies of the package:
ldd -flag $(which binary_name)
The ldd command provides four different options to modify the output. They are:
To determine whether a given executable daemon supports TCP Wrapper, run the following command.
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com] └─$ sudo ldd /usr/sbin/sshd | grep libwrap
通过本文的介绍,我们了解了ldd命令的基本概念、用法和选项,以及如何利用它来查找和管理软件包依赖关系。ldd命令可以帮助我们识别应用程序所需的共享对象文件,它们的位置和版本,以及是否存在缺失或未使用的依赖项。ldd命令还可以帮助我们调试应用程序和库的问题,以及检查潜在的安全漏洞。ldd命令是一个简单而强大的工具,值得每个Linux用户掌握和使用。
The above is the detailed content of ldd command on Linux: How to easily find and manage package dependencies. For more information, please follow other related articles on the PHP Chinese website!