[리눅스마스터]제1602회 리눅스마스터 1급 2차 시험 단답식 풀이 2
4. 다음은 rpm 패키지 관련하여 질의 및 작업하는 과정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 아직 설치되지 않은 패키지 파일에 대한 정보 출력
# rpm ( ① ) ./httpd-2.4.6-40.el7.x86_64.rpm
나. 패키지가 설치된 이후 RPM DB에 저장된 내용과 원본의 내용을 비교 검증 정보 출력
# rpm ( ② ) vsftpd
다. RPM 데이터베이스에 문제 발생 시, RPM 데이터베이스를 최신의 정보로 갱신
# rpm ( ③ )
<조 건>
- 관련 옵션을 적는다.
- 옵션은 대소문자를 구분하고, 띄어쓰기, 기호 등을 정확히 기술한다.
rpm : Radhat 패키지 관리 프로그램
[root@server1 proc]# rpm --help
Usage: rpm [OPTION...]
Query/Verify package selection options:
-a, --all query/verify all packages
-f, --file query/verify package(s) owning file
-g, --group query/verify package(s) in group
-p, --package query/verify a package file
--pkgid query/verify package(s) with package identifier
--hdrid query/verify package(s) with header identifier
--triggeredby query the package(s) triggered by the package
--whatrequires query/verify the package(s) which require a dependency
--whatprovides query/verify the package(s) which provide a dependency
--nomanifest do not process non-package files as manifests
Query options (with -q or --query):
-c, --configfiles list all configuration files
-d, --docfiles list all documentation files
-L, --licensefiles list all license files
--dump dump basic file information
-l, --list list files in package
--queryformat=QUERYFORMAT use the following query format
-s, --state display the states of the listed files
Verify options (with -V or --verify):
--nofiledigest don't verify digest of files
--nofiles don't verify files in package
--nodeps don't verify package dependencies
--noscript don't execute verify script(s)
Install/Upgrade/Erase options:
--allfiles install all files, even configurations which might otherwise be skipped
--allmatches remove all packages which match <package> (normally an error is generated if
<package> specified multiple packages)
--badreloc relocate files in non-relocatable package
-e, --erase=<package>+ erase (uninstall) package
--excludedocs do not install documentation
--excludepath=<path> skip files with leading component <path>
--force short hand for --replacepkgs --replacefiles
-F, --freshen=<packagefile>+ upgrade package(s) if already installed
-h, --hash print hash marks as package installs (good with -v)
--ignorearch don't verify package architecture
--ignoreos don't verify package operating system
--ignoresize don't check disk space before installing
-i, --install install package(s)
--justdb update the database, but do not modify the filesystem
--nodeps do not verify package dependencies
--nofiledigest don't verify digest of files
--nocontexts don't install file security contexts
--noorder do not reorder package installation to satisfy dependencies
--noscripts do not execute package scriptlet(s)
--notriggers do not execute any scriptlet(s) triggered by this package
--nocollections do not perform any collection actions
--oldpackage upgrade to an old version of the package (--force on upgrades does this
automatically)
--percent print percentages as package installs
--prefix=<dir> relocate the package to <dir>, if relocatable
--relocate=<old>=<new> relocate files from path <old> to <new>
--replacefiles ignore file conflicts between packages
--replacepkgs reinstall if the package is already present
--test don't install, but tell if it would work or not
-U, --upgrade=<packagefile>+ upgrade package(s)
--reinstall=<packagefile>+ reinstall package(s)
Common options for all rpm modes and executables:
-D, --define='MACRO EXPR' define MACRO with value EXPR
--undefine=MACRO undefine MACRO
-E, --eval='EXPR' print macro expansion of EXPR
--macros=<FILE:...> read <FILE:...> instead of default file(s)
--noplugins don't enable any plugins
--nodigest don't verify package digest(s)
--nosignature don't verify package signature(s)
--rcfile=<FILE:...> read <FILE:...> instead of default file(s)
-r, --root=ROOT use ROOT as top level directory (default: "/")
--dbpath=DIRECTORY use database in DIRECTORY
--querytags display known query tags
--showrc display final rpmrc and macro configuration
--quiet provide less detailed output
-v, --verbose provide more detailed output
--version print the version of rpm being used
Options implemented via popt alias/exec:
--scripts list install/erase scriptlets from package(s)
--setperms set permissions of files in a package
--setugids set user/group ownership of files in a package
--setcaps set capabilities of files in a package
--restore restore file/directory permissions
--conflicts list capabilities this package conflicts with
--obsoletes list other packages removed by installing this package
--provides list capabilities that this package provides
--requires list capabilities required by package(s)
--info list descriptive information from package(s)
--changelog list change logs for this package
--xml list metadata in xml
--triggers list trigger scriptlets from package(s)
--last list package(s) by install time, most recent first
--dupes list duplicated packages
--filesbypkg list all files from each package
--fileclass list file names with classes
--filecolor list file names with colors
--fscontext list file names with security context from file system
--fileprovide list file names with provides
--filerequire list file names with requires
--filecaps list file names with POSIX1.e capabilities
Help options:
-?, --help Show this help message
--usage Display brief usage message
<주요 옵션>
질의 옵션 (-q 또는 --query 옵션과 함께 사용):
-c, --configfiles 모든 설정 파일을 나열합니다
-d, --docfiles 모든 문서 파일을 나열합니다
--dump 기본 파일 정보를 보여줍니다
-l, --list 패키지 안의 파일을 나열합니다
-s, --state 나열된 파일의 상태(state)를 보여줍니다
-a, --all 모든 패키지에 대해 질의/검증합니다
-f, --file 파일이 들어있는 패키지에 대해 질의/검증 합니다
-g, --group 그룹 안의 패키지를 질의/검증합니다
-p, --package query/verify a package file
검증 옵션 (-V 또는 --verify 옵션과 함께 사용):
--nodeps 패키지의 의존성을 검사하지 않습니다.
-a, --all 모든 패키지에 대해 질의/검증합니다.
-f, --file 파일이 들어있는 패키지에 대해 질의/검증 합니다.
-g, --group 그룹 안의 패키지를 질의/검증 합니다
-p, --package query/verify a package file
데이터베이스 옵션:
--initdb 데이터베이스를 초기화 합니다.
--rebuilddb 설치된 패키지 헤더에서 상반된 목록(inverted lists)의 데이터베이스를 재구축 합니다
① -qip
② -V
③ --rebuilddb
5. 다음( 괄호 ) 안에 알맞은 내용을 적으시오.
커널 컴파일을 진행하기 전에 설치된 모듈 사이의 의존성을 검사하는 명령어는 ( ① )이다.
이 명령어는 모듈이 생성된 디렉터리 안에 모듈간의 의존성 목록 파일을 생성하는데, 이 파일명은 ( ② )이다.
( ③ ) 은 생성된 오브젝트 파일을 제거하고 다시 configure할 때 쓰이는 명령이다.
커널 컴파일할 때도 설정된 작업을 초기화하기 위해 ( ③ )을 명령을 사용할 수 있으나,
오브젝트 파일만을 지울 뿐 환경 설정한 내용이 저장되는 .config 등은 지우지 못하므로
.config 파일까지 삭제하기 위해서는 ( ④ )를 사용한다.
<조 건>
- 절대 경로로 표기하지 말고, 명령어 및 파일명만 적으시오.
- 명령어는 대소문자를 구분하며, 띄어쓰기, 기호 등을 정확히 기술한다.
- 명령어와 옵션 또는 옵션과 관련된 인자값은 하나의 괄호로 처리한다.
<커널 모듈 관련 명령어>
- lsmod : 시스템에 설치된 모듈 리스트 확인
- modprobe : 모듈 관리
- modinfo : 모듈의 정보를 조회
- insmod : 모듈을 설치
- rmmod : 모듈을 삭제
- depmod : 모듈 간의 의존성이 기록된 파일의 정보를 갱신
<모듈 과정>
1. make mrproper : 이전의 컴파일시 설정되었던 설정을 제거
2. make menuconfig : 텍스트 환경 / make xconfig : x윈도우 환경
3. make dep : 설정한 영역의 의존성 검사
4. make clean : 이전 컴파일시 생성된 파일을 삭제
5. make bzImage : 설정한 기준으로 새로운 커널을 생성
6. mkinitrd : Initrd 이미지 생성(5, 6의 과정은 make install을 수행하면 자동으로 수행)
7. make modules : 모듈들을 생성
8. make modules_install : 만들어진 모듈들을 설치
① depmod
② modules.dep
③ make clean
④ make mrproper
6. 다음은 joon.txt라는 문서를 lp라는 프린터로 2매 출력한 후에 프린터 큐의 작업 목록을 확인하는 과정이다.
아래의 조건을 참조하여 ( 괄호 ) 안에 알맞은 내용을 적으시오.
# ( ① ) ( ② ) ( ③ ) joon.txt
# ( ④ )
<조 건>
- ① : 관련 명령어를 적는다.
- ② : 옵션 및 관련된 인자값(argument)을 하나의 괄호에적는다. (예: -g terran)
- ③ : 옵션 및 관련된 인자값(argument)을 하나의 괄호에적는다. (예: -g terran)
- ④ : 프린터 큐의 작업 목록을 확인하는 명령을 적는다.
System V 계열 프린트 명령어
- lp : 프린터 디바이스 path를 사용하여 직접 인쇄할 수 있습니다.
(-d : 다른 프린터 지정, -n : 인쇄 매수 지정)
- lpstat : 프린터 큐의 상태를 확인할 때 사용합니다.
- cancel : 프린트 작업을 취소합니다.
BSD 계열 프린트 명령어
- lpr : 인쇄 작업을 수행합니다.
(-P : 인쇄를 수행 할 프린터 지정. (프린터 명), -# : 인쇄 매수 지정 )
- lpq : 프린터 큐의 상태를 확인할 때 사용합니다.
- lprm : 프린터 큐의 작업을 삭제할 때 사용합니다.
- lpc : 프린터가 인쇄 가능 상태 인지 확인할 때 사용 합니다.
<System V 답안>
① lpr
② -# 2
③ -P lp
④ lpq
<BSD 답안>
① lp
② -n 2
③ -d lp
④ lpstat