본문 바로가기
IT & 전자기기/소프트웨어

Arch Linux 설치 가이드 3 (Zsh 및 기타 설정)

by 카루 (Rolling Ress) 2023. 9. 16.
반응형
 

환영합니다, Rolling Ress의 카루입니다.

아치리눅스 설치가 모두 끝났죠. 이제는 시스템을 좀 더 편리하게 사용하고, 안정화하기 위한 작업들을 진행하도록 하겠습니다. 꼭 필요하진 않지만, 개개인에 따라 충분히 유용할 수 있는 기능들입니다. 천천히 보면서 자신에게 맞는 설정을 적용해주세요.

목차

  • LTS 커널 설치
  • 유용한 프로그램 설치
  • 기타 설정 및 프로그램
  • 유용한 설정들

LTS 커널 설정

https://kernel.org 은 리눅스 커널을 모아둔 곳입니다. 대부분의 배포판들은 리눅스 커널을 가져다가 커스텀하거나 해서 사용하죠. 아치와 젠투는 조금 사정이 다릅니다. 둘은 커스터마이징에 최적화 되어있기 때문에 마음에 드는 커널을 골라서 사용하는 게 훨씬 쉽습니다. 특히 아치의 경우엔 kernel.org에 있는 모든 커널을 AUR또는 기본 저장소에서 받을 수 있습니다.

Mainline은 현재 개발중인 커널입니다. 아직 안정화 전이므로 고급 사용자가 아니라면 함부로 다운받지 않는 것을 추천드립니다. AUR에 linux-mainline이라는 패키지로 들어있습니다. 이 외에도 실제로 우리가 사용하는 리눅스 커널은 stable 버전입니다. 최소한의 안정화만 거치고 Testing에서 Core 저장소로 내려옵니다. 놀랄 만큼 업데이트가 빠르죠.

다만 stable 버전에서도 가끔씩 버그가 일어나는 경우가 있습니다. 예전에 커널 업데이트 이후에 lightdm이 시작되지 않아서 그냥 콘솔창에 커서만 깜빡거리더라고요. 이런 문제를 해결하기 위해 LTS 커널을 사용합니다. 아치리눅스에서는 공식적으로 가장 최신 버전의 LTS, 즉 6.1 버전의 커널만 지원합니다. 조금 더 안정적인 사용을 위해 linux-lts 패키지를 설치해보죠. 사실 아치는 말이 lts지, 다른 배포판과 비교하면 굉장히 최신 커널을 탑재하고 있습니다. Ubuntu LTS는 최신버전이 5.15 커널(...)을 탑재하고 있습니다.

$ sudo pacman -Syu linux-lts{,-headers}

GRUB을 사용하신다면 설정 파일만 업데이트 하면 되나, 저처럼 systemd-boot를 사용하신다면 엔트리를 새로 생성해주어야 합니다.

$ sudo cp /boot/loader/entries/arch.conf /boot/loader/entries/archlts.conf
$ sudo nano !$
title Arch Linux LTS
linux /vmlinuz-linux-lts
initrd /intel-ucode.img
initrd /initramfs-linux-lts.img
options root=UUID=XXXXXXXXXXXXXX rw
 

3번째 줄에서 AMD CPU를 사용하신다면 amd-ucode로 바꿔주시고, root 파티션의 UUID도 자신의 파티션에 맞게 수정해주시면 됩니다. 아마 기존 arch.conf를 복사했다면 title과 linux, initrd만 수정해주시면 될 겁니다.

$ sudo nano /boot/loader/loader.conf
default archlts
timeout 0
console-mode max
editor 0

부트로더 기본값을 설정합니다. 이렇게 하면 기본값이 LTS 커널로 선택됩니다. 일반 커널로 부팅하고자 하는 경우, 전원 버튼을 누름과 동시에 스페이스바를 꾹 누르고 있으면 커널을 선택할 수 있습니다.

$ bootctl list
$ sudo bootctl set-default archlts.conf
$ bootctl list
$ reboot

처음에는 그냥 Arch Linux가 (defualt)로 표시되어 있을 겁니다. 기본값을 다시 설정하고 확인합니다. 확인이 되었으면 재부팅합니다. 이제 linux, linux-headers 패키지를 삭제하고 systemd-boot에서 arch.conf를 삭제하면 stable 커널은 완전히 삭제됩니다.

유용한 프로그램 설치

1. The Fuck 설치

$ sudo pacman -S thefuck

명령어를 잘못 입력했을 때, 자동으로 고쳐주는 프로그램입니다. 단순한 철자오류부터 sudo를 빼먹었다든가, 이러한 상황에서 굉장히 auto correction을 잘 해줍니다.

$ fuck
$ fuck
$ source ~/.bashrc     # bash 사용시
$ source ~/.zshrc      # zsh 사용시

참고로 저 fuck은 꼭 두 번 쳐야 합니다(...) fuck을 두 번 실행시킨 후 bashrc / zshrc를 새로고침하면 사용할 수 있습니다.

pacman을 pacmna으로 잘못 입력했군요. 이럴 때 fuck을 입력해주면 됩니다. 사실 이 정도는 zsh 확장으로 자동으로 sudo를 입력해주기도 하지만, 뭐.. 저는 익숙한 거 쓰겠습니다. 이쪽이 더 손맛이 좋기도 하고요. 이 뿐만 아니라 위/아래 방향키로 다른 명령어 제안을 확인할 수도 있습니다. 올바르면 엔터 키를 눌러서 계속 진행할 수 있고, 종료하고 싶으면 ^C를 누르면 됩니다. 참.. 쓰면서 계속 정신나간 프로그램이라는 생각을 지울 수가 없네요. 심지어 정확도까지 높습니다. 이걸 잘 이용하면 Command not found 에러가 났을 때 자동으로 fuck을 실행시킬 수도 있겠네요.

2. Howdy 설치 (FaceID / Windows Hello)

$ yay -S howdy v4l-utils

macOS에 Face ID가 있고 윈도우에 Windows Hello가 있다면 리눅스에는 Howdy가 있습니다.

$ sudo nano /etc/pam.d/gdm-password
#%PAM-1.0
auth sufficient pam_unix.so try_first_pass likeauth nullok
auth sufficient pam_python.so /lib/security/howdy/pam.py

...

얼굴인식으로 잠금을 해제하고 싶다면 위 파일을 이렇게 수정합니다. 다만 이 경우 GNOME에서 Login Keyring이 언락되지 않았다면서 수시로 패스워드를 물어봅니다. 이게 조금 짜증이 나서 저는 다시 끄고 사용중입니다.

$ sudo nano /etc/pam.d/sudo
#%PAM-1.0
auth sufficient pam_python.so /lib/security/howdy/pam.py
 

얼굴인식으로 루트 패스워드를 대신하고 싶다면 위 파일을 이렇게 수정합니다. 이게 은근 쓸만합니다.

$ v4l2-ctl --list-devices

여기서 자신의 카메라를 확인해주세요. /dev/videoX인데, 저는 video0이 일반 카메라, video2가 IR 카메라였습니다. IR 카메라 번호를 기억하세요. 아시겠지만 작동시켰을 때 빨간 불이 깜박거려야 IR 카메라입니다.

$ sudo howdy config
...
# The path of the device to capture frames from
# Should be set automatically by an installer if your distro has one
device_path = /dev/videoX 
...

# 또 수정하면 좋은 것들
certainty = 5
timeout = 5
dark_threshold = 80

X는 각자 디바이스에 맞게 수정해주세요.

$ sudo howdy add
 

얼굴을 추가하면 끝입니다.

$ sudo howdy config
 

기타 설정 및 프로그램

1. pacman 설정

pacman은 아치리눅스의 패키지 매니저입니다. PACkage MANager의 약자이고, 특징이라면 역시 아치리눅스답게 공식 GUI 프론트엔드가 없다는 겁니다. 사용법도 dnf install, apt search 등 직관적인 다른 패키지 매니저와 달리 pacman -S, pacman -Qdtq, pacman -Rns 등 복잡한 옵션을 사용합니다. 그럼에도 불구하고, 잘만 쓴다면 엄청나게 많은 기능을 사용할 수 있습니다.

$ sudo nano /etc/pacman.conf

pacman의 설정 파일을 편집해봅시다.

 

Color와 VerbosePkgLists, ParallelDownloads 앞의 주석을 해제하고, 그 다음 줄에 ILoveCandy를 추가해주세요. 대소문자에 유의하시기 바랍니다. Color는 pacman 출력에서 색상을 표시하고, VerbosePkgLists는 패키지를 나열만 하는 게 아니라 각각의 사이즈, 버전 등을 표 형식으로 출력해줍니다. ParallelDownloads는 병렬로 다운로드할 패키지 개수, ILoveCandy는 #### 형태의 바가 아닌 진짜 팩맨이 움직이는 것 같은 효과를 줍니다.

2. Fractional Scaling

GNOME이 HiDPI 지원이 잘 되기는 하는데, 문제는 100%p 단위로만 설정할 수 있습니다. 아직 정식 기능은 아니지만, 실험적으로 Fractional Scaling (=정수가 아닌 비율: 125%, 150%, 175%, ...)을 활성화할 수 있습니다. X11에서는 mutter-x11-scaling (AUR)을 설치하고, Wayland에서는 다른 설정을 조금 만져주면 됩니다.

# Wayland
$ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

다만 문제가 하나 있습니다. Wayland를 네이티브로 지원하는 앱들은 괜찮아요. 근데 X11 기반의 앱들은 Xorg - Xwayland - Wayland를 거쳐서 그려집니다. 이 과정에서 멀쩡히 잘 돌아가던 앱들이 Fractional Scaling을 켜기만 해도 (켠 상태에서 200% 등 정수 비율로 설정하더라도) 엄청 흐려집니다. 심지어 GParted같은 앱들도 Wayland를 지원하지 않는지 엄청 흐립니다. 그나마 다행인 건 터미널이나 기본 웹 브라우저 등 자주 사용하는 것들은 선명하게 출력됩니다. 따라서, Wayland를 지원하는 앱들은 강제로 Wayland 모드로 구동되게끔 설정해주세요.

3. 터치패드 탭, 우클릭, 스크롤

GNOME Tweaks에서 Keyboard & Mouse > Mouse Click Emulation > Area로 설정해주세요. 처음에는 Fingers로 되어 있는데, Area로 바꾸어야 왼쪽/오른쪽 클릭이 됩니다. 물리적으로 터치패드에 왼쪽/오른쪽 키가 나뉘어 있는 경우에는 이 옵션을 사용할 필요가 없습니다. 또한 두 손가락 스크롤을 사용하면 스크롤이 반대로 되는 경우가 있는데, 이것도 각 DE 설정 화면에서 변경이 가능합니다.

4. sudo 경고문 활성화

sudo를 입력할 때 항상 위와 같은 안내가 나오도록 합니다. 솔직히 전혀 필요 없는 기능이긴 한데, 멋있잖아요.

$ sudo nano /etc/sudoers.d/privacy
Defaults        lecture = always

새 파일을 생성하고, 위 내용을 입력해주세요. Defaults 뒤에는 탭(\t) 입니다. 이제 앞으로 sudo를 실행할 때마다 저 경고문을 볼 수 있습니다.

5. UEFI 쉘 엔트리

$ sudo pacman -S edk2-shell
$ sudo cp /usr/share/edk2-shell/x64/Shell_Full.efi /boot
$ sudo nano /boot/loader/entries/shell.conf

systemd-boot를 사용한다고 가정합니다. 이때 UEFI 쉘을 부트 메뉴 엔트리에 추가할 수 있습니다. GRML을 실행시키거나 할 때 유용하게 쓸 수 있습니다. 마치 리눅스를 하나의 응용 프로그램처럼 실행하는 기분을 느껴보세요.

title UEFI Shell
efi /Shell_Full.efi

이렇게 하면 엔트리가 생성됩니다. 이 외에도 efifs 패키지를 설치한 뒤 드라이버 폴더를 /boot/EFI/systemd/drivers에 넣으라는 얘기도 있던데, 이것 때문인진 모르겠지만 UEFI 쉘에서 ext4 파티션에 접근이 가능했습니다. 이 부분은 문서가 없어서 시행착오를 많이 해야 할 것 같네요.

6. GRML Live Linux

문제가 생겼을 상황을 대비해서, 라이브 시스템을 컴퓨터에 내장시킬 수 있습니다. 제 경우는 종종 윈도우에서 EFI 파티션을 꼬아버려 리눅스 커널이 잘리는(...) 대참사가 종종 일어나곤 하는데, 그럴 때마다 아치리눅스 미디어에서 fsck, mount, chroot, pacman -S linux 계속 하는 게 너무 귀찮더라고요. 사실 명령어 몇 줄은 입력할 수 있어요. 문제는 그때마다 USB를 꽂아야 한다는 거.

그럴 때 쓰는 게 GRML입니다. 이건 원래 EFI 파티션에 내장해서 쓸 수 있는데, 사이즈가 좀 커서 EFI가 1GB 이상일 때만 정상적으로 동작합니다. 그게 아니라면 편법을 써야 해요. 우선 grml iso를 다운받아 루트 디렉터리에 풀어준 뒤, /grml 폴더에 vmlinuz, initrd.img, grml64-small.squashfs 파일만 남겨줍니다.

$ sudo nano /boot/grml.nsh
BLK6:\grml\vmlinuz initrd=\grml\initrd.img apm=poweroff boot=live live-media-path=\grml\ nomce net.ifnames=0
 

그리고 UEFI 쉘코드를 작성해줍니다.

$ sudo nano /boot/loader/entries/grml.conf
title GRML Live Linux
efi /Shell_Full.efi
options -nointerrupt -noconsolein -noconsoleout grml.nsh

마지막으로 systemd-boot에서 엔트리를 추가해주면 됩니다.

7. 관상용 프로그램

$ sudo pacman -S cmatrix && cmatrix

해커가 되는 기분을 느낄 수 있습니다.

$ sudo pacman -S asciiquarium && asciiquarium

추가 팁

  • 가끔가다 터미널이 멈추는 경우가 있습니다. 특히 Nano를 쓰다 무심코 Ctrl+S를 눌렀을 때 발생하는데, Ctrl+Q를 누르면 해제시킬 수 있습니다.
  • 파일을 읽는 프로그램은 몇 가지가 있습니다. cat은 통째로 보여주고, less 또는 more은 한 화면에 다 나오지 않는 파일을 볼 때 유용하게 쓸 수 있습니다. 아주 짧은 파일을 잠깐 보기만 할 때, 혹은 grep을 사용할 때는 cat이 좋고, 텍스트를 읽기만 할 때는 less나 more, 편집까지 할 때는 nano나 vim이 좋습니다.
  • 제가 늘 하는 거, !$이죠. 윗 줄에서 사용한 마지막 매개변수를 그대로 사용할 때 씁니다. 이 외에도 Alt 키를 누른 상태에서 '.'을 몇 번 눌러도 비슷한 효고를 볼 수 있습니다. 만약 윗 줄 전체를 사용해야 할 때는 !!을 사용합니다.
  • 터미널에서 복사, 붙여넣기는 Ctrl+Shift+C, Ctrl+Shift+V를 사용합니다. 검색은 Ctrl+Shift+F입니다. 그냥 Ctrl+C는 프로그램을 죽여버려요.
  • 파일을 지우지 않고 비워버릴 수 있습니다. 특히 아주 큰 파일을 삭제할 때 유용합니다. 다만 파일을 잘 확인하고 사용하세요.
$ > file
반응형


같이 보면 좋은 글


댓글