자격증/리눅스마스터 1급

[리눅스마스터1급 실기] 소프트웨어 설치 및 관리

ahgle 2023. 4. 24. 17:59
728x90
반응형

1.rpm

  • -e : 설치된 패키지 삭제 / 의존성 존재할 경우 삭제 X
  • -q : 질의 시 반드시 사용(--query) / 패키지 이름과 버전만 표시
  • -l : 패키지에서 설치한 모든 파일 정보 출력(--list) / -p 옵션과 함께 사용 가능
  • -i : 정보 출력
  • -p PACKAGE_FILE : rpm 패키지 파일에 대한 정보 출력(--package)
  • -f FILE : 지정한 파일을 설치한 패키지의 이름 출력(--file)
  • -c : 해당 패키지의 설정 파일이나 스크립트 파일을 출력(--configfiles)
  • -R : 패키지와 의존적인 관계에 있는 파일, 라이브러리, 패키지 목록을 출력(--requires)
  • -V : 설치된 패키지 중 초기 설치 시와 다른 점이 있는 지 검사 / 비교 검증 정보를 출력

ex)

#rpm -e --nodeps mysql : rpm 패키지로 설치된 mysql을 의존성을 제거하고 삭제

#rpm -qR vsftpd : vsftpd 패키지와 의존적인 관계에있는 파일, 라이브러리, 패키지 목록을 출력

#rpm -qf /etc/shadow :  /etc/shadow 파일을 설치한 패키지 정보 출력 / 패키지명 확인

#rpm -i --force util-linux-ng-2.17.2.x86_64.rpm : 관련 RPM 패키지 강제 재설치

#rpm -qi coreutils : 해당 패키지의 상세 옵션 질의(크기, 사이즈, 요약, 설명 등)

#rpm -qlp totem-2.28.6-2.el6.i686.rpm : 지정한 패키지 파일이 설치될 파일이나 디렉터리 미리 확인

#rpm -qip httpd-2.4.6-40.el7.x86_64.rpm : 아직 설치되지 않은 패키지 파일에 대한 정보 출력

#rpm -qc vsftpd : 패키지의 환경 설정 파일 정보만 출력

#rpm --rebuilddb : rpm 패키지를 관리해주는 DB 재 작성

#RPM -V httpd : 파일크기(S), MD5 체크섬(5), 갱신일(T)가 변경 됨을 확인

#rpmbuild -ba vsftpd.spec : vsftpd spec 파일 빌드

 

<소스파일을 이용하여 컴파일 설치>

ex) httpd 컴파일 설치

#tar xvzf httpd-2.2.fr.tar.gz

#cd httpd-2.2.24

#./configure --prefix=usr/local/httpd --enable-modules=so 

"--prefix=/usr/local/httpd"는 컴파일된 Apache HTTP Server 바이너리 및 구성 파일 등이 설치될 경로를 지정하는 옵션. 이 경우, Apache HTTP Server가 "/usr/local/httpd" 디렉토리에 설치됨.

 

--enable-modules=so"는 모듈을 동적으로 로드할 수 있도록 설정하는 옵션. 이 옵션을 사용하면 Apache HTTP Server의 모듈을 별도의 파일로 컴파일하여 런타임 시에 필요한 모듈만 로드 가능하다. "--enable-modules=so" 옵션을 사용하지 않으면 모든 모듈이 Apache HTTP Server의 바이너리 파일에 포함되어 크기가 커지는 단점이 있다.

#make

#make install

 

2.which

#which postfix : postfix의 실행 명령어의 위치 정보를 출력

#which /proc/1531/exe: PID가 1531번인 경우 해당 프로세스를 실행시킨 명령어의 절대 경로를 확인

 

3.ldd : 특정 파일이나 프로그램이 의존/참고하고 있는 동적 라이브러리 정보를 출력

#ldd /usr/bin/ls : ls가 참고하는 동적 라이브러리 정보를 확인

4. yum

#yum search telnet : telnet이라는 문자열이 들어있는 패키지를 찾음

#yum install telnet-server : telnet-server 패키지를 설치 / 의존성 관련 패키지를 자동 설치

#yum remove(또는  erase) telnet-server : telnet-server 패키지 제거

#yum history : 작업한 이력을 확인

#yum list installed : 설치된 패키지에 대한 정보를 출력

#yum info : 모든 패키지에 대한 정보를 출력

#yum clean all : yum 관련하여 저장된 모든 정보를 삭제

 

5.gcc(GNU Compiler Collection) : 리눅스 기반에서 가장 손쉽게 이용 가능한 C컴파일러 도구

-c : 링크는 하지 않고 목적 파일만을 만들어낼 때 사용

-o : 컴파일 시 실행 파일 생성 및 이름 지정

#gcc -c sum.c : sum.c를 컴파일하여 sum.o라는 목적 파일을 생성

#gcc -o calc sum.o add.o : sum.o, add.o라는 두 개의 목적 파일을 이용하여 calc 실행 파일을 생성

#gcc -o program source.o code.o : source.o, code.o 두 개의 목적 파일을 이용하여 program 실행 파일을 생성

 

6.grub-install : 부트 로더에 문제가 생겼을 때 GRUB을 재설치하는 명령어

7.grub.conf : GRUB 환경 설정 파일

    -timeout=10 : 부트 로더 접근 시간을 10초로 제한

    -password -md5 : 부트로더 접근 시 패스워드 인증

 

 

 

연습 문제 풀이

 

문제 1. 다음은 RPM으로 설치된 특정 패키지 제거 및 이후에 발생된 문제점을 찾는 과정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. rpm 패키지로 설치된 mysql을 제거하는데, 의존성을 무시한다.
#rpm (1) mysql

나. mysql 패키지를 제거한다. postfix가 정상적으로 동작하지 않는다. 
    postfix의 실행 명령어의 위치 정보를 출력하는 명령을 기입한다.
# (2) postfix

다. postfix가 참고하는 동적 라이브러리의 정보를 확인하는 명령을 기입한다.
# (3) (4)

조건

  • (1)번은 필요한 옵션을 한 번에 기입한다.
  • (2)번은 명령어만 기입한다. 옵션이나 인자 값은 기입하지 않는다.
  • (3)번은 명령어만 기입한다.
  • (4)번은 관련 파일의 경로를 절대 경로로 기입한다.(실습하는 리눅스 버전 기준)

 

1) -e --nodeps

2)which

3)ldd

4)/usr/sbin/postfix

 

 

문제 2. 다음은 rpm 명령을 이용해서 패키지를 관리하는 과정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. vsftpd 패키지와 의존적인 관계에 있는 파일, 라이브러리, 패키지 목록을 출력한다.
#rpm (1) vsftpd

나. /etc/shadow 파일을 설치한 패키지 정보를 출력한다.
#rpm (2) /etc/shadow

다. 지정한 패키지 파일이 설치 될 파일이나 디렉터리를 미리 확인한다.
#rpm (3) totem-2.28.6-2.el6.i686,rpm

라. vsftpd 패키지의 환경 설정 파일 정보만 출력한다.
#rpm (4) vsftpd

 

조건

  • (1)~(4) 번은 관련 옵션만 한 번에 기입한다.(ex : -l -u, alF)

 

1)-qR

2)-qf

3)-qlp

4)-qc

 

 

문제 3. 다음은 yum을 이용하여 패키지를 설치하고 관리하는 과정이다. 조건에 맞게 (괄호)안에 알맞은 내용을 적으시오.

가. telnet이라는 문자열이 들어있는 패키지를 찾는다
#yum (1) telnet

나. telnet-server라는 패키지를 설치한다.
#yum (2) telnet-server

다. telnet-server라는 패키지를 제거한다.
#yum (3) telnet-server

라. 작업한 이력을 확인한다.
#yum (4)

 

조건

  • (1)~(4) 번은 관련 옵션만 한 번에 기입한다.(ex : -l -u, alF)

 

 

1) search

2) install

3) erase

4) history

 

 

문제 4. 다음은 2GB가 넘은 용량의 /data 디렉터리를 백업하는 과정이다. 조건에 맞게 (괄호) 안에 알맞는 내용을 적으시오.

가. /data/ 디렉터리를 하나의 파일로 압축해서 백업하는데, 가장 효율성이 좋은 압축 옵션을 사용한다.
    생성되는 파일명은 백업되는 디렉터리명, 명령어, 압축 옵션을 고려해서 적절히 지정한다.
# (1) (2) (3) /data

나. 백업된 파일을 이용해서 현재 디렉터리에 관련 데이터를 복원한다.
# (1) (4) (3)

 

조건

  • (1)번은 관련 명령어만 기입한다.
  • (2)번과 (4)번은 명령어의 옵션을 기입하는데, 여러 옵션이 필요한 경우 한 번에 기입한다.
  • (3)번은 백업 파일명을 기입한다. 백업 파일명은 백업되는 디렉터리명인 data, 명령어, 압축 옵션을 고려해서 보편적으로 사용하는 파일명을 지정한다.
  • (2)번과 (4)번은 (1)번의 명령어가 틀리면 채점하지 않고, 압축 관련 옵션은 반드시 사용해야 한다.

 

1) tar

2) cJf 또는 cvJf

3) data.tar.xz 

4) xJf 또는 xvJf

 

문제 5. 다음은 C언어로 작성된 소스 파일을 전달 받아 컴파일하는 과정이다. 조건에 맞게 (괄호) 안에 알맞은 내용을 적으시오.

가. 묶여진 파일의 압축을 해제하는데, 파일 목록 등과 같은 진행 과정은 파일에 표시하지 않는다.
#tar (1) project.tar.xz

나. sum.c를 컴파일하여 sum.o라는 목적(object)파일을 생성한다.
# (2) (3) sum.c

다. sum.o add.o와 같이 2개의 목적 파일을 이용해서 calc라는 실행 명령을 생성한다.
# (2) (4) sum.o add.o

 

조건

  • (1)번은 압축 등 꼭 필요한 옵션만 한 번에 기입한다.
  • (2)번은 명령어만 기입한다.
  • (3)번과 (4)번은 명령어의 옵션 또는 옵션과 관련된 인자값을 기입하는데, 옵션과 관련된 인자값은 하나의 괄호로 처리한다.(ex: -d /home/ihduser)

 

1) xJf

2) gcc

3) -c

4) -o calc

728x90