AUR은 수천 개의 추가 소프트웨어 패키지를 제공하는 Arch Linux의 왕관에 있는 보석 중 하나입니다. 하지만 이 사용자 중심 리포지토리를 사용하는 것이 안전한가요, 아니면 피해야 할까요?
AUR이란 무엇입니까?
AUR 사용의 위험
AUR 안전: 패키지 세부 정보 및 평판 확인
PKGBUILD 및 기타 파일의 내용 확인
다른 AUR 사용자를 도울 수 있습니다.
AUR이란 무엇입니까?
AUR(Arch User Repository)은 Arch Linux 사용자에게 85,000개 이상의 소프트웨어 패키지를 제공하는 커뮤니티 기반 소프트웨어 저장소입니다. 코어, 추가 및 multilib 리포지토리와 같은 다른 Arch 리포지토리와 달리 AUR은 바로 설치할 수 있는 패키지를 호스팅하지 않습니다. 실제로 바이너리 파일이나 패키지 소프트웨어를 전혀 호스트하지 않습니다.
AUR은 PKGBUILD라고 하는 패키지 빌드 파일을 호스트합니다. 이들은 아치에 의해 실행되는 쉘 스크립트입니다. makepkg
도구. 언제 makepkg
실행되면 “PKGBUILD”라는 파일을 찾습니다. 하나를 찾으면 열어서 내부 지침에 따라 컴퓨터에 소프트웨어 패키지 아카이브를 생성합니다. 명령줄에서 컴파일하는 데 익숙한 경우 PKGBUILD 파일 및 makepkg
MAKEFILE 및 make
공익사업.
PKGBUILD 명령어는 소스 코드 파일과 패키지 아카이브를 만드는 데 필요한 기타 파일을 다운로드합니다. 그만큼 pacman
패키지 아카이브에서 소프트웨어를 설치하기 위해 도구가 자동으로 호출됩니다.
약간의 혼란을 야기할 위험이 있지만 일부 AUR 패키지는 하다 미리 컴파일된 바이너리를 제공합니다. 그러나 이러한 바이너리는 AUR에서 호스팅되지 않고 인터넷의 다른 곳에 저장됩니다. 해당 패키지의 AUR 항목에는 미리 컴파일된 바이너리를 컴퓨터에 다운로드하는 PKGBUILD 파일만 있습니다.
AUR을 사용하면 누구나 다른 Arch 사용자가 사용할 수 있도록 만들고 싶은 소프트웨어에 대한 PKGBUILD를 만들 수 있습니다. 공개 또는 폐쇄 소스 패키지 또는 상용 소프트웨어일 수 있습니다. 충분한 사용자 투표를 받은 AUR 패키지는 커뮤니티 저장소라는 일반 아치 저장소로 승격될 수 있습니다.
AUR의 문제는 기본 사항으로 바로 요약할 때 명백해집니다. 인터넷에서 무작위 사용자의 스크립트 모음입니다. 그리고 그들은 당신이 당신의 컴퓨터에서 실행하기를 원합니다.
위험을 완화하기 위해 업로드된 스크립트는 신뢰할 수 있는 사용자로 알려진 자격을 갖춘 존경받는 자원 봉사자가 검토합니다. 신뢰할 수 있는 사용자는 PKGBUILDS를 검사 및 테스트하고 위험한 실수나 악의적인 의도가 포함된 것을 제거합니다.
관련된: 아치 리눅스를 업데이트하는 방법
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에 처음 도입된 때이고 두 번째는 패키지가 마지막으로 업데이트된 때입니다.
“마지막 업데이트” 날짜는 패키지가 활발하게 유지되고 있는지 여부를 알려줍니다. 오랫동안 휴면 상태였던 패키지는 주의해서 다루어야 합니다.
업스트림 URL이 유효한 위치입니까?
또한 “업스트림 URL”을 확인하고 패키지 또는 프로젝트에 대한 유효한 웹 페이지 또는 코드 리포지토리로 이동하는지 확인하십시오. 그렇지 않으면 문제가 있는 것입니다.
사용자 의견 읽기
각 AUR 페이지 하단에는 사용자 의견이 있습니다. 이들은 여러 페이지에 걸쳐 확장될 수 있습니다. 패키지에 대한 다른 사용자의 의견과 그들이 묻는 질문의 종류를 확인하십시오. 또한 제기된 문제에 대해 어떤 솔루션이 제공되는지 확인하십시오. 최근 댓글이 있나요? 이 패키지에 여전히 활성 사용자 기반이 있습니까?
등록 및 참여
AUR에 등록하고 무료 계정을 만들면 의견을 남기고 질문을 할 수 있습니다. 또한 포럼 및 하위 레딧과 같은 다른 리소스를 사용하여 패키지에 대해 문의하십시오.
쉘 스크립트를 이해하지 못하더라도 확인할 수 있는 몇 가지 사항이 있습니다.
PKGBUILD 및 기타 파일의 내용 확인
AUR에 액세스하는 일반적인 방법은 다음과 같은 명령줄 “AUR 도우미”를 사용하는 것입니다. yay
그러나 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”를 눌러 다운로드를 시작하십시오.
git clone https://aur.archlinux.org/yay.git
다운로드가 완료되면 새로운 “yay” 디렉토리로 변경합니다.
cd yay
어떤 파일이 있는지 봅시다.
ls
PKGBUILD 파일이라는 단일 파일이 있습니다. 종종 하나 또는 두 개의 추가 도우미 파일이 있습니다. 그것들도 살펴보십시오. 우리는 사용할 것입니다 less
단일 파일을 읽습니다.
less PKGBUILD
PKGBUILD 파일은 어떤 URL을 사용합니까?
규칙을 따르는 올바른 형식의 PKGBUILD 파일은 사용하는 URL을 보유하는 변수를 생성합니다. 이렇게 하면 PKGBUILD가 참조할 URL 파일의 맨 위에 있는 깔끔한 목록이 제공됩니다. 이 경우 하나만 있습니다.
에 대한 GitHub 페이지를 가리키는 것을 볼 수 있습니다. yay
프로젝트.
GitHub 페이지는 이 패키지의 AUR 페이지에 나열된 관리자와 동일한 이름을 가진 사용자가 소유합니다. 이것은 이것이 안전한 패키지라는 두 가지 좋은 지표입니다.
그러나 우리는 계속해서 조금 더 깊이 살펴볼 것입니다.
다운로드 명령 찾기
사용 less
사용을 위해 파일을 검색하는 검색 기능 wget
또는 curl
. 이 두 도구 모두 원격 파일을 검색하는 데 사용할 수 있습니다. 선의로 행동하는 PKGBUILD는 그러한 활동이 필요하지 않습니다.
발생하는 항목을 발견하면 이를 위험 신호로 취급하고 문제가 없는지 확인될 때까지 패키지를 설치하지 마십시오. URL은 무엇입니까 wget
또는 curl
명령이 참조하고 있습니까? 합법적이고 패키지와 관련이 있습니까?
신뢰할 수 있는 소스에서 PKGBUILD가 신뢰할 수 있고 규칙을 따르지 않는 방식으로 작성되었다는 확인을 받을 수 있는 경우에도 설치하도록 선택할 수 있습니다.
rm, mv 및 기타 위험한 명령 찾기
마찬가지로 PKGBUILD 파일에 다음을 포함할 필요가 없습니다. rm
또는 mv
“/dev” 디렉토리에 있는 어떤 것도 참조할 필요가 없습니다. PKGBUILD가 직접 호출하는 경우 pacman
또는 언급 systemctl
, systemd
또는 다음과 같은 기타 중요한 시스템 구성 요소 grub
PKGBUILD 파일을 위험한 것으로 취급하고 실행하지 마십시오.
쉘 스크립트를 읽을 수 없더라도 지금까지 사용한 단계를 수행할 수 있습니다. 일부 쉘 스크립팅을 알고 있는 경우 PKGBUILD에서 실제 코드를 검토할 수 있습니다.
난독화된 코드에 주의
악성 코드를 작성하는 사람들은 종종 코드를 난독화하여 의도를 숨기려고 합니다. 그들은 미니멀하고 간결하며 뚫을 수 없는 구문을 사용하므로 그들이 하려는 것을 해독하기 어렵습니다. 리디렉션 또는 호출을 사용하는 줄이 표시되는 경우 sed
또는 awk
그들을 의심스러운 것으로 취급하십시오.
해당 줄을 복사하여 explainshell.com과 같은 온라인 파서에 드롭하면 압축이 풀리므로 실제로 무엇을 하는지 볼 수 있습니다. 대괄호, 세미콜론 및 앰퍼샌드가 조밀하게 뒤섞인 경우 온라인 파서를 사용하여 행이 수행하려는 작업을 올바르게 해석했는지 다시 확인하는 것이 좋습니다. 그러나 일반적으로 읽기 어려운 코드는 경고 신호입니다.
당신의 /home은 당신의 성이어야 합니다
PKGBUILD는 컴파일 및 빌드가 chroot
환경.
이는 개발자가 컴퓨터의 나머지 파일 시스템에 대한 액세스를 제한하고 다른 시스템 명령에 대한 액세스를 줄임으로써 샌드박스 프로세스를 수행할 수 있는 격리된 미니 파일 시스템입니다.
PKGBUILD가 홈 디렉토리를 직접 조작하는 경우 이를 경고 플래그로 처리하십시오. 실행하기로 결정하기 전에 수행하는 작업을 완전히 이해했는지 확인하십시오.
다른 AUR 사용자를 도울 수 있습니다.
매우 인기 있는 패키지를 사용하면 안전할 가능성이 매우 높습니다. 사용자 수가 많기 때문에 문제를 더 빨리 발견하고 더 빨리 보고할 수 있습니다. 발견한 문제를 보고하고 좋은 패키지에 투표하여 명성을 높일 수 있습니다.
설치하고 싶지 않은 패키지에 문제가 있는 경우 해당 패키지가 필요했기 때문에 바인드 상태가 될 수 있습니다. 한 가지 방법은 특정 요구를 충족시킬 수 있는 다른 패키지에 대한 제안을 포럼에서 요청하는 것입니다.
Linux에는 일반적으로 주어진 고양이의 가죽을 벗기는 여러 가지 방법이 있습니다.
관련된: GUI에서 아치 리눅스를 설치하는 방법