본문 바로가기
Linux

Package 관리-2 (Source, 스크립트, Ncloud)

by Nirah 2022. 11. 7.

이전에 이어서 package 관리법을 포스팅 하겠습니다.

 

 

목차

 

    package 관리-1

1. yum 설치

2. rpm 설치

 

    package  관리-2

3. source 설치 

4. Bash shell 스크립트 작성

 

    package  관리-3

5. local Repository

 

 

 

 

 

 

<< 3. source (Binary) >>

 

 장점 : 설치 위치나 필요 lib 같은 모듈을 선택 가능한 등 커스터마이징이 가능하다.

최신버전 설치 가능한 장점이 있다.

 

 단점 : 너무너무 어렵다.

update 전에 구성파일과 데이터파일을 백업할 필요가 있다.

다시 설정 파일과 데이터 파일을 해당 위치로 저장해야 한다.

 

 


source 설치 3단계

 

1. 환경설정 : 설치 위치나 연관된 패키지 또는 lib 지정

# ./configure --prefix=설치경로 --with-패키지명=경로 --with-패키지명=경로

             컴파일된 파일 설치할 경로    필요한 연관 파일 위치1                 2

(해당 내용을 타이핑 할때 너무 길면 옆이 잘리니까 \(역슬레시) 하면 그 아래로 이어서 칠 수 있음)

2. 컴파일 : 사람이 식별하는 프로그래밍 언어로 작성된 코드를 기계어로 번역

# make   <->   # make clean
# make -C [파일경로] : 경로 지정 옵션

3. 설치
# make install   <->   # make uninstall

4. 삭제
설치된 디렉토리 삭제




 

<< Source - httpd 설치 실습 >>

소스 설치법은 httpd를 설치하고 apache를 실행해서 직접 설정한 문구를 페이지에 띄우는 것으로 실습을 하겠다.

소스 설치는 복잡하다.

설치하고자 하는 패키지에 연관성이 있는 파일들을 중간 중간 요구하는 메세지를 띄우며 설치가 멈추는데,

그때 그때 아파치 같은 저장소에서 구해다 주면 된다.

 

 

 

 1. gcc, gcc-c++, expat-devel 은 미리 yum 으로 설치한다. (설치 파일을 구해서 미리 깔았다고 친다)

얘네들은 컴파일을 할때 쓰는 프로그램이다.

# yum install -y gcc gcc-c++ expat-devel wget

(wget은 리눅스에서 인터넷 링크 주소를 통해 웹페이지를 열어 바로 열어주는 기능을 제공하는 유용한 패키지다.)

 


 2. 설치 디렉토리 생성
# mkdir /web
# cd /web 

 

 3. 필수 binary Download

 


httpd, apr, apr-util - apache.org

pcer - pcre.org

에서 각각 다운로드 가능하다.

 

 4. httpd 다운로드

# wget https://downloads.apache.org/httpd/httpd-2.4.48.tar.bz2

# ls
# tar xvfj httpd-2.4.48.tar.bz2

(이때 bzip2가 설치되어있지 않으면 안풀릴 것이다. 없으면 따로 설치해주자)
# ls
# cd httpd-2.4.48
# vi INSTALL
# ./configure --prefix=/usr/local/apache2


apr과 apr-util, 그리고 pcre가 함께 설치되어있어야 한다.

아래 주소를 직접 아파치에서 찾아서 링크를 복사해 와야 한다.# cd ..
# wget https://downloads.apache.org/apr/apr-1.7.0.tar.bz2
# wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.bz2
# wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.bz2

아카이브 및 압축 해제한다.
# tar xvfj apr-1.7.0.tar.bz2
# tar xvfj apr-util-1.6.1.tar.bz2
# tar xvfj pcre-8.44.tar.bz2

apr 부터 설치한다.
# cd apr-1.7.0
# vi README

(설치 방법은 여기 있다 읽어보자)
# ./configure --prefix=/web/apr

(설치 위치 지정. 해당 디렉토리의 설치파일의 컴파일 후 위치를 정해주는것이다.)
# make && make install

(컴파일 후 설치)

apr-util 설치
# cd ../ apr-util-1.6.1
# ./configure --prefix=/web/aprutil --with-apr=/web/apr

(이렇게 with 구문은 필요한 연관 파일의 위치이다. 아까 apr를 컴파일한 위치를 알려줘야한다.)
# make && make install

pcre 설치
# cd ../pcre-8.44
# ./configure --prefix=/web/pcre
# make && make install

 

드디어 httpd를 설치 할 수 있게 된다.
apache web server Banari
# cd ../httpd-2.4.48
# ./configure --prefix=/usr/local/apache2 --with-apr=/web/apr --with-apr-util=/web/aprutil --with-pcre=/web/pcre
# make && make install

 

apachectl 화면 출력 내용 바꾸는 경로
vi /http/apache2/htdocs/index.html

여기 문서를 수정해서 웹페이지에 띄울 텍스트를 지정해 보자.


apache 실행
# /usr/local/apache2/bin/apachectl start

방화벽 open
# systemctl stop firewall
# firewall-cmd --permanent --zone=public --add-port=80/tcp
# firewall-cmd --reload

 

실제 PC에서 웹 페이지에 머신 아이피 주소를 입력한다.

 

 

 

 

 

=======================================================================================

 

<< Bash Script 작성 >>

 

위에서 httpd를 설치한 과정을 스크립트로 만들어서

새로 만든 N-cloud 서버나 가상머신들에도 바로 httpd를 편리하게 설치하고 시작하는 것을 해볼 것이다.

 

참고사항

 

1. vi 로 http.sh 파일을 생성후 스크립트를 작성하여 실행파일 만들기를 시작한다.

(.sh 로 이름을 지정해 줘야 실행하기 편하다)

파일 실행은 sh /Script1
./Script1

2. 스크립트 파일의 맨 앞줄에는 아래와 같이 bin의 bash shell 에서 작업하겠다는 의미의 명령어를 넣어줘야 한다.

# ! bin/bash

 

3.  이제 httpd 소스 설치 실습때 입력한 명령어를 history를 통해 복사한다.

history 명령어는 지금까지 입력한 내용들을 전부 보여주는데, 앞에 숫자가 달려 있어서 그대로 스크립트로 쓰긴 힘들다.

http.sh 파일에 복사한 내용을 붙여넣고, 오타거나 필요 없는 내용들을 다듬는다.

 

4. # yum install -y vim

vim이란 편의 기능을 다운 받아서 vi를 대체해서 쓴다.

 

# alias vi='vim' 를 입력하여 vi라고 쳐도 vim이 실행되게 설정한다. (재부팅시 초기화)

# vi /root/.bashrc 여기에 alias 명령어로 연결한 목록을 재부팅시에도 오토로 실행시킨다.

.bashrc 파일은 사용자가 이미 로그인한 상태에서 새 셸(터미널)을 열 때마다 실행되는 셸 스크립트다.

저장 종료후 # source ~/.bashrc 라고 입력하면 환경변수류의 설정파일이 모두 적용된다. (alias포함)

Bash 셸을 시작할 때마다 .bashrc 류가 자동으로 실행된다

사용법

ctrl+v 를 눌러 '비쥬얼 블록' 모드에 들어간다.

이 상태에서 방향키를 아래로 누르거나 옆으로 옮기면 직사각형 모양으로 대량의 문자들을 선택할 수 있다.

아까 붙여넣었던 history 내용들의 머릿부분 숫자들도

비쥬얼 블록 기능을 이용해서 드레그 선택 한뒤, delete키로 삭제해보자.

참고로 스크립트 앞에 #을 일괄로 넣어서 전체를 주석 처리하는 법도 알아보자.
ctrl+v 하고 (비쥬얼 블록) 머릿부분만 아래로 드래그 하고 shift+i 키를 누르면 끼워넣기 모드로 들어가 #를 입력한다.

(마지막에 esc키까지 눌러서 해당 모드를 종료해야 적용되는 경우도 있다)

 

5.

# vi /root/.bashrc 에 대해서 알아보자.

여기에 alias 명령어로 연결한 목록이 저장된다.

.bashrc 파일은 사용자가 새 셸을 열 때마다 실행되는 셸 스크립트다.

예를 들어 # 소스 ~ / .bashrc 라고 입력하면

Bash 셸을 시작할 때마다 .bashrc 스크립트가 자동으로 실행된다

if [ -f /path/to/your/script.sh ]; then
    /path/to/your/script.sh
fi

 

 

 

6.

# echo $ USER 님 안녕하세요 라고 입력하는 등 echo 명령어를 스크립트 막줄에 포함 시켜서

스크립트가 정상 작동 했는지 확인하기 용이하다.

스크립트 작성 시 알아두면 편한 것

아래 세 가지의 차이점 유의해 둘 것

echo 'date'

echo $(date)

echo `date`

 

 

7.

[명령어1] || [명령어2]     : 명령어1이 실패하면 명령어2를 연속해서 쓴다.
[명령어1] && [명령어2]  : 명령어1이 성공하면 명령어2도 쓴다.
[명령어1] ; [명령어2]      : 명령어들을 연속해서 무조건 쓴다.
(보안 지식: 이걸 통해 여러 명령어 쓴다음 그중에 하나 먹혀라 라고 공격하는 방법이 가능하다.)
[명령어1] |  [명령어2]     : [명령어1] 안에서 [명령어2]를 실행한다.

 

8.

# cd apr-1.7.0
# ./configure --prefix=/http/apr
이 두 줄을
# /http/apr-1.7.0/configure/configure --prefix=/http/apr
으로 절대경로로 바꾸어 만들수 있다. 상대경로는 앞에서 조금 삐끗하면 다 어긋나기에 이게 더 안정적이다.

 

9. 잘 적용되는 스크립트도 다른곳에 적용하려면 또 오류를 띄울 수 있다.

그래서 새 환경에서 적용시킬 스크립트는 그전에 테스트를 한 뒤에 올려야한다.

오류에 대해서는 설명문이 나오니, 어디서 멈췄는지 확인하고 자세히 읽어보고 대처하자.

 

네이버 N클라우드 에 적용하면서 추가한 줄

 

bzip2 가 없어서 압축해제 불가

# yum install -y bzip2

 

pcre 설치 시 certificate 문제 해결

# wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.bz2 --no-check-certificate

 

deamon계정 없다는 문제 해결 (프로그램 실행 시 사용되는 시스템계정이다)

# useradd -r -s /sbin/nologin daemon

 

주의할 점 : 중간에 오류 나서 스크립트 중간 부분 부터 테스트 하면 앞의 cd /http 이걸 놓쳐서
wget 다운로드 하는 위치가 바뀌어서 시작한다는 점을 유의.

 

 

======================================================================================

 

 

 

참고해서 스크립트를 작성해 보면 다음과 같다.

 

#! bin/bash
mkdir /http
yum install -y wget gcc gcc-c++ expat-devel bzip2
yum install -y ca-certificates
cd /http
wget https://downloads.apache.org/apr/apr-1.7.0.tar.bz2
wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.bz2
wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.bz2
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.bz2 --no-check-certificate

tar xvfj apr-1.7.0.tar.bz2
tar xvfj apr-util-1.6.1.tar.bz2
tar xvfj pcre-8.45.tar.bz2
tar xvfj httpd-2.4.54.tar.bz2
cd apr-1.7.0
./configure --prefix=/http/apr
make && make install
cd ../apr-util-1.6.1
./configure --prefix=/http/aprutil --with-apr=/http/apr
make &&make install
cd ../pcre-8.45
./configure --prefix=/http/pcre
make && make install
cd ../httpd-2.4.54
./configure --prefix=/http/apache2 --with-apr=/http/apr --with-apr-util=/http/aprutil --with-pcre=/http/pcre/bin/pcre-config
make && make install
systemctl stop firewalld
useradd -r -s /sbin/nologin daemon
cat > /http/apache2/htdocs/index.html<<EOF
<html><body><h1>Raid1-Mirroring!_YAHO</h1></body></html>
EOF
cat >>/http/apache2/conf/httpd.conf <<EOF
ServerName localhost
EOF
/http/apache2/bin/apachectl start

 

 

 

 

 

이것을 네이버 N cloud에 적용시켜보자.

80번을 허용해서 http 서비스를 쓴다.

 

 

xshell에 연결하기 위한 ssh 포트 설정

 

아래와같이 정식 서버에 스크립트 적용하기 전 테스트용으로 아까 만든 스크립트 테스트

 

정식 서버에는

 

아래와 같이 서버가 생성되면 자동으로 httpd를 깔게 생성해준다.

 

아래와 같이 정식 서버를 새로 생성하자 (스크립트를 실행하는 만큼 더 오래걸린다)

바로 httpd 에 적용한 페이지 내용이 해당 서버 주소로 접속이 된다.

 

 

 

'Linux' 카테고리의 다른 글

DHCP -Linux server  (0) 2022.11.08
Package 관리-3 (local Repository)  (0) 2022.11.08
Package 관리-1 (yum, RPM)  (0) 2022.11.02
storage 관리-3 (Quota)  (0) 2022.11.01
Storage 관리-2 (LVM)  (0) 2022.11.01