Manage package dependencies like a pro using ldd command on Linux

王林
Release: 2023-06-09 15:42:52
forward
1689 people have browsed it

Managing dependencies is an important part of maintaining a Linux system. The software is complex and relies on many shared libraries and files. Sometimes, it becomes difficult to keep track of the files required by your application.

This is where the ldd command in Linux comes into play. Ldd is a full-featured command-line tool that can be used to track application dependencies on shared objects.

Let’s learn how to utilize the ldd command and become an expert in managing dependencies on Linux!

像专业人士一样在 Linux 上使用 ldd 命令管理软件包依赖关系

#What are package dependencies?

The software not only contains independent source code, but also brings together local source code and code used in external libraries. If your system is missing these libraries and other shared objects, applications that depend on them may malfunction or even refuse to start.

In the Linux system, all shared files, software packages, libraries, etc. are collectively called dependencies. 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.

What is the ldd command and how does it work?

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.

Use ldd command to find dependencies of shared objects

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 software dependencies.

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
Copy after login

像专业人士一样在 Linux 上使用 ldd 命令管理软件包依赖关系

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
Copy after login

For Arch based distributions:

sudo pacman -S glibc
Copy after login

For RHEL and Fedora:

sudo dnf install glibc-common
Copy after login

With ldd installed, you can now focus on learning how to use it. The following is the basic syntax of the ldd command:

ldd 二进制文件路径
Copy after login

像专业人士一样在 Linux 上使用 ldd 命令管理软件包依赖关系

If you do not know the location of the binary file, you can take advantage of one of the Linux command line operators and combine the output of the which command with The ldd command is combined to find the dependencies of a package:

ldd -flag $(which binary_name)
Copy after login

The ldd command provides four different options to modify the output. They are:

  • -v: prints verbose output including version information for each dependency
  • -u: prints all unused dependencies, i.e. loaded but not implemented Dependencies
  • -d: Print missing objects and perform relocation
  • -r: Print missing objects and functions, and perform relocation

像专业人士一样在 Linux 上使用 ldd 命令管理软件包依赖关系

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
Copy after login

像专业人士一样在 Linux 上使用 ldd 命令管理软件包依赖关系

Manage in Linux systems Package Dependencies

With ldd as your software tool, you will be able to resolve shared object dependencies related to your application.

In addition, by outputting the load location of the library through ldd, you can debug the application and gain a deeper understanding of how a specific library is implemented. ldd also prints out the versions of shared libraries used in the application.

Using this feature, you can check your application for potential vulnerabilities related to outdated versions of shared libraries.

Managing dependencies is a vital core skill that is important for the smooth running of your Linux system. Even if all dependencies are fine, sometimes there may still be issues with a package. Therefore, it is important to know how to find and repair broken packages.

The above is the detailed content of Manage package dependencies like a pro using ldd command on Linux. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:51cto.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!