- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Shell script
- 자바
- 쉘 스크립트 if문
- LEVIATHAN
- JSP
- 메소드
- synology
- 리눅스
- Android
- Python
- nginx
- System
- docker
- centos docker
- GPIO
- ACL
- 쉘 스크립트 기초
- 그라파나
- 프로젝트
- RaspberryPi
- 네트워크
- 안드로이드
- Tkinter
- 쉘 스크립트
- 클라우드
- GUI
- Linux
- API
- 라즈베리파이
- Java
- Today
- Total
IT창고
리눅스 소프트웨어 관리 본문
CentOS 6.x 리눅스에 소프트웨어를 관리하는 명령어가 있는데 rpm과 yum을 알아보겠습니다.
rpm은 Redhat Package Management로 패키지 관리 도구입니다. rpm명령어를 테스트해보려면 CentOS DVD 이미지 파일(.iso)을 마운트 해주시면 됩니다. 마운트하는 법은 mount -t iso9660 /dev/cdrom /mnt 입니다. 최상의 디렉토리에 /mnt가 있는데 마운트전용 디렉토리입니다. /dev/cdrom은 cdrom장치파일이며 iso9660은 iso시디이미지 파일을 사용하기위한 타입입니다. 마운트된 디렉토리에 들어가서 ls | wc -l명령어를 입력해보시면 파일개수를 파악할수있습니다.
Package디렉토리에 들어가면 많은 rpm확장자 파일들이 있는데 파일을 구분하는 방법으로 예를 들어 zenity-2.28.0-1.el6.x86_64.rpm 파일로 구분해보겠습니다. zenity는 패키지의 이름이고 2.28.0은 버전이며 1.el6은 릴리즈(Enterprise Linux6)이고 x86_64는 아키텍쳐(x86_64 -> 64bit 운영체제용 i386 -> 32bit 운영체제용 noarch ->아키텍쳐와 상관없이 설치가 가능한 패키지)이며 rpm은 확장자를 뜻합니다.
rpm 패키지 설치하는 법을 알아보겠습니다. 옵션은 -i는 install 설치이며 -v는 verbose 설치과정을 출력하고 -h는 hash 해시기호 #으로설치과정을 표현합니다.
ex)rpm -ivh xterm-253-1.el6.x86_64.rpm // x-windows 환경에서 동작하는 터미널프로그램입니다.
설치를 하게되면 오류가 발생하게됩니다.
오류: Failed dependencies: //의존성 오류 발생
libXpm.so.4()(64bit) is needed by libXaw-1.0.11-2.el6.x86_64
이러한 의존성 오류를 무시하고 설치하는 방법이있는데 옵션 --nodeps는 의존성을 무시하고 설치하고 --force는 강제로 패키지를 설치합니다. 둘다 의존성을 무시하고 설치하기에 설치된 패키지는 불안전합니다.
ex) rpm -ivh xsane-0.997-8.el6.x86_64.rpm --nodeps // 의존성을 무시하고 설치를 합니다.
또한 ivh옵션말고 Uvh옵션으로 하면 업데이트와 패키지 설치를 모두 진행하는 명령어가 있습니다.
패키지 정보를 검색하는 명령어를 알아보겠습니다. rpm명령어에 옵션을 추가하면 되는데 -q옵션에 q뒤에 옵션을 붙입니다. a는 전체 패키지 목록을 출력하고 f는 파일이 포함되어 있는 패키지명을 출력하고 i는 상세정보를 확인하며 l은 패키지가 설치한 파일의 목록을 출력하고 R은 패키지의 의존성을 확인합니다.
ex) rpm -qf [파일명] , rpm -qi [패키지명]
패키지를 삭제하는 법은 -e옵션으로 패키지를 삭제합니다. ex) rpm -e [패키지명]
rpm명령어를 실습해보자한다면 인터넷사이트에서 figlet rpm파일을 찾아 설치해봅니다.
Tip 구글에 찾아보면 금방나오지만 혹시 모르니 사이트주소 링크입니다. https://www.rpmfind.net/linux/rpm2html/search.php?query=figlet
자신의 리눅스에 맞는 figlet을 찾아 설치해봅니다.
yum(Yellowdog updater modified)에 대해 알아보겠습니다. yum은 rpm기반의 패키지 관리도구로 의존성 문제를 자동으로 해결해줍니다. 패키지를 분석하여 패키지의 의존성문제를 해결하고 시스템에 설치된 버전과 저장소에 저장되어있는 패키지 버전을 비교해서 자동으로 업데이트를 해줍니다.
패키지의 대한 정보는 저장소(Repository)에 가지고 있으며 DVD 이미지 파일이나 네트워크가 연결되어 있어야만 명령어를 사용할수있습니다.
형식은 yum [옵션] [명령] [패키지명] 입니다. 옵션은 -y가 있고 설치과정에 출력되는 모든 질문에 yes로 대답을 해줍니다.
명령에 다양한 종류가 있는데 6가지만 알아보겠습니다. install은 패키지설치이며 update는 업데이트를해주며 check-update는 패키지 업데이트 여부를 확인하고 remove는 패카자 삭제를 뜻하며 list는 패키지 목록을 확인하고 info는 패키지 정보를 확인합니다. list에는 추가 옵션이 있는데 list all은 이미 설치되어 있거나 설치가 가능한 패키지의 목록을 출력하고 list available는 설치가 가능한 패키지의 목록을 출력하고 list update는 업데이트가 가능한 패키지의 목록을 출력하고 list installed는 이미 설치된 패키지의 목록을 출력합니다.
Tip으로 rpm -ivh[패키지명]은 yum localinstall [패키지명].rpm과 같은 역활을 합니다.
yum search [문자열]은 패키지명이나 정보에 대해서 해당 문자열을 찾아 출력해줍니다. 만약 패키지의 이름이 기억이 안날경우에 사용합니다. ex) yum search vim //vim과 관련된 패키지목록을 알려줍니다.
yum clean all 는 패키지 목록을 제거하여 다음 yum명령어 실행시 패키지목록을 새로 다운받는 명령어입니다.
다음으로 그룹 패키지에 대해 알아보겠습니다. 그룹 패키지는 특정 환경을 구성하기 위해서 필요한 패키지들을 그룹으로 묶어 설치할 수 있도록 만든 패키지입니다. 명령어는 yum groupinstall [그룹 패키지명]입니다.
yum grouplist를 입력하면 그룹패키지 목록이 출력되는데 여기서 확인하고 설치하면 됩니다 단 한글패치가 되어있을 경우 그룹패키지 목록을 출력하면 한글로 출력되는데 한글로 출력되었다고 ex) yum groupinstall 백업 서버 이런 식으로 설치할경우 실행이 불가능합니다. 환경변수를 설정해줘야하는데 echo $LANG을 입력하시면 ko_KR.UTF-8로 출력이됩니다. LANG=us_EN.UTF-8을 입력하면 언어가 영어로 바뀌면서 다시 yum grouplist를 입력하면 영어로 패키지명이 출력이됩니다. 여기서 영문으로 확인하시고 그룹 패키지를 설치하시면 됩니다.
그룹 패키지를 사용할때는 패키지명을 구분하는 구분자가 "공백"이기에 백업 / 서버로 백업과서버 사이에 공백이 있으면 다른 패키지로 인식합니다. 그렇기에 ""로 묶어서 사용해야합니다.
마지막으로 로컬저상소(Repository / REPO)서버에 대해 알아보겠습니다.
yum의 설정 파일을 확인하시면 repo서버에 대해 알수있는데 /etc/yum.conf 는 주설정 파일이고 /etc/yum.repos.d/에는 저장소 서버 정보 파일이 있습니다. 이곳에 있는 정보파일로 yum소프트웨어 관리프로그램이 작동되게 됩니다. yum.repos.d 디렉토리안을 보면 CentOS-Base.repo (CentOS 기본 패키지 파일저장소 정보파일)파일이 있습니다. 이파일을 vi로 들어가보면 아래의 사진과 같습니다.
위의 사진에 있는 설정으로 yum이 작동되는데 형식을 알아보도록 하겠습니다.
먼저 []안에는 NAME이 들어가고 저장소 식별자 입니다. [base]는 기본 패키지 저장소 정보이고 [updates]는 업데이트 패키지 저장소 정보이고 [extras]는 추가 배포 패키지 저장소 정보를 나타내는 식별자입니다.
name에는 저장소의 이름을 지정합니다.
mirrirlist에는 baseurl에 설정된 URL이 생략되어 있으면 대신 mirrirlist에 적혀 있는 URL이 사용되는데 해당 URL은 전 세계에 분포되어 있는 많은 Repository서버와 연결이 됩니다. 기본적으로 fastest mirror plugin이 설치되어 있어 yum을 사용한 컴퓨터의 ip주소를 기반으로 가장 가까운 위치의 Repository서버와 연결을 시켜줍니다 대한민국에는 네이버와 카카오 등의 Repo서버가 있습니다.
baseurl은 CentOS에서 제공하는 Repository서버의 URL이 명시되어 있습니다.
gpgcheck에는 패키지 GPG서명을 확인할지 여부를 1(사용), 0(사용안함)으로 지정할수있습니다.
gpgkey에는 GPG키의 URL을 지정할수있습니다.
enable은 해당 저장소 사용 여부를 1,0으로 지정할수있습니다 생략할 경우 기본값1(사용)으로 동작합니다.
위의 내용을 바탕으로 repo설정 파일을 직접 만들어 볼수 있습니다.
DVD이미지파일(iso)을 마운트하여 사용한다면 위와 같은 식으로 파일을 설정하여 사용하실수있습니다. 이 방법은 네트워크가 안되는 환경이나 느린 환경에서 사용하시면 좋습니다.
yum명령어로 작업하다보면 yum명령어가 제대로 작동하지 않는 경우가 있습니다. 명령어가 제대로 작동하지 않을 경우의 조치방법과 이유에 대해 알아 보겠습니다.
1) 서버에는 yum프로세스가 하나만 생성될수 있습니다. 즉 여러 세션에서 실행될수 없습니다. 동시에 여러개의 yum 프로세스가 생성이 되면 먼저 생성된 순으로 하나씩 처리가 됩니다 이때 이전에 생성된 yum프로세스는 먼저 생성된 프로세스가 처리가 될때까지 대기 상태로 있습니다.
조치방법: 백그라운드 상태에서 동작중이거나 다른 세션에서 실행중일때 yum명령어 사용시 나오는 화면에는 해당 yum프로세스의 PID가 출력됩니다. 이 PID를 확인하고 kill -9 [PID]를 해줘서 해당 yum프로세스를 종료시켜야 yum명령어가 사용이 가능해집니다.
2) 로컬네임서버 설정이 잘못되어 있는 경우입니다. 로컬네임서버는 시스템에 도메인 주소를 사용할때 해당 도메인 주소에 대한 ip주소를 변환하여 해당 시스템에게 전달해주는 DNS서버입니다. /etc/resolv.conf 파일을 확인해봅니다. 도메인에 해당 ip주소를 얻지 못할경우 접속에 실패하여 yum명령어를 사용할수 없게 됩니다.
'서버운영 > Linux' 카테고리의 다른 글
리눅스 VMware Network (0) | 2017.09.12 |
---|---|
리눅스 네트워크 (0) | 2017.09.12 |
리눅스 부팅프로세스 (0) | 2017.09.08 |
리눅스 find 명령어 활용 (0) | 2017.09.07 |
리눅스 압축과 아카이브 (0) | 2017.09.06 |