Arch Linux의 AUR은 무엇이며 사용해야 합니까?

게시 됨: 2023-06-23
ArchWiki 웹사이트의 Arch Linux 로고.
Jordan Gloor / 하우투 괴짜
Arch Linux AUR 리포지토리에는 몇 가지 간단한 예방 조치를 취하면 안전하게 사용할 수 있는 커뮤니티 기반 소프트웨어가 포함되어 있습니다. 쉘 스크립팅을 이해하지 못하더라도 패키지가 안전한지 여부를 판단하는 데 사용할 수 있는 지표가 있습니다.

AUR은 수천 개의 추가 소프트웨어 패키지를 제공하는 Arch Linux의 왕관에 있는 보석 중 하나입니다. 하지만 이 사용자 중심 리포지토리를 사용하는 것이 안전한가요, 아니면 피해야 할까요?

목차

AUR이란 무엇입니까?
AUR 사용의 위험
AUR 안전: 패키지 세부 정보 및 평판 확인
PKGBUILD 및 기타 파일의 내용 확인
다른 AUR 사용자를 도울 수 있습니다.

AUR이란 무엇입니까?

AUR(Arch User Repository)은 Arch Linux 사용자에게 85,000개 이상의 소프트웨어 패키지를 제공하는 커뮤니티 기반 소프트웨어 저장소입니다. 코어, 추가 및 multilib 리포지토리와 같은 다른 Arch 리포지토리와 달리 AUR은 바로 설치할 수 있는 패키지를 호스팅하지 않습니다. 실제로 바이너리 파일이나 패키지 소프트웨어를 전혀 호스트하지 않습니다.

AUR은 PKGBUILD라고 하는 패키지 빌드 파일을 호스트합니다. 이들은 Arch makepkg 도구에 의해 실행되는 쉘 스크립트입니다. makepkg 실행되면 "PKGBUILD"라는 파일을 찾습니다. 하나를 찾으면 열어서 내부 지침에 따라 컴퓨터에 소프트웨어 패키지 아카이브를 생성합니다. 명령줄에서 컴파일하는 데 익숙한 경우 PKGBUILD 파일과 makepkg MAKEFILE 및 make 유틸리티와 유사한 방식으로 함께 작동합니다.

PKGBUILD 명령어는 소스 코드 파일과 패키지 아카이브를 만드는 데 필요한 기타 파일을 다운로드합니다. 패키지 아카이브에서 소프트웨어를 설치하기 위해 pacman 도구가 자동으로 호출됩니다.

약간의 혼동을 일으킬 위험이 있지만 일부 AUR 패키지는 미리 컴파일된 바이너리를 제공 합니다 . 그러나 이러한 바이너리는 AUR에서 호스팅되지 않고 인터넷의 다른 곳에 저장됩니다. 해당 패키지의 AUR 항목에는 미리 컴파일된 바이너리를 컴퓨터에 다운로드하는 PKGBUILD 파일만 있습니다.

아치 리눅스와 우분투: 어떤 것을 사용해야 할까요?
관련 Arch Linux와 Ubuntu: 어느 것을 사용해야 합니까?

AUR을 사용하면 누구나 다른 Arch 사용자가 사용할 수 있도록 만들고 싶은 소프트웨어에 대한 PKGBUILD를 만들 수 있습니다. 공개 또는 폐쇄 소스 패키지 또는 상용 소프트웨어일 수 있습니다. 충분한 사용자 투표를 받은 AUR 패키지는 커뮤니티 저장소라는 일반 아치 저장소로 승격될 수 있습니다.

AUR의 문제는 기본 사항으로 바로 요약할 때 명백해집니다. 인터넷에서 무작위 사용자의 스크립트 모음입니다. 그리고 그들은 당신이 당신의 컴퓨터에서 실행하기를 원합니다.

위험을 완화하기 위해 업로드된 스크립트는 신뢰할 수 있는 사용자로 알려진 자격을 갖춘 존경받는 자원 봉사자가 검토합니다. 신뢰할 수 있는 사용자는 PKGBUILDS를 검사 및 테스트하고 위험한 실수나 악의적인 의도가 포함된 것을 제거합니다.

관련: Arch Linux를 업데이트하는 방법

AUR 사용의 위험

매우 드문 경우지만 신뢰할 수 있는 사용자의 근면성에도 불구하고 인터넷을 통과하는 경우가 있습니다. 2015년에 이전에 Steam 디렉토리를 새 위치로 이동한 경우 Valve Software Steam 스크립트가 홈 디렉토리를 지웠습니다.

더 불길한 사건은 2005년에 PKGBUILD 파일에 의도적으로 악성 코드를 추가한 새로운 관리자가 분리된 AUR 패키지를 인수한 사건이었습니다. 이러한 예는 오래되고 흔하지 않지만 같은 일이 다시 발생할 수 있습니다.

물론 충분히 숙련된 사용자라면 PKGBUILD 파일의 내용을 직접 검토할 수 있습니다. 이 투명성은 AUR의 장점 중 하나이지만 이를 활용하려면 충분한 스크립팅 지식이 필요합니다. PKGBUILD 파일 자체만 다룹니다. 대량의 응용 프로그램 소스 코드를 가져오는 경우 이론적으로는 그것도 확인해야 합니다.

AUR 사용의 다른 위험은 배포 기반입니다. 모든 아치 기반 배포판이 AUR이 완벽하게 작동하기에 충분히 아치와 유사한 것은 아닙니다. AUR은 정품 Arch Linux 및 완전히 패치되고 업데이트된 버전에 설치한다고 가정합니다. 예를 들어 Manjaro는 Arch 기반이지만 AUR을 공식적으로 지원하지 않습니다.

그러나 배포판이 AUR을 지원하는 경우 소스 코드와 셸 스크립트를 이해하는지 여부에 관계없이 AUR을 최대한 안전하게 사용하기 위해 무엇을 할 수 있습니까?

AUR 안전: 패키지 세부 정보 및 평판 확인

코드 검토 없이도 AUR 패키지를 신뢰할 수 있는지 여부를 결정하는 데 도움이 되는 단계가 있습니다.

AUR에서 패키지 찾기

AUR에는 모든 패키지에 대한 페이지가 있습니다. 패키지의 웹 페이지에는 패키지, 패키지에 포함된 종속성, 종속된 패키지 및 기타 유용한 정보가 설명되어 있습니다. AUR로 이동하여 패키지를 검색하여 조사를 시작하십시오.

AUR 웹사이트의 검색창

명성은 무엇입니까?

패키지는 사용자가 투표할 수 있으며 각 패키지에도 인기 점수가 부여됩니다. 투표가 많을수록 인기가 높을수록 좋습니다. 그것은 패키지가 잘 알려져 있고 널리 사용된다는 것을 의미합니다. 즉, 평판이 좋은 패키지입니다.

투표 및 인기 수치가 강조 표시된 yay 패키지의 AUR 패키지 세부 정보

패키지의 평판은 패키지의 신뢰성을 나타내는 좋은 지표입니다. 더 많은 사람들이 사용하고 투표할수록 사용에 대해 더 편안하게 느낄 수 있습니다.

활동 날짜 확인

"패키지 세부 정보" 섹션에서 투표, 인기 점수 및 두 날짜를 볼 수 있습니다. 하나는 패키지가 AUR에 처음 도입된 때이고 두 번째는 패키지가 마지막으로 업데이트된 때입니다.

처음 제출된 날짜와 마지막으로 업데이트된 날짜가 강조 표시된 yay 패키지의 AUR 패키지 세부 정보

"마지막 업데이트" 날짜는 패키지가 활발하게 유지되고 있는지 여부를 알려줍니다. 오랫동안 휴면 상태였던 패키지는 주의해서 다루어야 합니다.

업스트림 URL이 유효한 위치입니까?

또한 "업스트림 URL"을 확인하고 패키지 또는 프로젝트에 대한 유효한 웹 페이지 또는 코드 리포지토리로 이동하는지 확인하십시오. 그렇지 않으면 문제가 있는 것입니다.

업스트림 URL이 강조 표시된 yay 패키지의 AUR 패키지 세부 정보

사용자 의견 읽기

각 AUR 페이지 하단에는 사용자 의견이 있습니다. 이들은 여러 페이지에 걸쳐 확장될 수 있습니다. 패키지에 대한 다른 사용자의 의견과 그들이 묻는 질문의 종류를 확인하십시오. 또한 제기된 문제에 대해 어떤 솔루션이 제공되는지 확인하십시오. 최근 댓글이 있나요? 이 패키지에 여전히 활성 사용자 기반이 있습니까?

등록 및 참여

AUR에 등록하고 무료 계정을 만들면 의견을 남기고 질문을 할 수 있습니다. 또한 포럼 및 하위 레딧과 같은 다른 리소스를 사용하여 패키지에 대해 문의하십시오.

쉘 스크립트를 이해하지 못하더라도 확인할 수 있는 몇 가지 사항이 있습니다.

PKGBUILD 및 기타 파일의 내용 확인

AUR에 액세스하는 일반적인 방법은 yay 와 같은 명령줄 "AUR 도우미"를 사용하는 것이지만 AUR을 직접 수동으로 사용할 수도 있습니다.

좋은 AUR 헬퍼는 PKGBUILD 파일을 검사할 수 있는 옵션을 제공하여 진행하지 않으려면 설치를 중단합니다. 수동 프로세스에서는 AUR에서 패키지를 검색하고 PKGBUILD 파일을 다운로드하여 사용하기 전에 검사합니다. 검토 후 진행해도 된다면 makepkg 수동으로 실행합니다.

최소한 하나의 패키지를 수동으로 설치하는 것이 좋습니다. 그러면 AUR 도우미가 백그라운드에서 수행하는 작업의 메커니즘을 알 수 있습니다. yay AUR 도우미를 예로 사용하겠습니다.

이 패키지는 2016년에 처음 제출되었으며 2023년 5월에 마지막으로 업데이트되었습니다. 작성 당시에는 매우 최근 업데이트였습니다. 또한 원래 제출자, 현재 관리자 및 소프트웨어를 마지막으로 패키징한 사람이 모두 같은 사람이라는 점도 주목할 만합니다. 그 연속성은 좋은 징조입니다.

"Package Details" 섹션에서 "Git Clone URL" URL 링크를 클릭하여 클립보드에 복사합니다.

터미널 창에서 "git clone"(공백)을 입력한 다음 Shift+Ctrl+V를 눌러 URL을 명령줄에 붙여넣습니다. "Enter"를 눌러 다운로드를 시작하십시오.

 자식 클론 https://aur.archlinux.org/yay.git 

git 저장소에서 yay PKGBUILD 파일 복제

다운로드가 완료되면 새로운 "yay" 디렉토리로 변경합니다.

 CD 야호 

디렉터리를 yay 폴더로 변경합니다.

어떤 파일이 있는지 봅시다.

 ls 

ls를 사용하여 검색된 파일 나열

PKGBUILD 파일이라는 단일 파일이 있습니다. 종종 하나 또는 두 개의 추가 도우미 파일이 있습니다. 그것들도 살펴보십시오. 단일 파일을 읽기 위해 less 사용할 것입니다.

 적게 PKGBUILD 

적은 파일 뷰어를 시작하여 yay PKGBUILD 파일 열기

PKGBUILD 파일은 어떤 URL을 사용합니까?

규칙을 따르는 올바른 형식의 PKGBUILD 파일은 사용하는 URL을 보유하는 변수를 생성합니다. 이렇게 하면 PKGBUILD가 참조할 URL 파일의 맨 위에 있는 깔끔한 목록이 제공됩니다. 이 경우 하나만 있습니다.

less 파일 뷰어로 yay PKGBUILD 파일 검사

yay 프로젝트의 GitHub 페이지를 가리키는 것을 볼 수 있습니다.

GitHub 페이지는 이 패키지의 AUR 페이지에 나열된 관리자와 동일한 이름을 가진 사용자가 소유합니다. 이것은 이것이 안전한 패키지라는 두 가지 좋은 지표입니다.

그러나 우리는 계속해서 조금 더 깊이 살펴볼 것입니다.

다운로드 명령 찾기

less 검색 기능을 사용하여 파일에서 wget 또는 curl 사용을 검색합니다. 이 두 도구 모두 원격 파일을 검색하는 데 사용할 수 있습니다. 선의로 행동하는 PKGBUILD는 그러한 활동이 필요하지 않습니다.

발생하는 항목을 발견하면 이를 위험 신호로 취급하고 문제가 없는지 확인될 때까지 패키지를 설치하지 마십시오. wget 또는 curl 명령이 참조하는 URL은 무엇입니까? 합법적이고 패키지와 관련이 있습니까?

신뢰할 수 있는 소스에서 PKGBUILD가 신뢰할 수 있고 규칙을 따르지 않는 방식으로 작성되었다는 확인을 받을 수 있는 경우에도 설치하도록 선택할 수 있습니다.

rm, mv 및 기타 위험한 명령 찾기

마찬가지로, rm 또는 mv 명령을 포함하는 PKGBUILD 파일이 필요하지 않으며 "/dev" 디렉토리의 어떤 것도 참조할 필요가 없습니다. PKGBUILD가 pacman 직접 호출하거나 systemctl , systemd 또는 grub 과 같은 기타 중요한 시스템 구성 요소를 언급하는 경우 PKGBUILD 파일을 위험한 것으로 취급하고 실행하지 마십시오.

쉘 스크립트를 읽을 수 없더라도 지금까지 사용한 단계를 수행할 수 있습니다. 일부 쉘 스크립팅을 알고 있는 경우 PKGBUILD에서 실제 코드를 검토할 수 있습니다.

난독화된 코드에 주의

악성 코드를 작성하는 사람들은 종종 코드를 난독화하여 의도를 숨기려고 합니다. 그들은 미니멀하고 간결하며 뚫을 수 없는 구문을 사용하므로 그들이 하려는 것을 해독하기 어렵습니다. 리디렉션을 사용하거나 sed 또는 awk 호출하는 줄이 있으면 의심스러운 것으로 취급하십시오.

해당 줄을 복사하여 explainshell.com과 같은 온라인 파서에 드롭하면 압축이 풀리므로 실제로 무엇을 하는지 볼 수 있습니다. 대괄호, 세미콜론 및 앰퍼샌드가 빽빽하게 뒤섞인 경우 온라인 파서를 사용하여 행이 수행하려는 작업을 올바르게 해석했는지 다시 확인하는 것이 좋습니다. 그러나 일반적으로 읽기 어려운 코드는 경고 신호입니다.

당신의 /home은 당신의 성이어야 합니다

PKGBUILD는 chroot 환경에서 컴파일 및 빌드를 수행합니다.

이는 개발자가 컴퓨터 파일 시스템의 나머지 부분에 대한 액세스를 제한하고 다른 시스템 명령에 대한 액세스를 줄여 샌드박스 프로세스를 수행할 수 있는 격리된 미니 파일 시스템입니다.

PKGBUILD가 홈 디렉토리를 직접 조작하는 경우 이를 경고 플래그로 처리하십시오. 실행하기로 결정하기 전에 수행하는 작업을 완전히 이해했는지 확인하십시오.

다른 AUR 사용자를 도울 수 있습니다.

매우 인기 있는 패키지를 사용하면 안전할 가능성이 매우 높습니다. 사용자 수가 많기 때문에 문제가 더 빨리 발견되고 더 빨리 보고됩니다. 발견한 문제를 보고하고 좋은 패키지에 투표하여 명성을 높일 수 있습니다.

설치하고 싶지 않은 패키지에 문제가 있는 경우 해당 패키지가 필요했기 때문에 바인드 상태가 될 수 있습니다. 한 가지 방법은 특정 요구를 충족시킬 수 있는 다른 패키지에 대한 제안을 포럼에서 요청하는 것입니다.

Linux에는 일반적으로 주어진 고양이의 가죽을 벗기는 여러 가지 방법이 있습니다.

관련: GUI에서 아치 리눅스를 설치하는 방법