일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 제주도
- BSC100S
- 여행
- 갤럭시 핏3
- 페루
- FT-8
- 비욘드트러스트
- 일본
- 스마트폰 리눅스
- 한강
- 둠
- 캠핑
- Termux
- 태블릿 리눅스
- iGPSPORT
- 박물관
- 크로스 컴파일
- 딸래미
- 대만
- cross compile
- 체험학습
- 휴양림
- ARM
- 도쿄
- 아마추어무선
- 한강 라이딩코스
- 어린이
- 갤럭시 핏2
- 가족여행
- ubuntu 24.04
- Today
- Total
주희아빠의 헝그리 라이딩
리눅스 메이저 버전에 따른 glibc 버전 비교 - Redhat, CentOS, Rocky, Amazon Linux 본문
리눅스 메이저 버전에 따른 glibc 버전 비교 - Redhat, CentOS, Rocky, Amazon Linux
도림천 버섯돌이 2023. 3. 25. 15:052023.3.
얼마전 Cent OS 가 지원 종료를 선언하였습니다.
개인들의 경우는 Ubuntu 를 많이 사용하겠지만 어느정도 규모가 있는 회사나 IDC 장비 등을 사용하는 곳이라면, 상용이며 정식 지원이 되는 Redhat 을 많이 이용하며 이와 함께 Redhat 과 완전히 동일한 소스로 동작하는 CentOS 를 부가적으로 함께 이용합니다.
기존 CentOS 를 사용하던 곳에서는 뭔가 대체 방법을 찾아야 했으며 이를 대신하는 리눅스로 Rocky Linux 가 나타나게 되었습니다.
이번 기회에 리눅스의 메인 버전에 따라 어떠한 차이점이 있는지 정리해 봅니다.
* 리눅스 간단 족보
리눅스의 메인 족보로 다음 3가지 패밀리가 있습니다.
1. Ubuntu
일반사용자들이 가장 많이 사용하는 Ubuntu 입니다. Debian 을 베이스로 하며 이 자체로도 충분히 유명 했는데 ubuntu 에 와서는 국내외 개인 사용자들이 가장 많이 애용하는 버전이 아닐까 싶습니다. 데스크탑용과 서버용으로 골고루 인기가 많습니다.
그외 Mint 리눅스로도 발전하였으며 각종 경량버전 등으로 확장되어 사용되고 있습니다.
패키지 관리명령어로 apt 를 주로 사용하며 부가적으로 dpkg 커맨드도 사용합니다.
국내에서 특히 인기가 있는 이유로는 수도권 아파트를 업그레이드하기 위함이라는 근거없는 헛소문이..
$ sudo apt update && sudo apt upgrade -y
2. Redhat
기업용으로 많이 사용하는 Redhat 입니다. 관련 패미리 버전으로 Fedora ,CentOS, Oracle Linux 최근의 Rocky 가 있습니다. 패키지 배포로는 RPM 패키지를 기반으로 하며 이는 YUM 와 DNF 등으로 개선되었습니다.
yum, rpm 명령이 되면 redhat 계열입니다.
3. Slackware
그외 과거에 유명했던 Slackware 는 유럽에서 인기 있다는 SUSE, 미니멀하고 민첩한 Arch 로 이어 지나 국내에서는 인기가 별로 없는 편입니다.
slackpkg 나 sbopkg 명령이 있으면 slackware 라네요.^^
복잡한 족보는 이쪽을 참고하시면 됩니다.. https://en.wikipedia.org/wiki/List_of_Linux_distributions
*SystemD 와 Init.D 비교
보통 리눅스의 성격을 논의할 때 가장 먼저 나오는 내용이 시스템의 시작 프로세스가 init 인가 systemd 인가를 비교하는 것입니다.
간단히 $ ps -ef 커맨드로 봤을 때 최초 1 번 프로세스가 init 인지 systemd 인지를 보면 됩니다. 시스템 기동/ 재시동 명령어 수행시 더이상 init 레벨과 service 를 사용하지 않고 systemctl 을 사용합니다.
init.d 는 redhat 6/ centos 6 이후로는 사용되지 않기 때문에 이후 언급되는 모든 리눅스들은 systemd 라고 생각하면 됩니다.
이제는 리눅스의 성격을 비교하는 방법으로는 더이상은 등장하지 않을 듯 합니다.
* 리눅스 메인 버전의 차이
사용중인 리눅스의 메인 버전의 업그레이드를 몇차례 겪으니 궁금해 지긴 합니다. '리눅스 버전이 올라가면 대체 뭐가 바뀌는 것이지?' 다른 Update 는 잘만 하더만, 버전도 그냥 업그레이드하고 쓸 수는 없나?
리눅스 버전간의 가장 큰 차이점은 glibc 에 있습니다. (사실 이게 정확히 어떤 역할을 하는지는 모르겠습니다만) 리눅스라는 것이 태생적으로 C 로 만들어졌기 때문에 OS 바닥에 깔린 C 라이브러리 구성 시스템들과는 분명 밀접한 관계가 있을 것으로 추측 합니다.
개인적으로 glibc 의 메인 버전을 업그레이드 했다가 성공한적은 없습니다. 그래서 보통은 OS 업그레이드시에는 깔끔하게 재설치를 진행하게 됩니다.
그래서 보통 리눅스 버전을 판단할 때는 glibc 의 버전과 몇가지 힌트들을 보고 정의합니다.
이제는 perl 은 거의 사용되지 않고 python 의 경우 2.x 에서 3.x 로 올라오긴 했지만 이는 충분히 업그레이드 가능합니다.
커널 버전에 대해서는 특정 하드웨어에 관련되지 않는다면 오히려 더 덜 민감한 듯 합니다.
aws 에서 많이 사용되는 amazon linux 역시 CentOS 의 친구입니다. glibc 버전이 비슷하며 내부적으로 설치되는 시스템 패키지들도 centos 를 닮아 있습니다. 정확히는 amazon linux 가 Fedora 를 참고로 하고 있기 때문입니다.
* glibc 버전 확인 방법
-- glibc 버전 확인. 아래 명령어중 편한 것 사용.
$ getconf -a |grep glibc
GNU_LIBC_VERSION glibc 2.35
$ getconf GNU_LIBC_VERSION
glibc 2.35
$ ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.6) 2.35
-- 커널 버전 확인
$ uname -a
-- OS 버전 확인. redhat or ubuntu
$ cat /etc/redhat-release
$ cat /etc/os-release
* 각 메이저 버전별 glibc 와 glib2 버전 비교
- Redhat 6 군
Redhat 6.4 | CentOS 6.4 | ||
glibc | 2.12 | 2.12.1-1.107 | |
glib | 2.22.5-7 | ||
커널 | 2.6.32-358 |
- Redhat 7 군
Redhat 7.9 | CentOS 7.9 | amazon linux1 | |
glibc | 2.17-317 | 2.17-325 | 2.17-55.145 |
glib2 | 2.56 | 2.56.1-9 | 2.54.2-2 |
커널 | 3.10.0-1160 | 3.10.0-1160.59.1 | 3.14.48-33.39 |
- Redhat 8 군
Redhat 8.8 | CentOS 8.5 | Rocky 8 | amazon linux2 | |
glibc | 2.28-225 | 2.28-164 | 2.28-225 | 2.26-32 |
glib2 | 2.56.4-161 | 2.56.4-156 | 2.56 | 2.54.2-2 |
커널 | 4.18.0-477.10.1 | 4.18.0-348 | 4.18.0-477.10.1 | 4.14.133-113.105 |
- Redhat 9 군
Redhat 9.2 | Rocky 9 | amazon linux 2023 | |
glibc | 2.34-60 | 2.34-60 | 2.34-52 |
glib2 | 2.68.4-6 | 2.68 | 2.74.7-688 |
커널 | 5.14.0-284.11.1 | 5.14.0-284.11.1 | 6.1.38-59.109 |
* 버전별 호환성
Redhat 7 = CentOS 7 과는 binary 레벨에서 호환됩니다. 즉, 돌고 있는 프로그램 그대로 떠다가 옮기면 잘 돌아갑니다.
동일하게 Redhat 8 = CentOS 8 = Rocky 8 끼리 Redhat 9 = Rocky 9 끼리 호환이 됩니다. 주의! 다른 버전끼리는 호환되지 않습니다.
사실 설치 진행화면을 보면 redhat 이나 centos 나 rocky 리눅스나 모두 동일하며 로고만 바뀌어 있는 것처럼 보입니다.
* Ubuntu 추가
사실 ubuntu 는 apt 로 패키지 & 종속성 관리가 더 편해서 그런지 glibc 관련 문제는 거의 겪어 보지 못했습니다. 게다가 심한 경우 20.04 LTS 에서 22.04 LTS 로 메이저 버전업을 시켜버리기도 하니....신기한 넘.
그럼에도 아쉬울까봐 ubuntu 도 버전을 찾아서 정리해 봅니다.
18.04.6 LTS | 20.04.6 LTS | 22.04.4 LTS | 24.04 LTS | |
glibc | 2.27 | 2.31 | 2.35 | 2.39 |
커널 | 5.4.0-150 | 5.15.0-91 | 6.5.0-15 | 6.8.0-31 |
* 버전 업시 주의 사항
최근에는 어플리케이션중 c 소스로 운영되는 곳들이 별로 없을 것이라서 큰 문제는 없을 겁니다. 특히 python 이나 java 라면 os 의 버전과는 연관성이 많이 줄어듭니다.
java 의 경우 간혹 c 로 작성된 JNI 모듈을 가지고 있다면 새로 컴파일을 해야할 수도 있습니다.
그외 오래된 3rd party 제공 시스템 패키지들이 의존도 문제로 설치가 안될 수 있어 사전에 확인이 필수입니다.
* 마무리
최근에는 Container 환경으로 많이들 이사를 가서 os 에 대한 선택 중요도가 많이 줄어든 편입니다.
Redhat 10 이 나올때까지 내가 여기에서 일하고 있을까? 싶지만.. 항상 걱정은 현실로 다가오더라는...
'나름 IT 이야기' 카테고리의 다른 글
갤럭시 워치4 vs 갤럭시 핏2 (0) | 2023.06.30 |
---|---|
Acer One 13 노트북 배터리 교체 (3) | 2023.03.29 |
잡담 - 키보드 이야기1 (2) | 2023.03.17 |
저전력, 저성능 - 스틱 PC 3종 소개 (0) | 2023.02.06 |
Windows 10 Home 에서도 '원격 데스크탑 연결' 을 가능하게 해주는 - RDP Wrapper 소개 (0) | 2022.04.29 |