반응형
1. Clock 확인
[root@localhost ~]# cat /etc/sysconfig/clock
ZONE="Asia/Seoul"
2. Clock 설정
- 차례로 나오는 선택지에 번호 입력 후 Enter
- 첫 번째 선택지: 지역(Continent 또는 Ocean) 선택, 두 번째 선택지: 나라 선택
[root@localhost ~]# tzselect
3. profile이나 .bash_profile 등 쉘 초기화 파일에 timezone을 추가
- 서버 시스템 시간을 설정하려고 하면 ~/.bashrc에 추가한다.
- 개별 사용자에 대한 시간을 설정하려고 하면 ~/.bash_profile에 추가한다. // 원격 서버와 이용하는 개별 사용자가 다른 Timezone에 있고 개별 사용자의 Local Time 설정이 중요할 때, e.g. 특정 서비스를 이용하는 글로벌 사용자의 이용내역(시간 포함)을 DB에 넣으려고 할 때
- 로그인할 때마다 시간을 로드하고 싶으면 ~/.profile에 추가한다.
export TZ='Asia/Seoul'
4. 서브스크립션 등록
- 서브스크립션을 등록할 때 날짜가 안맞으면은 액세스가 거부될 수 있다.
[root@localhost ~]# subscription-manager register
등록 대상 : subscription.rhsm.redhat.com:443/subscription
사용자 이름 : ####
암호 :
서버 ID를 확인할 수 없음 : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:897)
- timedatectl로 날짜 및 시간을 설정한다
[root@localhost ~]# timedatectl set-time 2022-05-20
[root@localhost ~]# timedatectl set-time 09:38:00
- redhat.com에서 만든 아이디와 비밀번호를 등록한다.
[root@localhost ~]# subscription-manager register --auto-attach
또는
[root@localhost ~]# subscription-manager register --username [USERNAME] --password [PASSWORD] --auto-attach
5. 잘 등록되었는지 확인
[root@localhost ~]# subscription-manager identity
6. 업데이트 및 확인
[root@localhost ~]# yum update
[root@localhost ~]# yum check-update
7. OS 설치상태 확인
[root@localhost ~]# subscription-manager list
+-------------------------------------------+
설치된 제품 상태
+-------------------------------------------+
제품 이름: Red Hat Enterprise Linux for Real Time
제품 ID: 287
버전: 8.5
아키텍처: x86_64
상태: 알 수 없음
상태 정보:
시작: 2021년 08월 13일
종료: 2022년 08월 13일
제품 이름: Red Hat Enterprise Linux for x86_64
제품 ID: 479
버전: 8.5
아키텍처: x86_64
상태: 알 수 없음
상태 정보:
시작: 2021년 08월 13일
종료: 2022년 08월 13일
-------------------------------
8. dnf 업데이트
- RHEL8에서 "dnf"는 "yum"에서 발생하는 비효율적인 의존성 관리의 기술적 문제를 해결하였다.
[root@localhost ~]# dnf update
9. RealTime 설치하기
[root@localhost ~]# yum repolist all // 레포지터리 및 상태 확인
[root@localhost ~]# subscription-manager repos --enable rhel-8-for-x86_64-rt-rpms // 리얼타임 설치를 위해 관련 레포지토리 활성화
[root@localhost ~]# yum groupinstall RT // Real Time package group 설치
[root@localhost ~]# yum install tuna // 스케줄링, 스레드 우선순위, IRQ 핸들링, CPU 코어 및 socker isolation을 위해 Tuna tool 설치
[root@localhost ~]# rpm -ql rt-setup // rpm -ql 명령을 통해 Real Time package group 설치 위치와 구성요소가 성공적으로 설치되었는지 확인 가능
[root@localhost ~]# uname -a // 리눅스 시스템 정보 확인
10. 소프트웨어 번들 설치
[root@localhost ~]# subscription-manager repos --enable rhel-8-for-$(uname -i)-baseos-debug-rpms
[root@localhost ~]# subscription-manager repos --enable rhel-8-for-$(uname -i)-baseos-source-rpms
[root@localhost ~]# subscription-manager repos --enable rhel-8-for-$(uname -i)-appstream-debug-rpms
[root@localhost ~]# subscription-manager repos --enable rhel-8-for-$(uname -i)-appstream-source-rpms
// 개발환경을 구성하는 데 필요한 레퍼지토리 활성화, baseOS: 운영체제의 기반이 되는 기본 코어 세트를 제공하는 데 사용, Appstream: 운영 서비스에서 수행 가능한 애플리케이션, 런타임언어 및 데이터베이스 등이 포함.
[root@localhost ~]# yum groupinstall "Development Tools"
// "Development Tools"는 yum 그룹으로 각 응용 프로그램을 별도로 설치할 필요 없이 한 번에 설치할 수 있는 미리 정의된 소프프트웨어 번들이다(e.g. gcc, flex, autoconf, etc).
11. 기본 개발언어 및 도구 설치
[root@localhost ~]# yum install llvm-toolset
// llvm-toolset은 llvm, clang, clang-tool-extra 및 lldb 패키지를 가져오는 메타패키지이다.
[root@localhost ~]# yum install gcc-gfortran
// gfortran은 gcc 일부인 GNU Fortran 컴파일러다.
[root@localhost ~]# yum install gdb valgrind systemtap ltrace strace
// gdb: GNU 소프트웨어 시스템을 위한 기본 디버거, valgrind: Linux-x86용 실행파일의 디버깅과 프로파일링을 위한 오픈소스 툴, systemtap: 실행중인 리눅스 커널 기반 운영체제들을 동적으로 인스트루먼팅하기 위한 스크립트 언어이자 툴, ltrace: 사용자 공간 애플리케이션의 공유 라이브러리에 대한 호출을 보여주는데 사용되는 리눅스의 디버깅 유틸리티, strace: 진단, 디버그, 지시적 사용자 공간 유틸리티이다.
[root@localhost ~]# yum install yum-utils
// yum 저장소 관리, 디버그 패키지 설치, 소스 패키지, 저장소 및 관리의 확장 정보를 위한 도구 및 프로그램 모음
12. 커널기반 개발 패키지 설치
[root@localhost ~]# dnf erase kernel-debuginfo
// 패키지 설치 전에 파일끼리 충돌이 일어날 수 있기 때문에 kernel-debuginfo를 지움
[root@localhost ~]# stap-prep
// 현재 실행중인 커널 또는 선택적으로 사용자가 제공한 커널버전과 일치하는 커널 헤더, 디버그 기호 및 빌드 도구를 설치하여 systemtap 사용을 위해 시스템 준비
[root@localhost ~]# yum install -y kernel-devel-4.18.0-240.el8.x86_64
// 커널 헤더 설치
[root@localhost ~]# yum install -y kernel-devel-`uname -r`
// 현재 커널의 릴리즈 버전에서 업그레이드 가능한 커널 설치
[root@localhost ~]# yum update
// 커널이 업그레이드 되었기 때문에 패키지도 업그레이드 해주어야 함
[root@localhost ~]# yum install perf papi pcp-zeroconf valgrind strace sysstat systemtap
// perf: 명령 행에서 액세스하며 여러 부속 명령을 제공하는 사용자 공간 제어 유틸리티,
// papi: 성능 응용 프로그래밍 인터페이스, pcp-zeroconf: 최소한의 오버헤드로 시스템 수준
// 성능 데이터의 포괄적인 장기 로깅이 필요한 고객지원 환경에서 가장 일반적으로 필요한 PCP 기능의
// 설치 및 구성을 단순화 하기 위한 것, sysstat: 리눅스용 성능 모니터링 도구 모음,
// 나머지 것도 업그레이드 된 커널에 맞춰서 다시 설치
13. c++ 설치
[root@localhost ~]# sudo yum install libstdc++-static
// g++ : cpp파일에서 c와 c++이 혼용되서 쓰여도 컴파일가능(.c도 컴파일 가능).
[root@localhost ~]# yum -y install gcc-c++
// gcc : .c면 c언어만 써야하고, .cpp이면 c++언어만 써야 컴파일가능.
14. 일반 사용자에게 관리자 권한 주기
[root@localhost ~]# visudo /etc/sudoers
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
namsaeng ALL=(ALL) ALL
** 위에서 기본적인 c++ 개발환경을 구성했다면, 아래에서는 cpp_redis 서버 구성을 위해 필요한 절차를 나타낸다.
15. CMake 설치
- CMake 사이트에서 파일을 받은 후 아래의 명령어 실행
[nam@localhost ~]$ tar zxf cmake-3.21.3.tar.gz
[nam@localhost ~]$ cd cmake-3.21.3
[nam@localhost ~]$ ./bootstrap && make && sudo make install
[nam@localhost ~]$ yum install gcc gcc-c++ kernel-devel make
[nam@localhost ~]$ env CC=cc CXX=CC ./bootstrap
16. cpp_redis 설치
- github에서 cpp_redis를 받아서 압축을 풀고 최상위 디렉터리로 이동
[nam@localhost cpp_redis-master]$ sudo mkdir build
[nam@localhost cpp_redis-master]$ cd build
[nam@localhost cpp_redis-master]$ sudo cmake .. -DBUILD_EXAMPLES=true
[nam@localhost cpp_redis-master]$ vi ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}
export REDIS=/usr/include/c++/8/cpp_redis-master
. "$HOME/.cargo/env"
[nam@localhost cpp_redis-master]$ cd redisdb
[nam@localhost redisdb]$ sudo cp redis-server /usr/local/bin/
// 이제 쉘에서 경로 상관없이 redis-server 가능함
[nam@localhost redisdb]$ sudo cp redis-cli /usr/local/bin/
// 이제 쉘에서 경로 상관없이 redis-cli 가능함
[nam@localhost redisdb]$ sudo firewall-cmd --zone=public --add-service=redis --permanent
[nam@localhost redisdb]$ sudo firewall-cmd --reload
// redis 방화벽 오픈
반응형
'프로그래밍 > OS' 카테고리의 다른 글
RHEL 부팅 USB 만들기, 설치 및 USB 원상복구 방법 (0) | 2022.05.09 |
---|---|
서버 간 User Password 없이 SSH 접속 (0) | 2022.04.20 |
RHEL8 기본 튜닝 가이드 (0) | 2022.04.20 |
RHEL8에서 Docker 사용하기 (0) | 2022.04.11 |
Windows NTP Server - Linux NTP Client 동기화 (0) | 2022.04.04 |
댓글