How to obtain the source code of commands in CentOS system
Take the source code of the ls command under 32-bit CentOS6.6 as an example. You can use the following method to download the source code:
1) Configure the source of the source code
In CentOS, the source configuration file is: /etc/yum.repos.d/CentOS-Base.repo. Modifying this file requires root permissions.
Open the file and view the contents of the file. On my machine, the contents of the file are as follows:
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client.You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
There are two variables in this file: releasever and basearch, which represent the release version and branch respectively. For example, on my machine, these two values are 6 and i386 respectively. Note that releasever will not be subdivided into minor versions, that is, it will not be 6.6 or the like.
From the content of the file, we can know that the file has 5 sections in total, which means that there are 5 software sources for my machine, namely base, updates, extras, centosplus and contrib. Therefore, you only need to specify the source code of the following 5 software sources. Add the following content at the end of the file:
[base-src] name=CentOS-$releasever - Base src baseurl=http://vault.centos.org/6.6/os/Source/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [updates-src] name=CentOS-$releasever - Updates src-centos baseurl=http://vault.centos.org/6.6/updates/Source/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [extras-src] name=CentOS-$releasever -Extras src-centos baseurl=http://vault.centos.org/6.6/extras/Source/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [centosplus-src] name=CentOS-$releasever - Plus src-centos baseurl=http://vault.centos.org/6.6/centosplus/Source/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [contrib-src] name=CentOS-$releasever - Contrib src-centos baseurl=http://vault.centos.org/6.6/contrib/Soruce/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Since different versions have different settings, their settings will be different. The method can be summarized as follows:
(1) The gpgkey is the same as the gpgkey of the section already in the file
(2) In order to confirm the existence and status of the file, you can open the website http://vault.centos.org/ to view the specific situation, and then fill in the details according to the specific situation
(3) When setting the baseurl, you need to set it according to the version of your own system. For example, my machine is CentOS-6.6. When setting, the relevant parameters are set to 6.6, that is, http://vault.centos. The subpath following org/ is 6.6.
The function of this file is to provide a source for downloading yum and related work. For example, when using yumdownloader (discussed below) to download the source code, the following actions will occur:
(1) Download the $baseurl/repodata/repomd.xml file. If the repomd.xml file is newer than the one in the system, update the corresponding repomd.xml in the system
(2) Download the corresponding source code rpm package in $baseurl/SPackages/.
2) Use the which command to view the location of the ls command, as follows:
which ls
# Output: /bin/ls
3) Use the rpm command to query the package to which the ls command belongs, as follows:
rpm -qf /bin/ls
# Output: coreutils-8.4-37.el6.i686
4) yumdownloader is a program that downloads RPM from the RPM source. You can use the yumdownloader command to install the source code, as follows:
yumdownloader --source coreutils-8.4-37.el6.i686
Note:
(1) If the yumdownloader command is not installed, you can use this command to install it: yum install yum-utils.
(2) The downloaded file is in the current directory. You can use the parameter --destdir to specify which directory to download to.
5) Use yumdownloader to download an installation package file rpm. You can use the following command to query the tar file in the rpm:
rpm -qpl coreutils-8.4-37.el6.src.rpm | grep tar
# Output: coreutils-8.4.tar.xz
6) Use the rpm2cpio command to convert the rpm package file into a cpio archive file, and then use the cpio command to copy and extract an archive file from the cpio archive file. The output is as follows:
rpm2cpio coreutils-8.4-37.el6.src.rpm | cpio -idv coreutils-8.4.tar.xz
# Output:
# coreutils-8.4.tar.xz
# 9561 blocks
cpio's man explanation is: cpio copies files into an archive
-i: Same as --extract, meaning to extract
-d: Same as --make-directories, creates a loading directory when necessary
-v: List file processing
7) Use the tar command to decompress the coreutils-8.4.tar.xz compressed package, as follows:
tar -xvf ./coreutils-8.4.tar.xz
At this point, the source code of the command is obtained.
The above is the detailed content of How to obtain the source code of commands in CentOS system. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Backup and Recovery Policy of GitLab under CentOS System In order to ensure data security and recoverability, GitLab on CentOS provides a variety of backup methods. This article will introduce several common backup methods, configuration parameters and recovery processes in detail to help you establish a complete GitLab backup and recovery strategy. 1. Manual backup Use the gitlab-rakegitlab:backup:create command to execute manual backup. This command backs up key information such as GitLab repository, database, users, user groups, keys, and permissions. The default backup file is stored in the /var/opt/gitlab/backups directory. You can modify /etc/gitlab

The CentOS shutdown command is shutdown, and the syntax is shutdown [Options] Time [Information]. Options include: -h Stop the system immediately; -P Turn off the power after shutdown; -r restart; -t Waiting time. Times can be specified as immediate (now), minutes ( minutes), or a specific time (hh:mm). Added information can be displayed in system messages.

Improve HDFS performance on CentOS: A comprehensive optimization guide to optimize HDFS (Hadoop distributed file system) on CentOS requires comprehensive consideration of hardware, system configuration and network settings. This article provides a series of optimization strategies to help you improve HDFS performance. 1. Hardware upgrade and selection resource expansion: Increase the CPU, memory and storage capacity of the server as much as possible. High-performance hardware: adopts high-performance network cards and switches to improve network throughput. 2. System configuration fine-tuning kernel parameter adjustment: Modify /etc/sysctl.conf file to optimize kernel parameters such as TCP connection number, file handle number and memory management. For example, adjust TCP connection status and buffer size

The key differences between CentOS and Ubuntu are: origin (CentOS originates from Red Hat, for enterprises; Ubuntu originates from Debian, for individuals), package management (CentOS uses yum, focusing on stability; Ubuntu uses apt, for high update frequency), support cycle (CentOS provides 10 years of support, Ubuntu provides 5 years of LTS support), community support (CentOS focuses on stability, Ubuntu provides a wide range of tutorials and documents), uses (CentOS is biased towards servers, Ubuntu is suitable for servers and desktops), other differences include installation simplicity (CentOS is thin)

Steps to configure IP address in CentOS: View the current network configuration: ip addr Edit the network configuration file: sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 Change IP address: Edit IPADDR= Line changes the subnet mask and gateway (optional): Edit NETMASK= and GATEWAY= Lines Restart the network service: sudo systemctl restart network verification IP address: ip addr

Common problems and solutions for Hadoop Distributed File System (HDFS) configuration under CentOS When building a HadoopHDFS cluster on CentOS, some common misconfigurations may lead to performance degradation, data loss and even the cluster cannot start. This article summarizes these common problems and their solutions to help you avoid these pitfalls and ensure the stability and efficient operation of your HDFS cluster. Rack-aware configuration error: Problem: Rack-aware information is not configured correctly, resulting in uneven distribution of data block replicas and increasing network load. Solution: Double check the rack-aware configuration in the hdfs-site.xml file and use hdfsdfsadmin-printTopo

Building a Hadoop Distributed File System (HDFS) on a CentOS system requires multiple steps. This article provides a brief configuration guide. 1. Prepare to install JDK in the early stage: Install JavaDevelopmentKit (JDK) on all nodes, and the version must be compatible with Hadoop. The installation package can be downloaded from the Oracle official website. Environment variable configuration: Edit /etc/profile file, set Java and Hadoop environment variables, so that the system can find the installation path of JDK and Hadoop. 2. Security configuration: SSH password-free login to generate SSH key: Use the ssh-keygen command on each node

The key to installing MySQL elegantly is to add the official MySQL repository. The specific steps are as follows: Download the MySQL official GPG key to prevent phishing attacks. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting
