>시스템 튜토리얼 >리눅스 >CentOS 시스템에서 명령의 소스 코드를 얻는 방법

CentOS 시스템에서 명령의 소스 코드를 얻는 방법

王林
王林앞으로
2024-01-11 19:12:17960검색

32비트 CentOS6.6에서 ls 명령의 소스 코드를 예로 들면 다음 방법을 사용하여 소스 코드를 다운로드할 수 있습니다.

1) 소스 코드의 소스 구성

CentOS에서 소스 구성 파일은 /etc/yum.repos.d/CentOS-Base.repo입니다. 이 파일을 수정하려면 루트 권한이 필요합니다.

파일을 열고 파일 내용을 봅니다. 내 컴퓨터에서 파일 내용은 다음과 같습니다.

으아악

이 파일에는 두 개의 변수가 있습니다: releasever와 basearch는 각각 릴리스 버전과 분기를 나타냅니다. 예를 들어 내 컴퓨터에서 이 두 값은 각각 6과 i386입니다. releasever는 마이너 버전으로 세분화되지 않습니다. 즉, 6.6 등이 아닙니다.

파일 내용을 보면 파일에 총 5개의 섹션이 있다는 것을 알 수 있습니다. 이는 내 컴퓨터에 기본, 업데이트, 추가, centosplus 및 contrib의 5개 소프트웨어 소스가 있다는 것을 의미합니다. 따라서 다음 5가지 소프트웨어 소스의 소스 코드만 지정하면 됩니다. 파일 끝에 다음 콘텐츠를 추가하세요.

으아악

버전마다 설정이 다르기 때문에 설정 방법도 다음과 같이 요약할 수 있습니다.

(1) gpgkey는 파일에 이미 있는 섹션의 gpgkey와 동일합니다

(2) 파일의 존재 및 상태를 확인하기 위해서는 http://vault.centos.org/ 홈페이지를 열어 구체적인 상황을 확인한 후, 구체적인 상황에 맞게 작성하시면 됩니다

(3) baseurl을 설정할 때 자신의 시스템 버전에 따라 설정해야 합니다. 예를 들어 내 컴퓨터는 CentOS-6.6이고 설정 시 관련 매개변수는 6.6, 즉 http로 설정됩니다. //vault.centos.org/ 다음 하위 경로는 6.6입니다.

이 파일의 기능은 yum 및 관련 작업을 다운로드하기 위한 소스를 제공하는 것입니다. 예를 들어 yumdownloader(아래 설명)를 사용하여 소스 코드를 다운로드하면 다음 작업이 발생합니다.

(1) $baseurl/repodata/repomd.xml 파일을 다운로드합니다. repomd.xml 파일이 시스템에 있는 파일보다 최신인 경우 시스템에서 해당 repomd.xml을 업데이트합니다.

(2) $baseurl/SPackages/에서 해당 소스 코드 rpm 패키지를 다운로드합니다.

2) 다음과 같이 which 명령을 사용하여 ls 명령의 위치를 ​​확인합니다.

이거

# 출력: /bin/ls

3) 다음과 같이 rpm 명령을 사용하여 ls 명령이 속한 패키지를 조회합니다.

rpm -qf /bin/ls

# 출력: coreutils-8.4-37.el6.i686

4) yumdownloader는 RPM 소스에서 RPM을 다운로드하는 프로그램입니다. yumdownloader 명령을 사용하여 소스 코드를 설치할 수 있습니다.

yumdownloader --source coreutils-8.4-37.el6.i686

참고:

(1) yumdownloader 명령이 설치되지 않은 경우 yum install yum-utils 명령을 사용하여 설치할 수 있습니다.

(2) 다운로드한 파일은 현재 디렉터리에 있습니다. --destdir 매개변수를 사용하여 다운로드할 디렉터리를 지정할 수 있습니다.

5) yumdownloader를 사용하여 설치 패키지 파일 rpm을 다운로드합니다. 다음 명령을 사용하여 rpm에서 tar 파일을 쿼리할 수 있습니다.

rpm -qpl coreutils-8.4-37.el6.src.rpm grep tar

# 출력: coreutils-8.4.tar.xz

6) rpm2cpio 명령을 사용하여 rpm 패키지 파일을 cpio 아카이브 파일로 변환한 후 cpio 명령을 사용하여 cpio 아카이브 파일에서 아카이브 파일을 복사하고 추출하면 다음과 같습니다.

rpm2cpio coreutils-8.4-37.el6.src.rpm cpio -idv coreutils-8.4.tar.xz

# 출력:

# coreutils-8.4.tar.xz

# 9561 블록

cpio의 설명은 다음과 같습니다: cpio는 파일을 아카이브에 복사합니다

-i: --extract와 동일, 추출을 의미

-d: --make-directories와 동일하며 필요할 때 로딩 디렉터리를 생성합니다.

-v: 목록 파일 처리

7) 다음과 같이 tar 명령을 사용하여 coreutils-8.4.tar.xz 압축 패키지의 압축을 풉니다.

tar -xvf ./coreutils-8.4.tar.xz

이 시점에서 명령의 소스 코드를 얻습니다.

위 내용은 CentOS 시스템에서 명령의 소스 코드를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제