반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

비구름

21. Linux 패키지 관리(2) 본문

공부

21. Linux 패키지 관리(2)

비구름 2022. 3. 3. 02:50
반응형

저번 포스팅에서 yum과 rpm을 사용해본 것에 이어서 이번 포스팅에서는 Local Repository 만들기와 source 설치를 해보겠습니다.

 

목차

1. Local Repository 만들기

2. Source 설치

1. Local Repository 만들기

1.1. Local Repository 생성

1.1.1. 실습에 사용할 iso 파일을 다운로드하기 위해 wiki.centos.org에 접속하고 Download를 클릭합니다.

1.1.2.  CentOS 7버전의 mirrors를 클릭합니다.

1.1.3. 아래 주소 중에서 아무곳이나 들어갑니다. (저는 kaist로 들어갔습니다.)

1.1.4. Everything 이라고 적혀 있는 iso 파일을 다운로드합니다. (minimal 버전과 다르게 CentOS의 모든 패키지 파일이 담겨 있음)

1.1.5. 실행중인 가상머신의 CD/DVD에 아래와 같이 iso 파일을 추가합니다.

1.1.6. /dev/sr0을 사용하기 위해 /cd 디렉토리를 생성 후 마운트 합니다.( /dev/sr0, /dev/cdrom 모두 가능)

1.1.7. /local 디렉토리를 생성 후 /cd/Packages/ 의 패키지 파일을 /local 디렉토리로 복사하여 옮깁니다.

(& : 백그라운드에서 작업을 진행하는 명령어, 포어그라운드에서 작업하게 되면 작업이 진행되는 동안 사용자가 쉘 스크립트를 사용할 수 없기 때문에 백그라운드에서 진행)

1.1.8. # jobs 명령어를 통해 백그라운드에서 진행중인 작업을 확인할 수 있습니다.

작업중인 모습
작업완료 메시지

1.1.9. /etv/yum.repos.d/ 에 있는 기존 repository 파일을 확인합니다.

1.1.10. /backup 디렉토리를 생성 후 기존 repository을 모두 /backup 디렉토리로 옮깁니다.

1.1.11. 기존 repository을 모두 옮기면 아래와 같이 yum 명령어로 설치가 안되는 것을 확인할 수 있습니다.

1.1.12. vi 편집기를 통해 /etc/yum.rpes.d 디렉토리에 local.repo라는 파일을 생성합니다.

( [ ] : 저장소 이름, reponame : 저장소 표시이름, baseurl : 저장소 주소, enabled : 활성화 여부, gpgcheck : 인증서 사용여부 )

local.repo 파일 작성 내용

1.1.13. /createrpo 디렉토리로 이동 후 이전 포스팅에서 다운로드했던 파일들을 rpm 명령어로 설치합니다.

의존성 문제가 발생하지 않게 순서대로 설치

1.1.14. # createrepo 명령어로 repository를 생성합니다.

1.1.15. # yum repolist 명령어를 통해 생성된 repository를 확인합니다.

1.1.16. # yum install -y dhcp 명령어를 통해 패키지가 정상적으로 설치되는 것을 확인합니다.

1.2. Local Repository 삭제

1.2.1. # rm 명령어로 /local과 /etc/yum.repos.d/local.repo 를 삭제하고 # mv 명령어로 /backup으로 옮겼던 기존 repository 파일을 다시 /etc/yum.repos.d로 옮깁니다.

1.2.2. # yum remove 명령어로 createrepo와 같이 설치한 의존성 파일들을 삭제합니다.

1.2.3. /dev/sr0의 마운트를 해제합니다.

2. Source 설치

2.1. Source 설치 순서

2.1.1.환경설정

- 설치 위치 및 필요 lib 구성

# ./configure prefix=설치경로 명령어 사용

2.1.2. 컴파일

- 인간이 인식할 수 있는 프로그래밍 코드로 작성된 파일을 기계어로 번역하는 작업

- # make 명령어 사용

2.1.3. 설치

- install

- # make install 명령어 사용

 

2.2. Source 설치 실습 (httpd 설치)

2.2.1. gcc, gcc-c++, expat-devel, wget 패키지를 먼저 설치해주고 시작합니다.

(wget : url 주소를 통해 파일을 다운로드할 수 있음)

2.2.2. yum install httpd 명령어를 통해 설치할 패키지 파일과 의존 파일들을 확인합니다.

2.2.3. Web Server에 접근하기 위해 방화벽을 해제합니다.

2.2.4. apache.org - download - distribution - httpd/ 에서 링크 주소를 복사합니다.

2.2.5. /http 디렉토리를 생성 후 해당 디렉토리로 이동 후 # wget 명령어로 링크 주소 복사한 파일을 다운로드 합니다.

2.2.6. tar xvfz 명령어로 압축된 아카이브 파일을 해제합니다.

2.2.7. 아카이브를 해제하여 생긴 디렉토리로 이동 후 INSTALL 파일을 확인합니다.

INSTALL 파일에 있는 설치방법 

2.2.8. configure를 통해 패키지를 설치하려고 하면 아래와 같이 APR이 없어 설치할 수 없다는 에러가 발생합니다.

2.2.9. apache.org - download - distribution - apr/ 에서 아래 파일의 링크 주소를 복사합니다.

2.2.10. /http 디렉토리로 이동 후 #wget 명령어로 파일을 다운로드합니다.

2.2.11. # tar xvfz 명령어로 압축된 아카이브를 해제합니다.

2.2.12. 아카이브를 해제하여 생성된 디렉토리로 이동 후 apr을 설치합니다.

컴파일 명령어
컴파일 완료
설치

2.2.13. apr을 설치 후, 다시 httpd 설치를 진행하면 이번에는 APR-util이 없어서 설치할 수 없다는 에러가 발생합니다.

(--with를 통해 apr 설치된 위치를 알려줌)

2.2.14. apache.org - download - distribution - apr/ 에서 apr-util 파일의 링크 주소를 복사합니다.

2.2.15. /http 디렉토리에서 #wget 명령어를 통해 파일을 다운로드합니다.

2.2.16. tar xvfz 명령어를 통해 apr-util 파일의 압축 해제합니다.

2.2.17. 생성된 apr-util-1.6.1 디렉토리에서 apr-util을 설치합니다.

컴파일이 정상적으로 완료되면 설치

2.2.18. apr-util 설치 후 httpd의 설치를 다시 진행합니다. pcre가 존재하지 않는다는 에러메시지가 나오고 pcre를 다운로드할 수 있는 주소를 알려줍니다.

2.2.19. pcre.org - https://sourceforge.net/projects/pcre/files/ - pcre - 8.45 에서 pcre 파일의 링크 주소를 복사합니다.

2.2.20. /http 디렉토리에서 # wget 명령어를 통해 다운로드합니다.

(pcre 인증서 오류가 발생하면 뒤에 --no-check-certificate를 붙여야 함)

2.2.21. # tar xvfz 명령어로 다운로드된 pcre 파일의 압축을 해제합니다.

2.2.22. pcre 파일을 설치합니다.

컴파일이 정상적으로 완료되면 설치

2.2.23. httpd 설치를 진행합니다. (정상적으로 설치되는 것을 확인할 수 있음)

컴파일이 정상적으로 완료되면 설치

2.2.24. 설치한 httpd를 실행합니다. (명령어가 있는 위치를 알려줘야 함)

2.2.25. 실제 PC에서 가상 머신의 Web Server 들어가 작동을 확인합니다.

정상적으로 작동하는 모습

2.2.26. /root 디렉토리를 확인합니다.

- .bashrc : 이미 로그인 한 상태에서 새 터미널 창을 열 때마다 로드됨
- .bash_profile :시스템에 로그인할 때마다 로드됨  .bash_profile 파일에 PATH에 경로를 추가하여 경로를 생략하여 사용 가능)

2.2.27. /root/.bash_profile 파일의 PATH에 경로를 추가합니다.

2.2.28. /root/.bash_profile로 수정된 값을 적용시킵니다.

2.2.29. 경로를 붙이지 않고 apachectl을 사용할 수 있는 것을 확인합니다.

 

 

반응형
Comments