리눅스/Arch or Manjaro

아치 리눅스(Arch Linux) AUR(Arch User Repository) 패키지 설치법 01 - AUR Helper (yay, paru) 설치

씨실과 날실 2021. 8. 28. 09:00

안녕하세요. 주인장 씨실과 날실입니다.

아치 리눅스 설치 과정

2021.06.22 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 01 - Arch Linux에 대한 소개 및 ISO 파일 다운로드

2021.06.24 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 02 - archinstall 인스톨러를 통한 설치

2021.06.30 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 03 - 사용자에 의한 Base 시스템 완전 수동 설치[UEFI/GRUB2/Swap Partition]

2021.07.05 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 04 - 사용자에 의한 Base 시스템 완전 수동 설치[UEFI/systemd-boot/Swap File]

2021.07.09 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 05 - 데스크톱 환경 설치

2021.07.12 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 06 - 시스템 언어 환경 및 형식(포맷)과 한글 입력 설정(한글 폰트 설치, IBUS/Fcitx5 입력기 설치 및 한글 입력 설정)

2021.07.14 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 07 - 버추얼박스 게스트 확장(Guest Additions) 설치

 

2021.07.20 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 01

2021.07.23 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 02(archdi의 Update Menu)

2021.07.29 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 03(archdi의 Install Menu 중 필수 GUI 환경 구축 과정)

2021.08.02 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 04(archdi의 Install Menu 중 각종 응용 앱 설치 과정)

2021.08.04 - [리눅스/Arch or Manjaro] - 아치 리눅스(Arch Linux) 설치 08 - TUI 인스톨러 archfi를 통한 설치 05(주요 시스템 설정 작업 및 마무리 과정)

2021.08.06 - [리눅스/Arch or Manjaro] - 아치 리눅스 (Arch Linux) 주요 설정 파일 예시

 

지난 시간에 위 링크 상자와 같이 꽤 많은 연재글들을 통해 아치 리눅스 시스템을 구축하는 방법에 대해 알아보았습니다.

OS를 구축하고 나서 사용자가 가장 먼저 마주치는 일은 바로 소프트웨어(유사 개념 : = 프로그램 = 패키지 등)를 설치하는 일입니다.

OS가 윈도(Windows) 계열이라면 일반적으로 인터넷에서 프로그램의 설치 패키지를 내려받아 exe 확장자를 install 또는 setup파일을 실행하여 설치를 진행하거나 Microsoft Store에서 프로그램을 내려받아 설치를 진행합니다.

그러나 OS가 리눅스(Linux) 계열이라면 주로 해당 리눅스가 지원하는 패키지 관리자(APT, DNF, ZYPPER, PACMAN 등)를 이용해 이른바 저장소(Repository)에서 패키지를 다운 받아 설치하는 것이 일반적입니다.

리눅스 초심자라면 각 리눅스 배포판이 제공하는 기본 저장소만을 이용하게 되지만 사실 기본 저장소에서 제공하는 패키지만으로는 부족한 경우가 많습니다. 그래서 많은 리눅스 배포판들은 공식 저장소 외 프로그램 개발자나 팀이 제공하는 개별 저장소를 신뢰 저장소로 등록하여 해당 저장소를 통해 공식 저장소에서는 구하지 못하는 패키지 또는 최신 버전의 패키지를 내려받아 설치하곤 합니다.

패키지 관리자별 저장소 추가 기본 구문

APT

## 패키지 제작사가 자체적으로 저장소를 유지하는 경우
$ sudo apt-add-repository 'URL'

## 런치패드가 개인에게 제공하는 PPA(Personal Package Archive)를 이용하는 경우
$ sudo apt-add-repository ppa:user/distro/repository

 

DNF/YUM

## copr소저장소
$ dnf copr [enable|disable|list|search] <parameters>

## playground 저장소
$ dnf playground [enable|disable|upgrade]

 

Zypper

## URL 주소 등록
$ sudo zypper addrepo [options] URI alias

## 저장소 정보 파일 이용
$ sudo zypper addrepo [options] FILE.repo

  

 

아치 리눅스는 아치 유저 리포지토리(AUR - Arch User Repository)를 제공합니다. 그래서 아치 공식 저장소에서는 구하지 못하는 패키지나 공식 저장소보다 최신 버전의 패키지를 설치할 수 있습니다.

 

그런데 초보자가 이 AUR 안의 패키지들을 전무 ㄴ적으로 관리하는 것은 쉬운 일이 아닙니다.

이러한 이유로 아래 링크에서 보듯 많은 자원봉사자들에 의해 많은 AUR Helper 패키지들이 개발, 공개하고 있으며 이를 많은 이들이 사용되고 있습니다.

많은 AUR Helper들이 존재합니다만 패키지 관리의 편의성 때문에 특히 AUR Wrapper 패키지들을 사용하고 있습니다.

AUR Wrapper로 과거에는 yaourt가 인기 AUR Wrapper 패키지로 널리 사용되었으나 현재 유지보수가 중단되어 프로그램의 수명이 다했습니다.

 

그래서 대체 AUR Wrapper 패키지를 찾아야 하는데 널리 사용되는 AUR Wrapper 패키지들로 다음과 같은 것들이 있습니다.

aura, pacaur, pakku, paru, pikaur, trizenm, yay

 

보다 많은 프로그램들은 위 링크에서 참고하시기 바랍니다.

 


여기서는 아치 유저들이 가장 널리 사용하는 yay, paru를 설치하는 방법에 대해 알아보도록 하겠습니다.

 

yay 설치

이하 yay 설치 과정은 시스템 언어가 영어일 때 진행 과정입니다.

시스템 언어가 한글로 설정되어 있을 때의 진행과정은 아래 paru 설치 과정을 참고하시기 바랍니다.

 

시스템 패키지 업데이트

[study@study-virtualbox ~]$ sudo pacman -Syu

먼저 위 명령을 실행하여 시스템 내 패키지들을 업그레이드해줍니다.

 

[study@study-virtualbox ~]$ sudo pacman -Syu
:: Synchronizing package databases...
 core                  136.2 KiB   231 KiB/s 00:01 [######################] 100%
 extra                1569.7 KiB  6.66 MiB/s 00:00 [######################] 100%
 community               5.6 MiB  10.9 MiB/s 00:01 [######################] 100%
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (23) alsa-card-profiles-1:0.3.33-1  e2fsprogs-1.46.3-3  gegl-0.4.30-6
              gst-plugin-pipewire-1:0.3.33-1  gst-plugins-bad-1.18.4-11
              gst-plugins-bad-libs-1.18.4-11  imagemagick-7.1.0.4-2
              libinput-1.18.1-1  libvirt-1:7.6.0-1  linux-5.13.8.arch1-1
              mpfr-4.1.0.p13-1  openexr-3.1.1-1  pcsclite-1.9.2-2
              pipewire-1:0.3.33-1  pipewire-alsa-1:0.3.33-1
              pipewire-jack-1:0.3.33-1  pipewire-media-session-1:0.3.33-1
              pipewire-pulse-1:0.3.33-1  udisks2-2.9.3-1  util-linux-2.37.1-3
              util-linux-libs-2.37.1-3  xorg-server-1.20.13-2
              xorg-server-common-1.20.13-2

Total Download Size:   149.59 MiB
Total Installed Size:  255.53 MiB
Net Upgrade Size:       -1.04 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages...
 alsa-card-profil...    26.4 KiB  1554 KiB/s 00:00 [######################] 100%
 util-linux-libs-...   411.9 KiB  8.74 MiB/s 00:00 [######################] 100%
 e2fsprogs-1.46.3...  1195.9 KiB  9.98 MiB/s 00:00 [######################] 100%
 openexr-3.1.1-1-...  1142.7 KiB  6.97 MiB/s 00:00 [######################] 100%
 mpfr-4.1.0.p13-1...   403.9 KiB  6.16 MiB/s 00:00 [######################] 100%
 gegl-0.4.30-6-x86_64    2.1 MiB  7.93 MiB/s 00:00 [######################] 100%
 util-linux-2.37....     2.5 MiB  10.5 MiB/s 00:00 [######################] 100%
 pipewire-1:0.3.3...  1325.5 KiB  10.2 MiB/s 00:00 [######################] 100%
 pipewire-media-s...   105.5 KiB  1851 KiB/s 00:00 [######################] 100%
 gst-plugin-pipew...    43.3 KiB  3.25 MiB/s 00:00 [######################] 100%
 gst-plugins-bad-...  2028.2 KiB  9.61 MiB/s 00:00 [######################] 100%
 imagemagick-7.1....     2.5 MiB  8.93 MiB/s 00:00 [######################] 100%
 gst-plugins-bad-...  1048.0 KiB  10.2 MiB/s 00:00 [######################] 100%
 libinput-1.18.1-...   285.6 KiB  4.89 MiB/s 00:00 [######################] 100%
 libvirt-1:7.6.0-...     7.5 MiB  9.44 MiB/s 00:01 [######################] 100%
 linux-5.13.8.arc...   124.4 MiB  9.83 MiB/s 00:13 [######################] 100%
 pcsclite-1.9.2-2...    99.3 KiB  5.70 MiB/s 00:00 [######################] 100%
 pipewire-alsa-1:...     4.5 KiB   455 KiB/s 00:00 [######################] 100%
 pipewire-jack-1:...    95.5 KiB  2.52 MiB/s 00:00 [######################] 100%
 pipewire-pulse-1...   129.7 KiB  1777 KiB/s 00:00 [######################] 100%
 udisks2-2.9.3-1-...   986.1 KiB  8.03 MiB/s 00:00 [######################] 100%
 xorg-server-comm...    27.7 KiB  2.71 MiB/s 00:00 [######################] 100%
 xorg-server-1.20...  1425.3 KiB  10.2 MiB/s 00:00 [######################] 100%
 Total (23/23)         149.6 MiB  9.44 MiB/s 00:16 [######################] 100%
(23/23) checking keys in keyring                   [######################] 100%
(23/23) checking package integrity                 [######################] 100%
(23/23) loading package files                      [######################] 100%
(23/23) checking for file conflicts                [######################] 100%
(23/23) checking available disk space              [######################] 100%
:: Running pre-transaction hooks...
(1/1) Removing linux initcpios...
:: Processing package changes...
( 1/23) upgrading alsa-card-profiles               [######################] 100%
( 2/23) upgrading util-linux-libs                  [######################] 100%
( 3/23) upgrading e2fsprogs                        [######################] 100%
( 4/23) upgrading openexr                          [######################] 100%
( 5/23) upgrading mpfr                             [######################] 100%
( 6/23) upgrading gegl                             [######################] 100%
( 7/23) upgrading util-linux                       [######################] 100%
( 8/23) upgrading pipewire                         [######################] 100%
( 9/23) upgrading pipewire-media-session           [######################] 100%
(10/23) upgrading gst-plugin-pipewire              [######################] 100%
(11/23) upgrading gst-plugins-bad-libs             [######################] 100%
(12/23) upgrading imagemagick                      [######################] 100%
(13/23) upgrading gst-plugins-bad                  [######################] 100%
(14/23) upgrading libinput                         [######################] 100%
(15/23) upgrading libvirt                          [######################] 100%
(16/23) upgrading linux                            [######################] 100%
(17/23) upgrading pcsclite                         [######################] 100%
(18/23) upgrading pipewire-alsa                    [######################] 100%
(19/23) upgrading pipewire-jack                    [######################] 100%
(20/23) upgrading pipewire-pulse                   [######################] 100%
(21/23) upgrading udisks2                          [######################] 100%
(22/23) upgrading xorg-server-common               [######################] 100%
(23/23) upgrading xorg-server                      [######################] 100%
:: Running post-transaction hooks...
( 1/11) Creating system user accounts...
( 2/11) Reloading system manager configuration...
( 3/11) Applying kernel sysctl settings...
( 4/11) Creating temporary files...
( 5/11) Reloading device manager configuration...
( 6/11) Arming ConditionNeedsUpdate...
( 7/11) Updating module dependencies...
( 8/11) Updating linux initcpios...
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 5.13.8-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 5.13.8-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [keyboard]
==> WARNING: Possibly missing firmware for module: xhci_pci
  -> Running build hook: [keymap]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
( 9/11) Reloading system bus configuration...
(10/11) Warn about old perl modules
(11/11) Updating the info directory file...
[study@study-virtualbox ~]$

위는 아치 시스템 패키지 전체 업그레이드 과정의 예입니다.

 

필수 패키지 설치

[study@study-virtualbox ~]$ sudo pacman --needed -S base-devel git

AUR Wrapper를 설치하기 위한 필수 개발 도구 설치 명령어입니다.

 

[study@study-virtualbox ~]$ sudo pacman --needed -S base-devel git
warning: autoconf-2.71-1 is up to date -- skipping
warning: automake-1.16.3-1 is up to date -- skipping
warning: binutils-2.36.1-3 is up to date -- skipping
warning: bison-3.7.6-1 is up to date -- skipping
warning: fakeroot-1.25.3-2 is up to date -- skipping
warning: file-5.40-5 is up to date -- skipping
warning: findutils-4.8.0-1 is up to date -- skipping
warning: flex-2.6.4-3 is up to date -- skipping
warning: gawk-5.1.0-1 is up to date -- skipping
warning: gcc-11.1.0-1 is up to date -- skipping
warning: gettext-0.21-1 is up to date -- skipping
warning: grep-3.6-1 is up to date -- skipping
warning: groff-1.22.4-6 is up to date -- skipping
warning: gzip-1.10-3 is up to date -- skipping
warning: libtool-2.4.6+42+gb88cebd5-16 is up to date -- skipping
warning: m4-1.4.19-1 is up to date -- skipping
warning: make-4.3-3 is up to date -- skipping
warning: pacman-6.0.0-5 is up to date -- skipping
warning: patch-2.7.6-8 is up to date -- skipping
warning: pkgconf-1.7.3-1 is up to date -- skipping
warning: sed-4.8-1 is up to date -- skipping
warning: sudo-1.9.7.p2-1 is up to date -- skipping
warning: texinfo-6.8-1 is up to date -- skipping
warning: which-2.21-5 is up to date -- skipping
resolving dependencies...
looking for conflicting packages...

Packages (4) perl-error-0.17029-3  perl-mailtools-2.21-5  perl-timedate-2.33-3
             git-2.32.0-1

Total Download Size:    5.98 MiB
Total Installed Size:  32.52 MiB
:: Proceed with installation? [Y/n] y
:: Retrieving packages...
 perl-error-0.170...    21.8 KiB   346 KiB/s 00:00 [######################] 100%
 perl-timedate-2....    35.8 KiB  2.69 MiB/s 00:00 [######################] 100%
 perl-mailtools-2...    62.2 KiB  3.80 MiB/s 00:00 [######################] 100%
 git-2.32.0-1-x86_64     5.9 MiB  10.2 MiB/s 00:01 [######################] 100%
 Total (4/4)             6.0 MiB  8.54 MiB/s 00:01 [######################] 100%
(4/4) checking keys in keyring                     [######################] 100%
(4/4) checking package integrity                   [######################] 100%
(4/4) loading package files                        [######################] 100%
(4/4) checking for file conflicts                  [######################] 100%
(4/4) checking available disk space                [######################] 100%
:: Processing package changes...
(1/4) installing perl-error                        [######################] 100%
(2/4) installing perl-timedate                     [######################] 100%
(3/4) installing perl-mailtools                    [######################] 100%
(4/4) installing git                               [######################] 100%
Optional dependencies for git
    tk: gitk and git gui
    perl-libwww: git svn
    perl-term-readkey: git svn and interactive.singlekey setting
    perl-io-socket-ssl: git send-email TLS support
    perl-authen-sasl: git send-email TLS support
    perl-mediawiki-api: git mediawiki support
    perl-datetime-format-iso8601: git mediawiki support
    perl-lwp-protocol-https: git mediawiki https support
    perl-cgi: gitweb (web interface) support
    python: git svn & git p4 [installed]
    subversion: git svn
    org.freedesktop.secrets: keyring credential helper [installed]
    libsecret: libsecret credential helper [installed]
:: Running post-transaction hooks...
(1/4) Creating system user accounts...
Creating group git with gid 967.
Creating user git (git daemon user) with uid 967 and gid 967.
(2/4) Reloading system manager configuration...
(3/4) Arming ConditionNeedsUpdate...
(4/4) Warn about old perl modules
[study@study-virtualbox ~]$

제 아치 리눅스 설치 연재를 그대로 따라오신 분들은 위처럼 base-devel 패키지 그룹 안에 포함된 24개의 패키지들이 이미 설치되어 있을 것입니다.

 

AUR의 패키지들은 대부분 git으로 관리됩니다. 따라서 git 패키지를 설치해주어야 합니다.

 

AUR 관리 디렉터리 생성 및 진입

[study@study-virtualbox ~]$ mkdir aur
[study@study-virtualbox ~]$ cd aur
[study@study-virtualbox aur]$

AUR 패키지를 다운받아 관리할 디렉터리를 생성해줍니다.

적당한 곳에 생성해주시면 되는데 저는 사용자 홈 디렉터리 안에 aur이라는 디렉터리를 생성해주었습니다.

디렉터리를 생성한 다음 해당 디렉터리에 진입합니다.

 

yay 설치

 

yay의 AUR 홈페이지는 위 링크와 같습니다.

위 홈페이지에 따르면 Git Clone URL은  https://aur.archlinux.org/yay.git 입니다.

이 주소를 이용해 아래처럼 yay의 깃 저장소를 복제(clone)해줍니다.

 

[study@study-virtualbox aur]$ git clone https://aur.archlinux.org/yay.git
Cloning into 'yay'...
remote: Enumerating objects: 398, done.
remote: Counting objects: 100% (398/398), done.
remote: Compressing objects: 100% (294/294), done.
remote: Total 398 (delta 101), reused 397 (delta 101), pack-reused 0
Receiving objects: 100% (398/398), 83.05 KiB | 314.00 KiB/s, done.
Resolving deltas: 100% (101/101), done.
[study@study-virtualbox aur]$

깃 저장소가 위 과정처럼 복제(clone)됩니다.

 

[study@study-virtualbox aur]$ ls
yay
[study@study-virtualbox aur]$

aur 디렉터리 안에 yay라는 디렉터리가 생성되었습니다.

 

[study@study-virtualbox aur]$ ls -l
total 4
drwxr-xr-x 3 study study 4096 Aug  7 02:08 yay
[study@study-virtualbox aur]$

위는 보다 자세한 정보입니다.

 

[study@study-virtualbox aur]$ sudo git clone https://aur.archlinux.org/yay.git
[sudo] password for study: 
Cloning into 'yay'...

- 생략 -

[study@study-virtualbox aur]$

위처럼 sudo 권한으로 실행할 수도 있는데 그럴 경우 이후 진행될  makepkg -si 작업에 권한 오류가 발생합니다.

따라서 sudo 권한으로 실행해서는 안됩니다.

 

[study@study-virtualbox aur]$ ls -l
total 4
drwxr-xr-x 3 root root 4096 Aug  7 02:08 yay
[study@study-virtualbox aur]$

만약 sudo 권한으로 실행하면 일반적으로 디렉터리의 소유자와 소유 그룹이 root로 됩니다.

이 root 권한 때문에 makepkg -si 명령이 정상적으로 진행되지 않습니다.

 

[study@study-virtualbox aur]$ sudo chown -R study:study yay
[sudo] password for study: 
[study@study-virtualbox aur]$ ls -l
total 4
drwxr-xr-x 3 study study 4096 Aug  7 02:08 yay
[study@study-virtualbox aur]$

따라서 sudo 권한으로 깃 저장소를 복제했을 경우  위처럼 소유권을 변경해주어야 합니다.

 

[study@study-virtualbox yay]$ ls -alF
total 24
drwxr-xr-x 3 root  root  4096 Aug  7 02:08 ./
drwxr-xr-x 3 study study 4096 Aug  7 02:08 ../
drwxr-xr-x 8 root  root  4096 Aug  7 02:08 .git/
-rw-r--r-- 1 root  root    46 Aug  7 02:08 .gitignore
-rw-r--r-- 1 root  root  1315 Aug  7 02:08 PKGBUILD
-rw-r--r-- 1 root  root   521 Aug  7 02:08 .SRCINFO
[study@study-virtualbox yay]$

복제된 yay 디렉터리에 들어가 내용물을 확인해보면 PKGBULD 파일이 있습니다.

 

[study@study-virtualbox yay]$ cat -n PKGBUILD
     1	# Maintainer: Jguer <joaogg3@gmail.com>
     2	pkgname=yay
     3	pkgver=10.3.1
     4	pkgrel=1
     5	pkgdesc="Yet another yogurt. Pacman wrapper and AUR helper written in go."
     6	arch=('i686' 'pentium4' 'x86_64' 'arm' 'armv7h' 'armv6h' 'aarch64')
     7	url="https://github.com/Jguer/yay"
     8	license=('GPL3')
     9	depends=(
    10	  'pacman>5'
    11	  'git'
    12	)
    13	optdepends=(
    14	  'sudo'
    15	)
    16	makedepends=(
    17	  'go'
    18	)
    19	source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Jguer/yay/archive/v${pkgver}.tar.gz")
    20	sha256sums=('d8870f172b64b23f1433085cb7babd68330f77cf973eeb05cd99e04e202d3c47')
    21	
    22	# With pacman 6 arriving a rebuild of yay will be necessary, if you upgrade pacman without upgrading yay at the same time, yay will not run after.
    23	# I'm bumping the pkgrel so it shows up on the upgrade list (and will do so when pacman transitions from staging->core)
    24	# In case you end up with a non-functioning yay after the upgrade follow the
    25	# instructions on the github page
    26	
    27	build() {
    28	  export GOPATH="$srcdir"/gopath
    29	  export CGO_CPPFLAGS="${CPPFLAGS}"
    30	  export CGO_CFLAGS="${CFLAGS}"
    31	  export CGO_CXXFLAGS="${CXXFLAGS}"
    32	  export CGO_LDFLAGS="${LDFLAGS}"
    33	  export CGO_ENABLED=1
    34	
    35	  cd "$srcdir/$pkgname-$pkgver"
    36	  make VERSION=$pkgver DESTDIR="$pkgdir" PREFIX="/usr" build
    37	}
    38	
    39	package() {
    40	  cd "$srcdir/$pkgname-$pkgver"
    41	  make VERSION=$pkgver DESTDIR="$pkgdir" PREFIX="/usr" install
    42	}
[study@study-virtualbox yay]$

위 내용을 토대로 패키지를 빌드gkrp ehlqslek.

그 얘기는 이 내용을 수정하여 사용자 입맛대로 커스텀하여 빌드, 설치할 수 있다는 말이 됩니다.

그러나 초보자는 이 파일을 건드리지 말고 그대로 빌드하도록 합시다.

 

[study@study-virtualbox yay]$ makepkg -si

깃 저장소를 복제한 디렉터리 안에서 위 명령을 실행해줍니다.

makepkg는 패키지 자동 생성 도구입니다.

-s 옵션은 빌드, 설치에 필요한 누락된 종속성 패키지를 자동으로 확인하여 pacman으로 설치합니다.

-i 옵션은 성공적으로 빌드된 패키지를 이어서 바로 설치합니다.

 

[study@study-virtualbox yay]$ makepkg -si
==> Making package: yay 10.3.1-1 (Sat 07 Aug 2021 06:35:45 AM UTC)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Installing missing dependencies...
resolving dependencies...
looking for conflicting packages...

Packages (1) go-2:1.16.7-1

Total Download Size:   133.24 MiB
Total Installed Size:  597.77 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 go-2:1.16.7-1-x86_64  133.2 MiB  10.6 MiB/s 00:13 [######################] 100%
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) installing go                                [######################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
==> Retrieving sources...
  -> Downloading yay-10.3.1.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   118  100   118    0     0    462      0 --:--:-- --:--:-- --:--:--   462
100  350k  100  350k    0     0   618k      0 --:--:-- --:--:-- --:--:-- 4125k
==> Validating source files with sha256sums...
    yay-10.3.1.tar.gz ... Passed
==> Extracting sources...
  -> Extracting yay-10.3.1.tar.gz with bsdtar
==> Starting build()...
go build -trimpath -mod=readonly -modcacherw -ldflags '-X "main.yayVersion=10.3.1" -X "main.localePath=/usr/share/locale/" -linkmode=external' -buildmode=pie -o yay
go: downloading github.com/Jguer/aur v1.0.0
go: downloading github.com/Jguer/go-alpm/v2 v2.0.6
go: downloading github.com/Morganamilo/go-pacmanconf v0.0.0-20210502114700-cff030e927a5
go: downloading github.com/Morganamilo/go-srcinfo v1.0.0
go: downloading github.com/leonelquinteros/gotext v1.5.0
go: downloading github.com/pkg/errors v0.9.1
go: downloading golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b
go: downloading github.com/stretchr/testify v1.7.0
go: downloading golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c
go: downloading golang.org/x/text v0.3.6
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
==> Entering fakeroot environment...
==> Starting package()...
msgfmt po/pt.po -o po/pt.mo
msgfmt po/pt_BR.po -o po/pt_BR.mo
msgfmt po/en.po -o po/en.mo
msgfmt po/es.po -o po/es.mo
msgfmt po/eu.po -o po/eu.mo
msgfmt po/fr_FR.po -o po/fr_FR.mo
msgfmt po/ja.po -o po/ja.mo
msgfmt po/pl_PL.po -o po/pl_PL.mo
msgfmt po/ru_RU.po -o po/ru_RU.mo
msgfmt po/zh_CN.po -o po/zh_CN.mo
msgfmt po/ko.po -o po/ko.mo
install -Dm755 yay /home/study/aur/yay/pkg/yay/usr/bin/yay
install -Dm644 doc/yay.8 /home/study/aur/yay/pkg/yay/usr/share/man/man8/yay.8
install -Dm644 completions/bash /home/study/aur/yay/pkg/yay/usr/share/bash-completion/completions/yay
install -Dm644 completions/zsh /home/study/aur/yay/pkg/yay/usr/share/zsh/site-functions/_yay
install -Dm644 completions/fish /home/study/aur/yay/pkg/yay/usr/share/fish/vendor_completions.d/yay.fish
for lang in pt pt_BR en es eu fr_FR ja pl_PL ru_RU zh_CN ko; do \
	install -Dm644 po/${lang}.mo /home/study/aur/yay/pkg/yay/usr/share/locale/$lang/LC_MESSAGES/yay.mo; \
done
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "yay"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: yay 10.3.1-1 (Sat 07 Aug 2021 06:37:10 AM UTC)
==> Installing package yay with pacman -U...
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (1) yay-10.3.1-1

Total Installed Size:  7.99 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
:: Processing package changes...
(1/1) installing yay                               [######################] 100%
Optional dependencies for yay
    sudo [installed]
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
[study@study-virtualbox yay]$

위와 같은 과정을 거쳐 yay가 빌드, 설치됩니다.

 

[study@study-virtualbox ~]$ yay -V
yay v10.3.1 - libalpm v13.0.0
[study@study-virtualbox ~]$

설치된 후 버전을 확인합니다.


paru 설치

이하 paru 설치 과정은 시스템 언어가 한글일 때 진행 과정입니다.

시스템 언어가 영어로 설정되어 있을 때의 진행과정은 아래 yay 설치 과정을 참고하시기 바랍니다

 

시스템 패키지 업데이트

[study@study-virtualbox ~]$ sudo pacman -Syu

시스템 패키지를 전체 업그레이드해줍니다.

 

[study@study-virtualbox ~]$ sudo pacman -Syu
[sudo] study 암호: 
:: 꾸러미 데이터베이스 동기화 중...
 core                  136.2 KiB   973 KiB/s 00:00 [######################] 100%
 extra                1569.8 KiB  6.31 MiB/s 00:00 [######################] 100%
 community               5.6 MiB  8.70 MiB/s 00:01 [######################] 100%
:: 전체 시스템 업그레이드 시작 중...
:: jack를 extra/jack2로 바꾸시겠습니까? [Y/n] y
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (113) alsa-card-profiles-1:0.3.33-1  aom-3.1.2-1
             archlinux-keyring-20210802-1  audit-3.0.3-1  brltty-6.3-4
             btrfs-progs-5.13-1  ca-certificates-mozilla-3.68-1
             cdrtools-3.02a09-5  celt-0.11.3-4  curl-7.78.0-1
             dbus-python-1.2.18-1  dtc-1.6.1-1  e2fsprogs-1.46.3-3
             evince-40.4-1  fluidsynth-2.2.2-1  freerdp-2:2.4.0-1
             gdk-pixbuf2-2.42.6-2  gdm-40.1-1  gegl-0.4.30-6
             gnome-desktop-1:40.3-1  gnome-disk-utility-40.2-1
             gnome-shell-1:40.3-1  gnome-shell-extensions-40.3-1
             gnome-sudoku-40.2-1  gnupg-2.2.29-1  graphviz-2.48.0-2
             gst-plugin-pipewire-1:0.3.33-1  gst-plugins-bad-1.18.4-11
             gst-plugins-bad-libs-1.18.4-11  gtk3-1:3.24.30-2  hwloc-2.5.0-1
             imagemagick-7.1.0.4-2  imath-3.1.2-1  imlib2-1.7.2-1
             iputils-20210722-1  ipython-7.26.0-1  jack-0.125.0-9 [제거]
             jack2-1.9.19-2  js78-78.12.0-1  ldb-2:2.3.0-1  less-1:590-1
             libadwaita-1.0.0alpha.2-1  libbytesize-2.6-1  libcap-ng-0.8.2-3
             libfreeaptx-0.1.1-1  libgdm-40.1-1  libidn-1.38-1  libidn2-2.3.2-1
             libinput-1.18.1-1  libldap-2.4.59-2  libmm-glib-1.16.8-1
             libnghttp2-1.44.0-1  libnm-1.32.6-1  libpulse-15.0-1
             libvirt-1:7.6.0-1  libwacom-1.11-1  libxfont2-2.0.5-1
             libxft-2.3.4-1  libxmlb-0.3.2-1  linux-5.13.8.arch1-1
             linux-firmware-20210716.b7c134f-1  llvm-libs-12.0.1-2
             man-pages-5.12-2  mesa-21.1.6-1  meson-0.59.0-2  mkinitcpio-30-2
             mpfr-4.1.0.p13-1  mpg123-1.28.2-1  mtools-1:4.0.34-1
             mutter-40.3-1  networkmanager-1.32.6-1
             noto-fonts-emoji-20210625-1  nss-3.68-1  openexr-3.1.1-1
             ostree-2021.3-1  pacman-6.0.0-5  pacman-mirrorlist-20210718-1
             pcsclite-1.9.2-2  perl-5.34.0-2  pipewire-1:0.3.33-1
             pipewire-media-session-1:0.3.33-1  polari-40.1-1
             poppler-21.08.0-1  poppler-glib-21.08.0-1  pulseaudio-15.0-1
             pulseaudio-bluetooth-15.0-1  python-astroid-2.6.2-1
             python-more-itertools-8.8.0-1  python-pylint-2.8.2-1
             python-requests-2.26.0-1  python-setuptools-1:57.4.0-1
             python-simplejson-3.17.3-1  python-sphinx-4.1.2-1  ruby-3.0.2-1
             ruby-rb-fsevent-0.11.0-1  smbclient-4.14.6-1  sudo-1.9.7.p2-1
             systemd-249.2-1  systemd-libs-249.2-1  systemd-sysvcompat-249.2-1
             talloc-2.3.3-1  tdb-1.4.5-1  tevent-1:0.11.0-1  udisks2-2.9.3-1
             util-linux-2.37.1-3  util-linux-libs-2.37.1-3
             vulkan-headers-1:1.2.185-1  vulkan-icd-loader-1.2.185-1
             webkit2gtk-2.32.3-1  xorg-server-1.20.13-2
             xorg-server-common-1.20.13-2  xorg-xwayland-21.1.2-1  zimg-3.0.2-1

총 다운로드 크기:       510.09 MiB
총 설치 크기:          1806.66 MiB
알짜 업그레이드 크기:    57.26 MiB

:: 설치를 진행하시겠습니까? [Y/n] y
:: 꾸러미 가져오는 중...
 alsa-card-profil...    26.4 KiB   107 KiB/s 00:00 [######################] 100%
 aom-3.1.2-1-x86_64      2.5 MiB  8.09 MiB/s 00:00 [######################] 100%
 archlinux-keyrin...   959.1 KiB  4.20 MiB/s 00:00 [######################] 100%
 
 - 생략 - 
 
 smbclient-4.14.6...     6.9 MiB  8.24 MiB/s 00:01 [######################] 100%
 sudo-1.9.7.p2-1-...  1548.7 KiB  6.75 MiB/s 00:00 [######################] 100%
 systemd-sysvcomp...     5.6 KiB  84.5 KiB/s 00:00 [######################] 100%
 Total (112/112)       510.1 MiB  3.43 MiB/s 02:29 [######################] 100%
(112/112) 키링의 키를 검사 중                      [######################] 100%
필요한 키 다운로드 중...
:: PGP 키 E0959FEA8B550539, "George Rawlinson <grawlinson@archlinux.org>"를 들여오겠습니까? [Y/n] y
(112/112) 꾸러미 무결성 검사 중                    [######################] 100%
(112/112) 꾸러미 파일 불러오는 중                  [######################] 100%
(112/112) 파일 충돌 검사 중                        [######################] 100%
(113/113) 사용 가능한 디스크 공간 검사 중          [######################] 100%
:: 전처리 훅들을 실행 중...
(1/1) Removing linux initcpios...
:: 꾸러미 변경사항을 처리 중...
(1/1) 삭제 중 jack                                 [######################] 100%
(  1/112) 업그레이드 중 alsa-card-profiles         [######################] 100%
(  2/112) 업그레이드 중 aom                        [######################] 100%
(  3/112) 업그레이드 중 archlinux-keyring          [######################] 100%
==> archlinux.gpg에서 키 덧붙이는 중...
==> 키 모음에 있는 신뢰하는 키를 자체적으로 서명하는 중...
gpg: checking the trustdb
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10

- 생략 - 

gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 1EB2638FF56C0C53: no user ID for key signature packet of class 10
gpg: key 1EB2638FF56C0C53: no user ID for key signature packet of class 10
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   6  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1  valid:   6  signed:  81  trust: 1-, 0q, 0n, 5m, 0f, 0u
gpg: depth: 2  valid:  76  signed:  25  trust: 76-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2021-10-12
  -> Locally signed 1 keys.
==> 소유자 신뢰 값 가져오는 중...
gpg: setting ownertrust to 4
==> 키 모음에 있는 폐기된 키들을 비활성화하는 중...
gpg: checking the trustdb
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10

- 생략 - 

gpg: next trustdb check due at 2021-10-12
  -> Disabled 3 keys.
==> 신뢰 데이터베이스 업그레이드 중...
gpg: next trustdb check due at 2021-10-12
(  4/112) 업그레이드 중 libcap-ng                  [######################] 100%
(  5/112) 업그레이드 중 util-linux-libs            [######################] 100%
(  6/112) 업그레이드 중 e2fsprogs                  [######################] 100%
(  7/112) 업그레이드 중 libldap                    [######################] 100%

- 생략 - 

( 22/112) 업그레이드 중 gdk-pixbuf2                [######################] 100%
gdk-pixbuf2에 대한 새로운 선택 의존성
    libavif: Load .avif [설치함]
    libheif: Load .heif, .heic, and .avif [설치함]
    libopenraw: Load .dng, .cr2, .crw, .nef, .orf, .pef, .arw, .erf, .mrw, and
    .raf
    librsvg: Load .svg, .svgz, and .svg.gz [설치함]
    libwmf: Load .wmf and .apm
    webp-pixbuf-loader: Load .webp
( 23/112) 업그레이드 중 llvm-libs                  [######################] 100%

- 생략 - 

( 41/112) 설치 중 jack2                            [######################] 100%
jack2에 대한 선택 의존성
    a2jmidid: for ALSA MIDI to JACK MIDI bridging
    libffado: for firewire support using FFADO
    jack2-dbus: for dbus integration
    realtime-privileges: for realtime privileges
    zita-ajbridge: for using multiple ALSA devices
( 42/112) 업그레이드 중 fluidsynth                 [######################] 100%

- 생략 - 

( 48/112) 업그레이드 중 libinput                   [######################] 100%
( 49/112) 설치 중 libfreeaptx                      [######################] 100%
( 50/112) 업그레이드 중 pipewire                   [######################] 100%

- 생략 - 

( 74/112) 업그레이드 중 graphviz                   [######################] 100%
Warning: Could not load "/usr/lib/graphviz/libgvplugin_gdk.so.6" - It was found, so perhaps one of its dependents was not.  Try ldd.
Warning: Could not load "/usr/lib/graphviz/libgvplugin_gtk.so.6" - It was found, so perhaps one of its dependents was not.  Try ldd.
Warning: Could not load "/usr/lib/graphviz/libgvplugin_gdk.so.6" - It was found, so perhaps one of its dependents was not.  Try ldd.
Warning: Could not load "/usr/lib/graphviz/libgvplugin_gtk.so.6" - It was found, so perhaps one of its dependents was not.  Try ldd.
( 75/112) 업그레이드 중 mpg123                     [######################] 100%

- 생략 - 

(100/112) 업그레이드 중 pacman-mirrorlist          [######################] 100%
경고: /etc/pacman.d/mirrorlist.pacnew로 /etc/pacman.d/mirrorlist를 설치합니다
(101/112) 업그레이드 중 pacman                     [######################] 100%

-생략 -

(110/112) 업그레이드 중 smbclient                  [######################] 100%
(111/112) 업그레이드 중 sudo                       [######################] 100%
(112/112) 업그레이드 중 systemd-sysvcompat         [######################] 100%
:: 후처리 훅들을 실행 중...
( 1/19) Creating system user accounts...
( 2/19) Updating journal message catalog...
( 3/19) Reloading system manager configuration...
( 4/19) Updating udev hardware database...
( 5/19) Applying kernel sysctl settings...
( 6/19) Creating temporary files...
( 7/19) Reloading device manager configuration...
( 8/19) Arming ConditionNeedsUpdate...
( 9/19) Rebuilding certificate stores...
(10/19) Updating module dependencies...
(11/19) Updating linux initcpios...
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 5.13.8-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 5.13.8-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: xhci_pci
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
(12/19) Reloading system bus configuration...
(13/19) Warn about old perl modules
(14/19) Updating fontconfig cache...
(15/19) Compiling GSettings XML schema files...
(16/19) Probing GTK3 input method modules...
(17/19) Updating icon theme caches...
(18/19) Updating the info directory file...
(19/19) Updating the desktop file MIME type cache...
[study@study-virtualbox ~]$

위 내용은 시스템 패키지 업그레이드 과정 예시입니다.

 

필수 패키지 설치

[study@study-virtualbox ~]$ sudo pacman --needed -S base-devel git

AUR Wrapper 설치에 필요한 필수 개발 도구를 설치합니다.

--needed 옵션을 사용하면 시스템에 설치되어 있지 않아 새로 설치할 필요가 있는 패키지만 설치합니다.

 

[study@study-virtualbox ~]$ sudo pacman --needed -S base-devel git
[sudo] study 암호: 
경고: autoconf-2.71-1는 최신 버전입니다 -- 건너뜀
경고: automake-1.16.3-1는 최신 버전입니다 -- 건너뜀
경고: binutils-2.36.1-3는 최신 버전입니다 -- 건너뜀
경고: bison-3.7.6-1는 최신 버전입니다 -- 건너뜀
경고: fakeroot-1.25.3-2는 최신 버전입니다 -- 건너뜀
경고: file-5.40-5는 최신 버전입니다 -- 건너뜀
경고: findutils-4.8.0-1는 최신 버전입니다 -- 건너뜀
경고: flex-2.6.4-3는 최신 버전입니다 -- 건너뜀
경고: gawk-5.1.0-1는 최신 버전입니다 -- 건너뜀
경고: gcc-11.1.0-1는 최신 버전입니다 -- 건너뜀
경고: gettext-0.21-1는 최신 버전입니다 -- 건너뜀
경고: grep-3.6-1는 최신 버전입니다 -- 건너뜀
경고: groff-1.22.4-6는 최신 버전입니다 -- 건너뜀
경고: gzip-1.10-3는 최신 버전입니다 -- 건너뜀
경고: libtool-2.4.6+42+gb88cebd5-16는 최신 버전입니다 -- 건너뜀
경고: m4-1.4.19-1는 최신 버전입니다 -- 건너뜀
경고: make-4.3-3는 최신 버전입니다 -- 건너뜀
경고: pacman-6.0.0-5는 최신 버전입니다 -- 건너뜀
경고: patch-2.7.6-8는 최신 버전입니다 -- 건너뜀
경고: pkgconf-1.7.3-1는 최신 버전입니다 -- 건너뜀
경고: sed-4.8-1는 최신 버전입니다 -- 건너뜀
경고: sudo-1.9.7.p2-1는 최신 버전입니다 -- 건너뜀
경고: texinfo-6.8-1는 최신 버전입니다 -- 건너뜀
경고: which-2.21-5는 최신 버전입니다 -- 건너뜀
경고: git-2.32.0-1는 최신 버전입니다 -- 건너뜀
 할 일이 없습니다
[study@study-virtualbox ~]$

 

[study@study-virtualbox ~]$ sudo pacman -S base-devel git
:: 24 개의 구성원이 base-devel 모음에 있습니다:
:: core 저장소
   1) autoconf  2) automake  3) binutils  4) bison  5) fakeroot  6) file
   7) findutils  8) flex  9) gawk  10) gcc  11) gettext  12) grep  13) groff
   14) gzip  15) libtool  16) m4  17) make  18) pacman  19) patch  20) pkgconf
   21) sed  22) sudo  23) texinfo  24) which

선택을 입력하십시오. (기본값=all): 
경고: autoconf-2.71-1는 최신 버전입니다. -- 재설치
경고: automake-1.16.3-1는 최신 버전입니다. -- 재설치
경고: binutils-2.36.1-3는 최신 버전입니다. -- 재설치
경고: bison-3.7.6-1는 최신 버전입니다. -- 재설치
경고: fakeroot-1.25.3-2는 최신 버전입니다. -- 재설치
경고: file-5.40-5는 최신 버전입니다. -- 재설치
경고: findutils-4.8.0-1는 최신 버전입니다. -- 재설치
경고: flex-2.6.4-3는 최신 버전입니다. -- 재설치
경고: gawk-5.1.0-1는 최신 버전입니다. -- 재설치
경고: gcc-11.1.0-1는 최신 버전입니다. -- 재설치
경고: gettext-0.21-1는 최신 버전입니다. -- 재설치
경고: grep-3.6-1는 최신 버전입니다. -- 재설치
경고: groff-1.22.4-6는 최신 버전입니다. -- 재설치
경고: gzip-1.10-3는 최신 버전입니다. -- 재설치
경고: libtool-2.4.6+42+gb88cebd5-16는 최신 버전입니다. -- 재설치
경고: m4-1.4.19-1는 최신 버전입니다. -- 재설치
경고: make-4.3-3는 최신 버전입니다. -- 재설치
경고: pacman-6.0.0-5는 최신 버전입니다. -- 재설치
경고: patch-2.7.6-8는 최신 버전입니다. -- 재설치
경고: pkgconf-1.7.3-1는 최신 버전입니다. -- 재설치
경고: sed-4.8-1는 최신 버전입니다. -- 재설치
경고: sudo-1.9.7.p2-1는 최신 버전입니다. -- 재설치
경고: texinfo-6.8-1는 최신 버전입니다. -- 재설치
경고: which-2.21-5는 최신 버전입니다. -- 재설치
경고: git-2.32.0-1는 최신 버전입니다. -- 재설치
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (25) autoconf-2.71-1  automake-1.16.3-1  binutils-2.36.1-3
            bison-3.7.6-1  fakeroot-1.25.3-2  file-5.40-5  findutils-4.8.0-1
            flex-2.6.4-3  gawk-5.1.0-1  gcc-11.1.0-1  gettext-0.21-1
            git-2.32.0-1  grep-3.6-1  groff-1.22.4-6  gzip-1.10-3
            libtool-2.4.6+42+gb88cebd5-16  m4-1.4.19-1  make-4.3-3
            pacman-6.0.0-5  patch-2.7.6-8  pkgconf-1.7.3-1  sed-4.8-1
            sudo-1.9.7.p2-1  texinfo-6.8-1  which-2.21-5

총 설치 크기:          289.85 MiB
알짜 업그레이드 크기:    0.00 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
(25/25) 키링의 키를 검사 중                        [######################] 100%
(25/25) 꾸러미 무결성 검사 중                      [######################] 100%
(25/25) 꾸러미 파일 불러오는 중                    [######################] 100%
(25/25) 파일 충돌 검사 중                          [######################] 100%
(25/25) 사용 가능한 디스크 공간 검사 중            [######################] 100%
:: 꾸러미 변경사항을 처리 중...
( 1/25) 재설치 중 gawk                             [######################] 100%
( 2/25) 재설치 중 m4                               [######################] 100%
( 3/25) 재설치 중 autoconf                         [######################] 100%
( 4/25) 재설치 중 automake                         [######################] 100%
( 5/25) 재설치 중 findutils                        [######################] 100%
( 6/25) 재설치 중 binutils                         [######################] 100%
( 7/25) 재설치 중 bison                            [######################] 100%
( 8/25) 재설치 중 sed                              [######################] 100%
( 9/25) 재설치 중 file                             [######################] 100%
(10/25) 재설치 중 fakeroot                         [######################] 100%
(11/25) 재설치 중 flex                             [######################] 100%
(12/25) 재설치 중 gcc                              [######################] 100%
(13/25) 재설치 중 gettext                          [######################] 100%
(14/25) 재설치 중 grep                             [######################] 100%
(15/25) 재설치 중 groff                            [######################] 100%
(16/25) 재설치 중 gzip                             [######################] 100%
(17/25) 재설치 중 libtool                          [######################] 100%
(18/25) 재설치 중 texinfo                          [######################] 100%
(19/25) 재설치 중 make                             [######################] 100%
(20/25) 재설치 중 pacman                           [######################] 100%
(21/25) 재설치 중 patch                            [######################] 100%
(22/25) 재설치 중 pkgconf                          [######################] 100%
(23/25) 재설치 중 sudo                             [######################] 100%
(24/25) 재설치 중 which                            [######################] 100%
(25/25) 재설치 중 git                              [######################] 100%
:: 후처리 훅들을 실행 중...
(1/5) Creating system user accounts...
(2/5) Reloading system manager configuration...
(3/5) Creating temporary files...
(4/5) Arming ConditionNeedsUpdate...
(5/5) Updating the info directory file...
[study@study-virtualbox ~]$

--needed 옵션이 없으면 위 예시처럼 저장소 내 최신 버전으로 재설치됩니다.

 

AUR 관리 디렉터리 생성 및 진입

[study@study-virtualbox ~]$ mkdir aur
[study@study-virtualbox ~]$ cd aur
[study@study-virtualbox aur]$

AUR 패키지를 관리할 디렉터리를 생성하고 해당 패키지에 진입해줍니다.

 

paru 설치

위 링크는 paru의 AUR 홈페이지입니다.

위 홈페이지에 따르면 Git Clone URL은  https://aur.archlinux.org/paru.git 입니다.

이 주소를 이용해 아래처럼 paru의 깃 저장소를 복제(clone)해줍니다.

 

[study@study-virtualbox aur]$ git clone https://aur.archlinux.org/paru.git
'paru'에 복제합니다...
remote: Enumerating objects: 131, done.
remote: Counting objects: 100% (131/131), done.
remote: Compressing objects: 100% (91/91), done.
remote: Total 131 (delta 40), reused 131 (delta 40), pack-reused 0
오브젝트를 받는 중: 100% (131/131), 38.43 KiB | 447.00 KiB/s, 완료.
델타를 알아내는 중: 100% (40/40), 완료.
[study@study-virtualbox aur]$

깃 저장소가 위 과정처럼 복제(clone)됩니다.

 

[study@study-virtualbox aur]$ ls
paru
[study@study-virtualbox aur]$ ls -l
합계 4
drwxr-xr-x 3 study users 4096  8월  7 12:15 paru
[study@study-virtualbox aur]$ cd paru
[study@study-virtualbox paru]$ ls -alF
합계 10824
drwxr-xr-x 5 study users    4096  8월  7 12:32 ./
drwxr-xr-x 3 study users    4096  8월  7 12:15 ../
-rw-r--r-- 1 study users     633  8월  7 12:15 .SRCINFO
drwxr-xr-x 8 study users    4096  8월  7 12:15 .git/
-rw-r--r-- 1 study users    1627  8월  7 12:15 PKGBUILD
-rw-r--r-- 1 study users 2976355  8월  7 12:32 paru-1.8.0-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 study users 8073651  8월  7 12:20 paru-1.8.0.tar.gz
drwxr-xr-x 3 study users    4096  8월  7 12:31 pkg/
drwxr-xr-x 3 study users    4096  8월  7 12:20 src/
[study@study-virtualbox paru]$

aur 디렉터리 안에 paru 디렉터리가 생성되었습니다.

이번 환경에는 위 yay 설치 때와 달리 소유 그룹이 user로 다릅니다.

 

[study@study-virtualbox aur]$ groups
users wheel
[study@study-virtualbox aur]$

로그인한 해당 계정의 그룹을 확인해봅시다.

user와 wheel 그룹에 속합니다.

 

[study@study-virtualbox paru]$ cat -n PKGBUILD
     1	# Maintainer: Morgan <morganamilo@archlinux.org>
     2	pkgname=paru
     3	pkgver=1.8.0
     4	pkgrel=1
     5	pkgdesc='Feature packed AUR helper'
     6	url='https://github.com/morganamilo/paru'
     7	source=("$pkgname-$pkgver.tar.gz::https://github.com/Morganamilo/paru/archive/v$pkgver.tar.gz")
     8	backup=("etc/paru.conf")
     9	arch=('i686' 'pentium4' 'x86_64' 'arm' 'armv7h' 'armv6h' 'aarch64')
    10	license=('GPL3')
    11	makedepends=('cargo')
    12	depends=('git' 'pacman')
    13	optdepends=('asp: downloading repo pkgbuilds' 'bat: colored pkgbuild printing' 'devtools: build in chroot')
    14	sha256sums=('fa89d95f58351a2e614dccabfd5054c2a0ee358333dcf1496161094d5765d889')
    15	
    16	build () {
    17	  cd "$srcdir/$pkgname-$pkgver"
    18	
    19	  if pacman -T pacman-git > /dev/null; then
    20	    _features+="git,"
    21	  fi
    22	
    23	  if [[ $(rustc -V) == *"nightly"* ]]; then
    24	    _features+="backtrace,"
    25	  fi
    26	
    27	  if [[ $CARCH != x86_64 ]]; then
    28	    export CARGO_PROFILE_RELEASE_LTO=off
    29	  fi
    30	
    31	  cargo build --locked --features "${_features:-}" --release --target-dir target
    32	  ./scripts/mkmo locale/
    33	}
    34	
    35	package() {
    36	  cd "$srcdir/$pkgname-$pkgver"
    37	
    38	  install -Dm755 target/release/paru "${pkgdir}/usr/bin/paru"
    39	  install -Dm644 paru.conf "${pkgdir}/etc/paru.conf"
    40	
    41	  install -Dm644 man/paru.8 "$pkgdir/usr/share/man/man8/paru.8"
    42	  install -Dm644 man/paru.conf.5 "$pkgdir/usr/share/man/man5/paru.conf.5"
    43	
    44	  install -Dm644 completions/bash "${pkgdir}/usr/share/bash-completion/completions/paru.bash"
    45	  install -Dm644 completions/fish "${pkgdir}/usr/share/fish/vendor_completions.d/paru.fish"
    46	  install -Dm644 completions/zsh "${pkgdir}/usr/share/zsh/site-functions/_paru"
    47	
    48	  install -d "$pkgdir/usr/share/"
    49	  cp -r locale "$pkgdir/usr/share/"
    50	}
[study@study-virtualbox paru]$

위 내용을 토대로 빌드, 설치됩니다.

 

[study@study-virtualbox paru]$ makepkg -si
==> 꾸러미 만드는 중: paru 1.8.0-1 (2021년 08월 07일 (토) 오후 12시 19분 47초)
==> 실행 시간 의존성 검사중...
==> 빌드 시간 의존성 검사중...
==> 빠진 의존성 설치 중...
[sudo] study 암호: 
:: cargo에 대해 이용할 수 있는 2 제공자가 있습니다:
:: extra 저장소
   1) rust
:: community 저장소
   2) rustup

숫자를 입력하십시오. (기본값=1): 
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) rust-1:1.54.0-1

총 다운로드 크기:   81.27 MiB
총 설치 크기:      475.32 MiB
:: 설치를 진행하시겠습니까? [Y/n] 
:: 꾸러미 가져오는 중...
 rust-1:1.54.0-1-...    81.3 MiB  9.51 MiB/s 00:09 [######################] 100%
(1/1) 키링의 키를 검사 중                          [######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [######################] 100%
(1/1) 꾸러미 파일 불러오는 중                      [######################] 100%
(1/1) 파일 충돌 검사 중                            [######################] 100%
(1/1) 사용 가능한 디스크 공간 검사 중              [######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/1) 설치 중 rust                                 [######################] 100%
rust에 대한 선택 의존성
    lldb: rust-lldb script
    gdb: rust-gdb script
:: 후처리 훅들을 실행 중...
(1/1) Arming ConditionNeedsUpdate...
==> 원본 가져오는 중...
  -> paru-1.8.0.tar.gz 다운로드 중...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   124    0   124    0     0    440      0 --:--:-- --:--:-- --:--:--   441
100 7884k  100 7884k    0     0  6090k      0  0:00:01  0:00:01 --:--:-- 10.6M
==> source 파일을 sha256sums로 유효검사 중...
    paru-1.8.0.tar.gz ... 넘어감
==> 원본 추출 중...
  -> paru-1.8.0.tar.gz를 bsdtar로 추출 중
==> build() 시작...
    Updating crates.io index
  Downloaded native-tls v0.2.7
  Downloaded log v0.4.14
  Downloaded rustc_version v0.3.3
  Downloaded tracing v0.1.26
  Downloaded string_cache_codegen v0.5.1
  Downloaded rss v1.10.0
  Downloaded foreign-types v0.3.2
  Downloaded pin-utils v0.1.0
  Downloaded serde v1.0.127
  Downloaded cfg-if v1.0.0
  Downloaded proc-macro-hack v0.5.19
  Downloaded utf-8 v0.7.6
  Downloaded ryu v1.0.5
  Downloaded pin-project-lite v0.2.7
  Downloaded quote v1.0.9
  Downloaded crc32fast v1.2.1
  Downloaded pest v2.1.3
  Downloaded fxhash v0.2.1
  Downloaded regex-syntax v0.6.25
  Downloaded once_cell v1.8.0
  Downloaded futf v0.1.4
  Downloaded byteorder v1.4.3
  Downloaded derive_more v0.99.16
  Downloaded futures-task v0.3.16
  Downloaded getrandom v0.2.3
  Downloaded http-body v0.4.2
  Downloaded http v0.2.4
  Downloaded memchr v2.4.0
  Downloaded matches v0.1.8
  Downloaded new_debug_unreachable v1.0.4
  Downloaded num_cpus v1.13.0
  Downloaded nodrop v0.1.14
  Downloaded rand_core v0.5.1
  Downloaded quick-xml v0.20.0
  Downloaded openssl-sys v0.9.65
  Downloaded semver v0.11.0
  Downloaded siphasher v0.3.6
  Downloaded smallvec v1.6.1
  Downloaded string_cache v0.8.1
  Downloaded term_size v0.3.2
  Downloaded ucd-trie v0.1.3
  Downloaded unicode-xid v0.2.2
  Downloaded url v2.2.2
  Downloaded tr v0.1.6
  Downloaded try-lock v0.2.3
  Downloaded num-integer v0.1.44
  Downloaded pacmanconf v1.0.0
  Downloaded mio v0.7.13
  Downloaded percent-encoding v2.1.0
  Downloaded pkg-config v0.3.19
  Downloaded tinyvec_macros v0.1.0
  Downloaded tempfile v3.2.0
  Downloaded unicode-normalization v0.1.19
  Downloaded tokio-util v0.6.7
  Downloaded terminal_size v0.1.17
  Downloaded unicode-bidi v0.3.5
  Downloaded mime v0.3.16
  Downloaded bytes v1.0.1
  Downloaded hyper v0.14.11
  Downloaded srcinfo v1.0.0
  Downloaded openssl v0.10.35
  Downloaded libc v0.2.98
  Downloaded locale_config v0.3.0
  Downloaded html5ever v0.25.1
  Downloaded tokio v1.9.0
  Downloaded miniz_oxide v0.4.4
  Downloaded number_prefix v0.4.0
  Downloaded tower-service v0.3.1
  Downloaded tokio-macros v1.3.0
  Downloaded time v0.1.44
  Downloaded tendril v0.4.2
  Downloaded syn v1.0.74
  Downloaded serde_derive v1.0.127
  Downloaded signal-hook-registry v1.4.0
  Downloaded regex v1.5.4
  Downloaded httpdate v1.0.1
  Downloaded memoffset v0.6.4
  Downloaded indexmap v1.7.0
  Downloaded itoa v0.4.7
  Downloaded hyper-tls v0.5.0
  Downloaded httparse v1.4.1
  Downloaded futures-util v0.3.16
  Downloaded futures-core v0.3.16
  Downloaded futures-channel v0.3.16
  Downloaded form_urlencoded v1.0.1
  Downloaded dirs v3.0.2
  Downloaded bstr v0.2.16
  Downloaded mac v0.1.1
  Downloaded encoding_rs v0.8.28
  Downloaded thin-slice v0.1.1
  Downloaded rand_pcg v0.2.1
  Downloaded phf v0.8.0
  Downloaded cssparser-macros v0.6.0
  Downloaded lazy_static v1.4.0
  Downloaded gettext-rs v0.5.0
  Downloaded nix v0.22.0
  Downloaded serde_json v1.0.66
  Downloaded indicatif v0.16.2
  Downloaded rand_chacha v0.3.1
  Downloaded tokio-native-tls v0.3.0
  Downloaded termcolor v1.1.2
  Downloaded socket2 v0.4.1
  Downloaded serde_urlencoded v0.7.0
  Downloaded tinyvec v1.3.1
  Downloaded tracing-core v0.1.18
  Downloaded console v0.14.1
  Downloaded dtoa v0.4.8
  Downloaded rand v0.8.4
  Downloaded dtoa-short v0.3.3
  Downloaded futures-executor v0.3.16
  Downloaded aur-fetch v0.9.1
  Downloaded rand_core v0.6.3
  Downloaded getrandom v0.1.16
  Downloaded alpm v2.1.0
  Downloaded hashbrown v0.11.2
  Downloaded futures-sink v0.3.16
  Downloaded futures-macro v0.3.16
  Downloaded futures-io v0.3.16
  Downloaded cssparser v0.27.2
  Downloaded dirs-sys v0.3.6
  Downloaded convert_case v0.4.0
  Downloaded cc v1.0.69
  Downloaded htmlescape v0.3.1
  Downloaded reqwest v0.11.4
  Downloaded bitflags v1.2.1
  Downloaded async-trait v0.1.51
  Downloaded smart-default v0.6.0
  Downloaded stable_deref_trait v1.2.0
  Downloaded kuchiki v0.8.1
  Downloaded proc-macro2 v1.0.28
  Downloaded h2 v0.3.3
  Downloaded selectors v0.22.0
  Downloaded remove_dir_all v0.5.3
  Downloaded ppv-lite86 v0.2.10
  Downloaded atty v0.2.14
  Downloaded rand v0.7.3
  Downloaded idna v0.2.3
  Downloaded async-compression v0.3.8
  Downloaded num-traits v0.2.14
  Downloaded rand_chacha v0.2.2
  Downloaded slab v0.4.3
  Downloaded alpm-sys v2.1.0
  Downloaded precomputed-hash v0.1.1
  Downloaded openssl-probe v0.1.4
  Downloaded globset v0.4.8
  Downloaded foreign-types-shared v0.1.1
  Downloaded alpm-utils v1.1.0
  Downloaded chrono v0.4.19
  Downloaded humantime v2.1.0
  Downloaded flate2 v1.0.20
  Downloaded env_logger v0.9.0
  Downloaded phf_macros v0.8.0
  Downloaded phf_shared v0.8.0
  Downloaded unicode-width v0.1.8
  Downloaded want v0.3.0
  Downloaded raur v5.0.1
  Downloaded proc-macro-nested v0.1.7
  Downloaded semver-parser v0.10.2
  Downloaded ipnet v2.3.1
  Downloaded phf_generator v0.8.0
  Downloaded markup5ever v0.10.1
  Downloaded aur-depends v1.0.0
  Downloaded fnv v1.0.7
  Downloaded autocfg v1.0.1
  Downloaded futures v0.3.16
  Downloaded base64 v0.13.0
  Downloaded anyhow v1.0.42
  Downloaded servo_arc v0.1.1
  Downloaded adler v1.0.2
  Downloaded aho-corasick v0.7.18
  Downloaded phf_codegen v0.8.0
  Downloaded gettext-sys v0.19.9
  Downloaded ansi_term v0.12.1
  Downloaded cini v0.1.1
  Downloaded 174 crates (16.7 MB) in 3.08s (largest was `gettext-sys` at 7.2 MB)
   Compiling libc v0.2.98
   Compiling autocfg v1.0.1
   Compiling proc-macro2 v1.0.28
   Compiling unicode-xid v0.2.2
   Compiling syn v1.0.74
   Compiling cfg-if v1.0.0
   Compiling memchr v2.4.0
   Compiling log v0.4.14
   Compiling pkg-config v0.3.19
   Compiling proc-macro-hack v0.5.19
   Compiling getrandom v0.1.16
   Compiling lazy_static v1.4.0
   Compiling cc v1.0.69
   Compiling pin-project-lite v0.2.7
   Compiling ppv-lite86 v0.2.10
   Compiling siphasher v0.3.6
   Compiling futures-core v0.3.16
   Compiling bitflags v1.2.1
   Compiling itoa v0.4.7
   Compiling bytes v1.0.1
   Compiling once_cell v1.8.0
   Compiling futures-sink v0.3.16
   Compiling proc-macro-nested v0.1.7
   Compiling futures-channel v0.3.16
   Compiling futures-task v0.3.16
   Compiling serde_derive v1.0.127
   Compiling matches v0.1.8
   Compiling serde v1.0.127
   Compiling slab v0.4.3
   Compiling pin-utils v0.1.0
   Compiling futures-io v0.3.16
   Compiling fnv v1.0.7
   Compiling tinyvec_macros v0.1.0
   Compiling foreign-types-shared v0.1.1
   Compiling openssl v0.10.35
   Compiling ryu v1.0.5
   Compiling percent-encoding v2.1.0
   Compiling regex-syntax v0.6.25
   Compiling crc32fast v1.2.1
   Compiling native-tls v0.2.7
   Compiling encoding_rs v0.8.28
   Compiling httparse v1.4.1
   Compiling hashbrown v0.11.2
   Compiling new_debug_unreachable v1.0.4
   Compiling adler v1.0.2
   Compiling try-lock v0.2.3
   Compiling openssl-probe v0.1.4
   Compiling serde_json v1.0.66
   Compiling httpdate v1.0.1
   Compiling tower-service v0.3.1
   Compiling mac v0.1.1
   Compiling precomputed-hash v0.1.1
   Compiling utf-8 v0.7.6
   Compiling dtoa v0.4.8
   Compiling async-trait v0.1.51
   Compiling nodrop v0.1.14
   Compiling stable_deref_trait v1.2.0
   Compiling byteorder v1.4.3
   Compiling mime v0.3.16
   Compiling cini v0.1.1
   Compiling smallvec v1.6.1
   Compiling ipnet v2.3.1
   Compiling convert_case v0.4.0
   Compiling base64 v0.13.0
   Compiling thin-slice v0.1.1
   Compiling remove_dir_all v0.5.3
   Compiling anyhow v1.0.42
   Compiling number_prefix v0.4.0
   Compiling termcolor v1.1.2
   Compiling humantime v2.1.0
   Compiling srcinfo v1.0.0
   Compiling htmlescape v0.3.1
   Compiling ansi_term v0.12.1
   Compiling unicode-width v0.1.8
   Compiling tokio v1.9.0
   Compiling futures-macro v0.3.16
   Compiling futures-util v0.3.16
   Compiling indexmap v1.7.0
   Compiling miniz_oxide v0.4.4
   Compiling num-traits v0.2.14
   Compiling num-integer v0.1.44
   Compiling memoffset v0.6.4
   Compiling alpm-sys v2.1.0
   Compiling tracing-core v0.1.18
   Compiling openssl-sys v0.9.65
   Compiling gettext-sys v0.19.9
   Compiling phf_shared v0.8.0
   Compiling unicode-bidi v0.3.5
   Compiling http v0.2.4
   Compiling tinyvec v1.3.1
   Compiling foreign-types v0.3.2
   Compiling form_urlencoded v1.0.1
   Compiling futf v0.1.4
   Compiling dtoa-short v0.3.3
   Compiling servo_arc v0.1.1
   Compiling fxhash v0.2.1
   Compiling pacmanconf v1.0.0
   Compiling tracing v0.1.26
   Compiling http-body v0.4.2
   Compiling unicode-normalization v0.1.19
   Compiling tendril v0.4.2
   Compiling signal-hook-registry v1.4.0
   Compiling num_cpus v1.13.0
   Compiling getrandom v0.2.3
   Compiling socket2 v0.4.1
   Compiling terminal_size v0.1.17
   Compiling dirs-sys v0.3.6
   Compiling atty v0.2.14
   Compiling time v0.1.44
   Compiling term_size v0.3.2
   Compiling quote v1.0.9
   Compiling aho-corasick v0.7.18
   Compiling bstr v0.2.16
   Compiling mio v0.7.13
   Compiling want v0.3.0
   Compiling idna v0.2.3
   Compiling quick-xml v0.20.0
   Compiling rand_core v0.6.3
   Compiling console v0.14.1
   Compiling dirs v3.0.2
   Compiling rand_core v0.5.1
   Compiling flate2 v1.0.20
   Compiling nix v0.22.0
   Compiling regex v1.5.4
   Compiling alpm v2.1.0
   Compiling url v2.2.2
   Compiling rss v1.10.0
   Compiling rand_chacha v0.3.1
   Compiling rand_chacha v0.2.2
   Compiling rand_pcg v0.2.1
   Compiling chrono v0.4.19
   Compiling tokio-macros v1.3.0
   Compiling cssparser v0.27.2
   Compiling html5ever v0.25.1
   Compiling cssparser-macros v0.6.0
   Compiling derive_more v0.99.16
   Compiling smart-default v0.6.0
   Compiling locale_config v0.3.0
   Compiling globset v0.4.8
   Compiling env_logger v0.9.0
   Compiling indicatif v0.16.2
   Compiling rand v0.8.4
   Compiling rand v0.7.3
   Compiling gettext-rs v0.5.0
   Compiling tempfile v3.2.0
   Compiling phf_generator v0.8.0
   Compiling tokio-util v0.6.7
   Compiling tokio-native-tls v0.3.0
   Compiling async-compression v0.3.8
   Compiling futures-executor v0.3.16
   Compiling string_cache v0.8.1
   Compiling serde_urlencoded v0.7.0
   Compiling tr v0.1.6
   Compiling alpm-utils v1.1.0
   Compiling phf_codegen v0.8.0
   Compiling string_cache_codegen v0.5.1
   Compiling phf_macros v0.8.0
   Compiling h2 v0.3.3
   Compiling futures v0.3.16
   Compiling selectors v0.22.0
   Compiling markup5ever v0.10.1
   Compiling phf v0.8.0
   Compiling hyper v0.14.11
   Compiling aur-fetch v0.9.1
   Compiling hyper-tls v0.5.0
   Compiling reqwest v0.11.4
   Compiling raur v5.0.1
   Compiling kuchiki v0.8.1
   Compiling aur-depends v1.0.0
   Compiling paru v1.8.0 (/home/study/aur/paru/src/paru-1.8.0)
    Finished release [optimized] target(s) in 11m 23s
==> fakeroot 환경에 들어갑니다...
==> package() 시작...
==> 설치 정돈 중...
  -> libtool 파일 삭제 중...
  -> 원하지 않는 파일 제거 중...
  -> 정적 라이브러리 파일 삭제 중...
  -> 바이너리와 라이브러리에서 불필요한 심볼 제거 중...
  -> man과 info 페이지 압축하는 중...
==> 꾸러미 문제를 검사 중...
==> 경고: 꾸러미에 $srcdir 참조가 있습니다
usr/bin/paru
==> "paru" 꾸러미 만드는 중...
  -> .PKGINFO 파일 만드는 중...
  -> .BUILDINFO 파일 만드는 중...
  -> .MTREE 파일 만드는 중...
  -> 꾸러미 압축 중...
==> fakeroot 환경을 빠져나갑니다.
==> 만들기 완료: paru 1.8.0-1 (2021년 08월 07일 (토) 오후 12시 32분 01초)
==> paru 꾸러미를 pacman -U로 설치 중...
[sudo] study 암호: 
꾸러미 불러오는 중...
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) paru-1.8.0-1

총 설치 크기:  7.31 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
(1/1) 키링의 키를 검사 중                          [######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [######################] 100%
(1/1) 꾸러미 파일 불러오는 중                      [######################] 100%
(1/1) 파일 충돌 검사 중                            [######################] 100%
(1/1) 사용 가능한 디스크 공간 검사 중              [######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/1) 설치 중 paru                                 [######################] 100%
paru에 대한 선택 의존성
    asp: downloading repo pkgbuilds
    bat: colored pkgbuild printing
    devtools: build in chroot
:: 후처리 훅들을 실행 중...
(1/1) Arming ConditionNeedsUpdate...
[study@study-virtualbox paru]$

위 과정을 거쳐 빌드 및 설치가 진행됩니다.

 

[study@study-virtualbox ~]$ paru -V
paru v1.8.0 - libalpm v13.0.0
[study@study-virtualbox ~]$

설치 후 위와 같이 버전을 확인할 수 있습니다.

 

이 두 AUR Wrapper를 이용해 AUR 패키지를 설치하는 방법은 위 링크의 연재글을 참고하시기 바랍니다.


yay와 paru

 

일부 사이트나 블로그는 yay는 Deprecated되었으므로 후속 개발 Wrapper인 paru를 사용하라고 설명하고 있습니다만 이는 잘못된 설명입니다.

 

yay의 주 개발자는 J Guerreiro(jguer)와 morganamilo였습니다. 그러다 morganamilo가 떨어져 나와 따로 yay의 대체 프로그램을 개발하기 시작했고 yay는 이와 상관 없이 계속 개발되고 있습니다.

따라서 둘 중 아무거나 사용하셔도 무방합니다.

아직까지는 개발 및 유지보수 기간이 더 길다보니 yay가 좀 더 널리 쓰이고 있고  AUR 패키지 vote 점수도 더 큽니다만 AUR 생성 이후 매일 하루당 0.98의 비율로 각 투표의 가중치를 부여한 전체 투표의 합계로 계산되는 Popularity를 보면 paru가 yay를 앞서고 있습니다.

 

두 Wrapper를 모두 설치해 사용할 수 있지만, 시스템 관리 측면애서 자신에게 맞는 Wrapper 하나만 선택해 사용하시는 것을 권장합니다.

 

물론 이 Wrapper를 쓰지 않고 사용자가 직접 git으로 관리하는 것이 가장 좋습니다.

이 Wrapper는 아치 개발진이 공식적으로 유지보수하는 프로그램이 아니다 보니 언제든지 개발이 중단될 수 있습니다. 실제로 그 좋은 예로 yaourt가 있습니다.

yaourt는 AUR을 관리하는 가장 대중적인 AUR Helper였습니다. 그러나 202년 10월에 공식적으로 유지보수가 중단되면서 이 프로그램의 수명이 다하게 되었습니다.

 

그 어떤 AUR Helper라도 언제든지 yaourt의 전철을 밟을 수 있습니다.

그럴 바에는 사용자가 AUR을 git으로 관리하고 직접 빌드, 설치하는 것이 좋습니다.