systemd 는 이제 리눅스 시스템의 뼈대가 되는 기본운영 방법이 되었다. 기존에는 System V Init 이였지만 RHEL 7, Ubuntu 16.04부터 기본 시스템운영 프로그램이 되었다. systemd 는 ‘ctl’ 로 끝나는 명령어들의 집합으로 제어가 가능하다. systemctl, journalctl, timedatectl, hostnamectl, loginctl 이 대표적이다. systemctl 의 경우에는 systemd unit 파일들에 대한 제어와 설정이 가능하다. systemd unit 파일은 기존의 Systemv V init Script 를 대체하는 것으로 일종의 시스템 데몬 프로그램들이라고 보면 된다. 시스템이 시작될때에 자동으로 시작되게 한다거나 종료하게 한다거나 하는것들을 가능하게 한다. unit 파일은 텍스트 파일이기 […]
Yum 패키지 충돌 발생시 쓸 수 있는 명령어
최근에 CentOS 8 에서 Kubernetes 를 테스트하던 중에 패키지 업데이트가 되지 않는 일이 발생 했다. 아직 Kubernetes 는 CentOS 8 배포판을 정식으로 지원하지 않아 CentOS 7 배포판의 패키지를 사용해야 하는 상황이다. 그런데, yum 명령어로 업데이트를 할려고 보니 오류가 발생 했다. 이럴 경우에 다음과 같은 명령어를 사용해서 의존성을 체크해 볼 수 있다.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# repoquery --requires --resolve kubelet-1.18 ethtool-2:4.8-10.el7.x86_64 iptables-0:1.4.21-34.el7.x86_64 util-linux-0:2.23.2-63.el7.x86_64 iptables-0:1.4.21-34.el7.i686 util-linux-0:2.23.2-63.el7.i686 conntrack-tools-0:1.4.4-7.el7.x86_64 iproute-0:4.11.0-25.el7_7.2.x86_64 ebtables-0:2.0.10-16.el7.x86_64 glibc-0:2.17-307.el7.1.i686 glibc-0:2.17-307.el7.1.x86_64 socat-0:1.7.3.2-2.el7.x86_64 |
위와같은 명령어를 이용하면 패키지 의존성에 대한 내용을 풀어서 볼 수 있다. 참고: kubeadm and kubelet 1.15 fail to install on centos 7 after patches released today#92242
Oracle Linux 8 UEK 커널 설치
Oracle Linux 는 UEK(Unbreakable Enterprise Kernel) 라고 해서 커널을 제공 한다. Oracle 은 이를통해 최신의 커널을 제공하고 자신들만의 퍼포먼스 패치를 더해서 고성능을 낼수 있도록 했다. Oracle Linux 8 에서 UEK 커널을 설치해 보자. Yum Repository 확인 Oracle Linux 8 에는 uek 를 위한 yum repository 가 추가되어 있다. 다음과 같이 확인이 가능하다.
|
1 2 3 4 5 6 |
yum repolist Failed to set locale, defaulting to C.UTF-8 repo id repo name ol8_UEKR6 Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64) ol8_appstream Oracle Linux 8 Application Stream (x86_64) ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64) |
‘ol8_UEKR6’ 가 uek 를 위한 저장소(repository) 이다. 이제 다음과 같이 어떤 버전의 uek 커널이 있는지 다음과 같이 체크해보자.
|
1 2 3 4 5 |
yum list kernel-uek Last metadata expiration check: 0:19:13 ago on Thu Jul 23 19:37:48 2020. Available Packages kernel-uek.x86_64 5.4.17-2011.3.2.1.el8uek ol8_UEKR6 kernel-uek.src 5.4.17-2011.4.4.el8uek ol8_baseos_latest |
현재 시점에서 5.4 버전의 uek 커널이 있음을 알 […]
Oracle Linux 8.2 설치
Oracle 에서 만들어서 배포하는 Oracle Linux 8.2 를 설치해 본다. 현 시점(2020.07) 에서 최신버전은 Oracle Linux 8.2 이다. 다운로드 Oracle Linux 를 설치를 위해 준비된 이미지는 두가지로 전체 패키지를 담은 DVD 이미지와 Boot 이미지를 제공한다. Boot 이미지는 또 일반 커널과 UEK 커널을 가지는 버전으로 제공한다. 어느걸 하던 상관은 없다.
|
1 2 3 4 5 6 7 8 9 10 11 |
]# wget https://yum.oracle.com/ISOS/OracleLinux/OL8/u2/x86_64/x86_64-boot-uek.iso --2020-07-23 16:53:15-- https://yum.oracle.com/ISOS/OracleLinux/OL8/u2/x86_64/x86_64-boot-uek.iso Resolving yum.oracle.com (yum.oracle.com)... 104.75.8.194 접속 yum.oracle.com (yum.oracle.com)|104.75.8.194|:443... 접속됨. HTTP request sent, awaiting response... 200 OK Length: 682622976 (651M) [application/octet-stream] Saving to: ‘x86_64-boot-uek.iso’ x86_64-boot-uek.iso 100%[===============================================================>] 651.00M 11.7MB/s in 57s 2020-07-23 16:54:13 (11.3 MB/s) - ‘x86_64-boot-uek.iso’ saved [682622976/682622976] |
설치 다운받은 이미지를 USB 나 CD 로 구워서 부팅을 한다. 부팅을 하면 위와 같은 화면이 나온다. 여기서 “Install Oracle Linux 8.2.0” 를 선택해서 설치를 진행한다. 설치는 CentOS 설치 화면과 동일하다. […]
DNF 사용하기
CentOS 8 로 넘어오면서 기본 패키지 매니지먼트로 dnf 가 되었다. 여전히 yum 을 지원하지만 앞으로는 dnf 로 쭉 간다고 하니 이참에 배워보자고 생각하지만…. 겁나 빡치는게, 이제 그만 바꿨으면 한다. 뭔 yum 정도로도 충분히 잘 쓰고 있고 괜찮다고 싶다. 무슨 겁나 가볍네, 더 빠르네 어케 좋네… 응 yum 도 그렇게 느리고 그렇게 무겁지도 않아! 도대체 뭘 할때마다 갈아 엎고 이걸 새로 배우라고 하니.. 뭐 어쩌것나.. 그렇게 하겠다는데, 닥치고 배워야지! dnf 햐.. 쓰기도 귀찮다… “DNF is the next upcoming major version of […]
Ubuntu 18.04, Static IP 할당하기
Ubuntu 18.04 의 경우 네트워크 인터페이스 관련 작업은 netplan 으로 바뀌었다. 만일 Static IP 를 할당하고 싶다면 netplan 의 설정 파일을 수정하고 적용하면 된다. /etc/netplan/*.yml 여기서 파일을 수정하면 된다. 대략 다음과 같은 포맷을 갖는다. dhcp4: yes 로 되어 있는 경우에는 DHCP 로 아이피를 받아온다. 하지만 이것을 no 바꾸면 Static IP 를 할당할 수 있다. netplan 적용 수정을 다 했다면 다음과 같이 적용해 준다.
Ubuntu 18.04 ethernet 이름 변경하기
Ubuntu 18.04 를 설치하면 ethernet 인터페이스 이름이 과거 eth0 가 아닌 ens3 과 같이 나온다. 하지만 아직도 많은 프로그램들이 기본적으로 eth0 를 기본으로 찾기도 한다. eth0 변경하는 방법에 대해 다룬다. GRUB 파라메터 수정 다음과 같이 Grub 에 파라메터를 추가 한다. Grub 에 파라메터는 /etc/default/grub 파일에서 다음과 같이 추가할 수 있다. 수정된 사항이 Grub 에 반영하기 위해서 업데이트를 수행한다. 여기서 중요한 것이 바로 재부팅을 하면 안된다. 특히나 DHCP 환경에서는 다음의 단계를 수행한 후에 재부팅을 해야 한다. netplan 수정 netplan 은 Ubuntu […]
Trac 에서 Ticket 삭제하기
Trac 을 사용하다보면 Ticket 을 삭제하고 싶을때가 있다. Ticket 삭제 플러그인이 존재하지만 Ticket 이란게 자주 삭제를 하는 것이 아니여서 굳이 이것을 설치해서 사용해야할 만큼은 아닌듯 한데, 그런데도 잘못된 Ticket 을 삭제해야한다면 다음과 같이 하면 된다. trac-admin 을 활용하면 된다. 출처: Deleting trac tickets created since a certain date until today 두번째 방법으로 ‘ticket.deleter’ 를 활성화하면 된다. 이는 Trac 에서 공식지원하는 것으로 Ticket 웹화면에서 Reply 버튼 옆에 Delete 버튼이 나타난다. 이를 위해서는 trac.ini 설정파일에 다음과 같이 설정해준다.
Grub2 에 기본 커널 지정하기
Grub2 은 리눅스 시스템의 부팅 메니져이다. 리눅스는 커널을 여러개를 설치하고 부팅시에 선택해서 원하는 커널로 부팅을 할 수 있도록 해준다. 비상 복구가 필요할 경우에도 부팅 메니져인 Grub2 에서 비상복구 모드를 선택하면 된다. 문제는 어떻게 기본 커널을 지정할 수 있을까? 먼저, 기본 부팅 커널은 다음과 같이 확인할 수 있다. 만일 부팅 상황이라면 위에 설정한 커널을 기본으로 부팅을 진행하게 된다. 만일 이 기본 커널을 변경하고자 할 경우에는 어떻게 할까? 우선, 현재 Grub2 에 등록된 커널 목록들을 알아야하는데 다음과 같이 하면 알 수 있다. […]
Ubuntu 18.04 도메인을 찾을 수 없을때
Ubuntu 18.04 를 사용중인데, 보안 업데이트를 하기 위해서 apt 명령을 입력했더니 다음과 같이 도메인을 찾을 수 없는 이유로 오류가 생긴다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
root@ubuntu:~# apt update Err:1 http://archive.ubuntu.com/ubuntu bionic InRelease Temporary failure resolving 'archive.ubuntu.com' Err:2 http://security.ubuntu.com/ubuntu bionic-security InRelease Temporary failure resolving 'security.ubuntu.com' Err:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease Temporary failure resolving 'archive.ubuntu.com' Err:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease Temporary failure resolving 'archive.ubuntu.com' Reading package lists... Done Building dependency tree Reading state information... Done All packages are up to date. W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/bionic/InRelease Temporary failure resolving 'archive.ubuntu.com' W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/bionic-updates/InRelease Temporary failure resolving 'archive.ubuntu.com' W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/bionic-backports/InRelease Temporary failure resolving 'archive.ubuntu.com' W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/bionic-security/InRelease Temporary failure resolving 'security.ubuntu.com' W: Some index files failed to download. They have been ignored, or old ones used instead. |
“Temporary failure resolving” 이게 뭘까 싶어서 알아본 내용을 정리한다. resolve.conf 파일을 열어보면 다음과 같이 되어 있을 것이다.
|
1 2 3 4 5 6 7 |
root@ubuntu:~# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN # 127.0.0.53 is the systemd-resolved stub resolver. # run "systemd-resolve --status" to see details about the actual nameservers. nameserver 127.0.0.53 |
resolv.conf 파일은 다들 알다시피 도메인 네임 서버를 지정해주는 설정 파일로 이 파일이 잘못되면 도메인을 ip로 변환할 수가 없게되어 결국에는 인터넷 연결을 할 수가 없게 된다. 그런데, 위 내용을 보면 도메인 서버 ip는 로컬 호스트로 보이고 코멘트에 이것을 수동으로 바꾸지 말것을 경고하고 […]