아치 리눅스에서 Devtools 사용하기

Devtools 패키지는 원래 신뢰할 수있는 사용자가 공식 리포지토리에 대한 패키지를 올바르게 만들도록 만들어졌습니다. 그러나 일반 사용자는 AUR 패키지를 만들거나 공식 패키지를 수정하기 위해 사용할 수도 있습니다.

을 얻는 것을 포함하여 AUR을 이해하고 사용하려면 이 안내서 를 참조하십시오 PKGBUILD. 이 문서는 패키지를 컴파일하기 위해 선택한 방법 인 경우 Devtools에만 해당하는 단계 만 보여줍니다.

Devtools는에 위치한 별도의 클린 아치 설치를 유지 관리하며 /var/lib/archbuild/<TARGET>/root패키지 그룹 base및 만 포함합니다 base-devel. 이 새로 설치가 없으면 자동으로 설치됩니다. 존재하는 경우 패키지를 자동으로 업데이트합니다. Devtools를 사용하여 패키지를 빌드하는 경우,이 새로 설치의 사본으로 시작하고 필요한 패키지를 사본에만 설치하고 소스 코드를 복사하고 컴파일 및 패키징을 수행하며 결과 패키지 만 복사합니다. 공식 리포지토리에있는 것과 동일한 형태로

Devtools가 makepkg직접 실행하는 것보다 장점이 있습니다. 장점 중 하나는 base-devel패키지를 컴파일하되 실행하지 않는 데 필요한 다른 패키지는 기본 시스템에서 결코 작동하지 않는다는 것입니다. 정기적으로 업그레이드해야 할 패키지가 적고 걱정이됩니다. 아치 패키지 관리자에게는 주로 이점이 있지만,이 프로세스는 PKGBUILD관리자가 기본 시스템에 이미 설치되어있는 것으로 보이는 종속성이 누락 된 경우와 같이 잘못 되었을 때 쉽게 노출됩니다 . 또한 패키지를보다 빠르게 구축 할 수있는 머신을 사용하고 빌딩 머신의 설치를 오염시키지 않고 결과 패키지를 실행하는 느린 머신에 결과 패키지를 복사 할 수 있습니다.

가장 큰 단점은 깨끗한 루트가 항상 있고 약 800MB를 차지하며 일반적으로 단일 사본이 더 많은 공간을 차지한다는 것입니다. /var/lib/archbuild/Btrfs를 사용하는 경우 클린 루트의 사본이 Btrfs 스냅 샷으로 시작되므로 해당 파일의 공간을 두 배로 차지하지 않습니다. 클린 루트는 패키지를 만들 때마다 다시 설치하지 않도록 항상 유지됩니다.

Devtools를 사용하여 컴파일

Devtools를 설치하십시오.

# pacman -S devtools

패키지를 빌드하기 위해 Devtools는 포함 archbuild하지만 직접 실행하지는 않습니다. 의 심볼릭 링크도 포함되어 있습니다 {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build. 심볼릭 링크를 실행하는 데 사용되어 사용 archbuild하려는 대상을 결정하기 위해에 의해 검사됩니다 . 이 불안정한 / 스테이징 / 테스트 리포지토리를 사용하여 공식 리포지토리에 릴리스 된 것보다 최신 버전을 사용할 수 있습니다. AUR 이외의 패키지에 대한 공식 저장소를 사용하려면 디렉토리가 PKGBUILD있는 디렉토리 (예 :에서 만든 디렉토리) git clone에서 다음을 실행하십시오.

$ extra-x86_64-build

참고 : 이 안내서의 나머지 부분에서는 간단히 참조하십시오 extra-x86_64-build.

실행이 끝나면 결과는 다음과 같습니다.

  • /var/lib/archbuild/extra-x86_64/root- 청소의 chroot 만 패키지 그룹과 날짜 설치에 최대입니다, base하고 base-devel.
  • /var/lib/archbuild/extra-x86_64/<USERNAME>-여기에는 빌드 chroot 가 포함됩니다 . 이것은 소스 코드, 컴파일 결과 및 패키지뿐만 아니라 빌드중인 패키지를 빌드하거나 실행하는 데 필요한 종속성이있는 클린 chroot의 사본입니다.
  • 현재있는 디렉토리에는 패키지 및 빌드 로그 파일과 다운로드 한 소스 코드가 포함됩니다.

마지막에 " Checking PKGBUILD"및 " Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz" 가 표시 될 수 있습니다 . 이후의 모든 행은에서 출력되어 namcap잘못된 PKGBUILD형식의 파일, 패키지가 사용하지 않는 것으로 포함 된 종속성, 패키지가 사용하는 것으로 포함되지 않은 종속성 등을 자동으로 찾습니다 . 오 탐지는 종종에 의해 생성 namcap되지만 조사 할 항목을 제공하는 데 유용한 도구입니다. 패키지가 올바르게 작동하면, namcap살펴보고 변경해야하는지 확인하지 않는 한 관리자에게 출력 을 알리는 것은 좋지 않습니다 .

pacman공식 저장소 또는 로컬 저장소에있는 한 패키지를 실행하는 데 필요한 모든 종속성을 설치하는 패키지를 설치하는 데 사용할 수 있습니다 .

여기 에 설명 된대로 로컬 리포지토리를 사용 하거나 파일을 직접 설치하십시오.

# pacman -U <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz

extra-x86_64-build지금 또는 나중에이 패키지 나 다른 패키지를 사용하여 다시 실행 한 경우 필요한 경우 클린 chroot를 업데이트하고 빌드 chroot를 삭제 한 후 클린 chroot의 새로운 사본으로 만들고 동일한 프로세스를 수행합니다. 디렉토리에서 마지막으로 소스 코드를 다운로드 한 경우 계속 사용합니다. 패키지가 개발 AUR 패키지 인 경우 다시 복제하지 않고 새로운 변경 사항을 가져옵니다.

내부적으로 extra-x86_64-build실행 makechrootpkg내부적으로 호출하는 makepkg. 옵션 extra-x86_64-build은 다음과 같습니다.

  • -c: 클린 /var/lib/archbuild/extra-x86_64/chroot 및 모든 빌드 chroot 디렉토리를 포함 하여 전체 디렉토리 를 제거하고 다시 작성하여 chroot를 정리하십시오 . 클린 chroot가 손상되거나 Devtools가 이전 버전과의 호환성을 손상시키는 방식으로 업그레이드 된 경우에만 거의 필요하지 않습니다.
  • -r <dir>: /var/lib/archbuild/extra-x86_64/chroot를 포함 하는 것과 다른 디렉토리를 사용하십시오 .

extra-x86_64-buildafter 내부의 인수 --makechrootpkg내부적으로 사용할 때에 전달됩니다 . 여러 인수는 항상 자동으로에서 extra-x86_64-build로 전달 됩니다 makechrootpkg. 이 자동 인수는 -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n입니다. 그들은 말할 makechrootpkg빌드는 chroot를 제거하고 깨끗한의 chroot를 새로 만들고, 실행 namcap이 성공적으로 빌드하면 패키지. 전달할 수있는 일반적으로 사용되는 옵션 makechrootpkg-l <copy name>입니다. 이 디렉토리 이름은 대신 빌드 chroot를 제공하는 디렉토리 이름으로, <USERNAME>여러 사본을 유지하거나 동시에 여러 패키지를 컴파일하는 데 유용합니다.

내부적으로 패키지를 빌드하는 데 사용하면 makechrootpkgafter에 --대한 모든 인수가에 전달됩니다 makepkg. 에 makepkg의해 처음 실행될 때 makechrootpkg, 변경 불가능한 자체 옵션을 사용하여 필요한 경우 소스 파일을 다운로드하고 무결성 검사를 수행합니다. 따라서이 실행에서 아무것도 전달 될 수 없습니다. makepkg패키지를 빌드하는 데 두 번째로 실행되며 항상 빌드 chroot 내에서 패키지 빌드 및 사용에 필요한 누락 된 종속성을 자동으로 설치 하는 makepkg인수를 자동 전달 합니다. 이외에 파일은 , 버전 관리 시스템의 소스 코드를 경우 업데이트하지 않고 소스 파일 검증 검사를 수행하지 않습니다.--syncdeps --noconfirm --log --holdver --skipintegmakepkgpacmanstdout

다음 양식을 사용하여이를 묶을 수 있습니다.

$ extra-x86_64-build <DEVTOOLS-OPTIONS> -- <MAKECHROOTPKG-OPTIONS> -- <MAKEPKG-OPTIONS>

참고 /var/lib/archbuild이 임시 디렉토리 인 것처럼 처리 할 수 있습니다. Vultr 하드 드라이브가 여러 개인 경우 여기에 RAID0 (스트라이프) 파일 시스템을 마운트하는 것이 좋습니다. RAM이 많은 경우와 같이 RAM 지원 파일 시스템을 마운트 할 수도 있습니다 tmpfs. 패키지가 빌드 된 후에는 실행 한 디렉토리로 복사되며 extra-x86_64-build원하는 경우 삭제할 수 /var/lib/archbuild있습니다. 새로운 루트를 새로 만들어야하기 때문에 다음 실행 속도가 느려집니다. 또는 /var/lib/archbuild/<USERNAME>다음 Devtools 실행에 의해 자동으로 삭제되기 전에 빌드 chroot에서 여분의 공간을 확보하기 위해 삭제할 수 있습니다. 따라서 RAID0 파일 시스템이 여기에 마운트되어 있어도 실패하는 경우 프로세스에서 컴파일하는 것입니다.

Devtools 구성 파일

Devtools 구성 파일에 유의해야 할 몇 가지 사항이 있습니다. 그들은에있는 /usr/share/devtools/같은 makepkg-x86_64.confpacman-extra.conf:

  • 들어 /etc같은 파일 makepkg.confpacman.conf안전하게 장소에서 편집 할 수 있으며, 패키지가 업그레이드 될 때, 그 변경 사항을 덮어 쓰지 않습니다. 대신로 끝나는 새 구성 파일 (이전 버전에서 변경된 경우)이 저장됩니다 .pacnew. 그러나 Devtools 구성 파일은 /usr/share/사용자가 편집 할 수 없으므로 Devtools를 업그레이드 할 때 경고하지 않고 이러한 파일의 변경 사항을 완전히 겹쳐 씁니다. 이 동작에 대한 변경이 제안 및 거부되었습니다. 패키지가 모두 동일한 컴파일 설정을 사용하여 공식 리포지토리로 전송되도록하는 데 도움이되기 때문입니다.
  • 값을 위해 MAKEFLAGS, PACKAGER그리고 {SRC,SRCPKG,PKG,LOG}DEST에서 발췌 한 /etc/makepkg.conf것이 아니라 /usr/share/devtools/makepkg-x86_64.conf.

로컬 리포지토리

빌드 한 다른 패키지에 종속 된 패키지를 빌드하는 경우 pacman빌드 chroot 내에서 실행될 때 종속성을 찾 도록 로컬 저장소를 사용해야합니다 .

로컬 리포지토리를 설정하려면 이 가이드의 "로컬 리포지토리"섹션을 참조하십시오.

맞춤 타겟을 만듭니다.

# ln -s archbuild /usr/bin/custom-x86_64-build
# cp /usr/share/devtools/pacman-{extra,custom}.conf

편집 /usr/share/devtools/pacman-custom.conf하고 끝에 다음을 추가하십시오.

[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo

를 편집 /etc/pacman.conf하고 다음을 추가하십시오. 이렇게하면 디렉토리가 chroot에 바인드 마운트됩니다.

CacheDir    = /var/cache/pacman/pkg/ /archLocalRepo/

이제 사용 extra-x86_64-build하는 대신 다음을 사용하십시오.

$ custom-x86_64-build

항상 사용자 정의 대상을 사용하려는 /var/lib/archbuild/extra-x86_64-build/경우 chroot가 이제에 있으므로 디렉토리가 존재하는 경우 디렉토리를 삭제할 수 있습니다 /var/lib/archbuild/custom-x86_64-build/.

빠른 패키지

스레드 패키징을 사용하려면 /usr/share/devtools공식적으로 지원되지 않는 구성 파일을 편집 해야하므로 Devtools를 업그레이드 할 때마다이 변경을 수행해야합니다.

Devtools는 전체 패키지를 아카이브 형식으로 결합합니다. 기본적으로 압축에 .tar.xz단일 스레드를 사용합니다 xz.

다중 CPU 시스템 xz에서을 편집하여 다중 스레드를 사용 하도록 허용 /usr/share/devtools/makepkg-x86_64.conf하고 다음 행을 변경할 수 있습니다.

COMPRESSXZ=(xz -c -z -)

가상 코어 수만큼 스레드를 허용하려면 다음을 수행하십시오.

COMPRESSXZ=(xz -c -z - --threads=0)

전체 시스템 성능에 미치는 영향을 줄이기 위해 여러 가상 코어를 사용할 수 있지만 전부는 아님을 허용하려면 특정 수를 추가하십시오.

COMPRESSXZ=(xz -c -z - --threads=21)

보유한 가상 코어 수보다 많은 스레드를 지정하면 성능이 저하됩니다.

패키지 파일의 크기가 크지 않다면 편집하여 압축을 비활성화 /usr/share/devtools/makepkg-x86_64.conf하고 다음 줄을 변경하십시오.

PKGEXT='.pkg.tar.xz'

다음과 같이 변경하십시오.

PKGEXT='.pkg.tar'


반격 : 아치 리눅스에서 CSGO (Global Offensive) 서버 설정

반격 : 아치 리눅스에서 CSGO (Global Offensive) 서버 설정

이 튜토리얼은 Arch Linux에서 Counter-Strike : Global Offensive 서버를 설정하는 방법을 설명합니다. 이 학습서는 표준 사용으로 로그인했다고 가정합니다.

Arch Linux 웹 서버에서 HTTPS를 사용하는 방법

Arch Linux 웹 서버에서 HTTPS를 사용하는 방법

전제 조건 최신 Linux Linux를 실행하는 Vultr 서버 (이 기사 참조) 실행중인 웹 서버 (Apache 또는 Nginx Sudo 액세스 명령 필요) t

아치 리눅스에서 Mumble Server 설정

아치 리눅스에서 Mumble Server 설정

이 학습서는 Arch Linux에서 Mumble 서버 (Murmur)를 설정하는 방법을 설명합니다. 이 학습서에서 수행 된 모든 것은 루트 사용자로 수행됩니다. 설치

Arch Linux에 MongoDB 4.0을 설치하는 방법

Arch Linux에 MongoDB 4.0을 설치하는 방법

전제 조건 최신 Arch Linux를 실행하는 Vultr 서버 (이 기사 참조) Sudo 액세스 : 루트로 실행하는 데 필요한 명령 앞에는 #이 있고 하나는

Arch Linux에서 Team Fortress 2 서버 설정

Arch Linux에서 Team Fortress 2 서버 설정

이 학습서는 Arch Linux에서 Team Fortress 2 서버를 설정하는 방법을 설명합니다. sudo 액세스 권한이있는 루트가 아닌 사용자 계정으로 로그인했다고 가정합니다.

아치 리눅스에서 스피 곳 서버 설정

아치 리눅스에서 스피 곳 서버 설정

이 튜토리얼은 Arch Linux에서 Spigot을 사용하여 Minecraft 서버를 설정하는 방법을 설명합니다. 이 튜토리얼에서는 사용자가 루트가 아닌 일반 사용자이고 hav

아치 리눅스에서 패키지 만들기 (AUR 포함)

아치 리눅스에서 패키지 만들기 (AUR 포함)

Arch Linux에서 공식 저장소는 핵심, 추가 및 커뮤니티입니다. 이 패키지는 이미 컴파일되었으며 pacman을 통해 설치됩니다. 일

Vultr 서버에 Arch Linux 설치

Vultr 서버에 Arch Linux 설치

Vultr는 뛰어난 템플릿과 함께 사용자 정의 이미지를 사용할 수있는 뛰어난 기능을 제공하여 실행할 수 있습니다.

Btrfs 스냅 샷을 사용하여 Arch Linux 설치

Btrfs 스냅 샷을 사용하여 Arch Linux 설치

머리말 아치 리눅스는 최첨단 기술과 유연한 구성으로 잘 알려진 범용 배포판입니다. Btrfs 스냅 샷을 사용하면

Arch Linux에서 MariaDB 10.3 또는 MySQL 8.0을 설치하는 방법

Arch Linux에서 MariaDB 10.3 또는 MySQL 8.0을 설치하는 방법

전제 조건 최신 Linux Linux를 실행하는 Vultr 서버 (이 기사 참조) Sudo 액세스 : 루트로 실행해야하는 명령 앞에는 #이 있고 하나가 있습니다.

Arch Linux 웹 서버에 Perl 5.28을 설치하는 방법

Arch Linux 웹 서버에 Perl 5.28을 설치하는 방법

전제 조건 최신 Linux Linux를 실행하는 Vultr 서버 (이 기사 참조) 실행중인 웹 서버 (Apache 또는 Nginx Sudo 액세스) : 명령에 필요

Arch Linux에 PostgreSQL 11.1을 설치하는 방법

Arch Linux에 PostgreSQL 11.1을 설치하는 방법

전제 조건 Arch Linux 최신 버전으로 실행되는 Vultr 서버 (이 기사 참조) Sudo 액세스. 루트로 실행하는 데 필요한 명령 앞에는 #이 있고 하나는

Arch Linux에 Apache 2.4를 설치하는 방법

Arch Linux에 Apache 2.4를 설치하는 방법

전제 조건 최신 Arch Linux를 실행하는 Vultr 서버. 자세한 내용은이 안내서를 참조하십시오. Sudo 액세스 root ar로 실행하는 데 필요한 명령

Arch Linux 웹 서버에 PHP 7.3을 설치하는 방법

Arch Linux 웹 서버에 PHP 7.3을 설치하는 방법

전제 조건 최신 Linux Linux를 실행하는 Vultr 서버 (이 기사 참조) 실행중인 웹 서버 (Apache 또는 Nginx Sudo 액세스). 명령에는

Arch Linux에서 Nginx 1.14를 설치하는 방법

Arch Linux에서 Nginx 1.14를 설치하는 방법

전제 조건 Arch Linux 최신 버전으로 실행되는 Vultr 서버 (이 기사 참조) Sudo 액세스. 루트로 실행하는 데 필요한 명령 앞에는 #이 붙습니다. Th

Vultr 서버에 2019 Arch Linux 설치

Vultr 서버에 2019 Arch Linux 설치

소개 아치 리눅스는 더 널리 보급 된 배포판보다 작지만 여전히 강력합니다. 그것의 철학은 장점이 상당히 다릅니다.

아치 리눅스에서 Makepkg 사용하기

아치 리눅스에서 Makepkg 사용하기

makepkg를 직접 사용하면 시스템이 다소 오염됩니다. 기본 개발 패키지 그룹이 설치되어 있어야합니다. 이 방법은 기본적으로 의존성이 필요할 때

아치 리눅스 웹 서버에 Python 3.7을 설치하는 방법

아치 리눅스 웹 서버에 Python 3.7을 설치하는 방법

전제 조건 최신 Linux Linux를 실행하는 Vultr 서버 (이 기사 참조) 실행중인 웹 서버 (Apache 또는 Nginx Sudo 액세스) : 명령에 필요

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.