2024_02_05_SW관리

이기태·2024년 2월 5일

리눅스

목록 보기
5/27

--- 계열 ---
1) 레드헷
2) 데비안
3) 슬랙웨어
1. rpm 관리: 레드헷 계열
■ 패키지 설치
rpm -Uvh|ivh|FVH [--nodeps][--force] PKG.rpm
rpm -Uvh http://www.example.com/pkg/PKG.rmp
■ 패키지 확인
rpm -qa (rpm -qa | grep openssh)
rpm -qi PKG (rpm -qi -p PKG.rpm)
rpm -ql PKG (rpm -ql -p PKG.rpm)
rpm -qf /bin/ls
■ 패키지 삭제
rpm -e [--nodeps] PKG

  1. yum 관리

■ 패키지 설치
yum install PKG
yum update PKG
yum localinstall PKG.rpm
yum download PKG

■ 패키지 확인
yum list
yum list "bash"
yum info bash // rpm -qi PKG
yum provides '*/httpd.conf' // rpm -qf /etc/httpd/conf/httpd.conf

■ 패키지 삭제
yum remove|erase PKG

■ yum history
yum history
yum history info #
yum history undo #
yum history redo #
yum history rollback #

yum repository 관리 (/etc/yum.repos.d/*.repo)
(ㄱ) yum config-manager 툴을 통해 관리
(ㄴ) /etc/yum.repos.d/*.repo 파일을 직접 편집하는 경우

#yum repolist
#yum repolist all

#yum install yum-utils // yum-config-manager CMD
#yum-config-manager --enable epel --enable epel-modular
#yum-config-manager --disable epel --disable epel-modular

(ㄱ) # yum-config-manager --add -repo="http://www.example.com/pkg"
(ㄴ) # vi /etc/yum.repos.d/TEST.repo
-------------------------------------
[test]
name="Test Repository"
baseurl="http://www.example.com/pkg:
enabled=1
---------------------------------------

■ yum group CMD

  • 용어: package, group package, environment group package
    #yum group install GPKG
    #yum group update GPKG

  • 확인
    #yum group list
    #yum group list hidden
    #yum group list hidden | egrep -i 'development'

  • 삭제
    #yum group remove GPKG

■ OS 전체 업데이트
4.18.0-526.el8.x86_64 -> 4.18.0-536.el8.x86_64

  • 확인
    uname -a
    cat /etc/redhat-release

  • 업데이트 리스트 확인 및 파일로 저장
    #yum check-update
    #yum check-update 2>&1 | tee -a pkg.list

  • 업데이트
    yum -y update
    cat pkg.list | grep kernel // 커널,드라이버가 있을시 업데이트 후 reboot
    reboot

  • 업데이트 후 확인
    uname -a
    cat/etc/redhat-release

  1. 소스 패키지 관리
    (개발자 관점)
    (관리자 관점)
    (ㄱ) 최신 버전의 오픈 소스 소프트웨어(최신 기능)를 사용하기 위해서
    (ㄴ) 오픈 소스 소프트웨어의 크기를 줄이기 위해서
    (ㄷ) 고객이 낮은 버전의 S/W를 요청 -> 낮은 버전의 Library -> (X)
    (ㄹ) 보안장비의 보안 S/W가 Open Source를 설치하는 경우에는 소스형태로 컴파일 한다.
  • 용어
    소스 컴파일
    빌드: 설정파일(컴파일+기타)
  • 실습
    filename: httpd.tar.gz
    # mkdir -p /tools && cd /tools
    # wget http://httpd.apache.orq/download/httpd.tar.gz
    # tar xvzf httpd.tar.gz
    # cd httpd
    # ./configure --prefix=/usr/local/apache2
    -> Makefile.in -> Makefile
    -> 내용: 컴파일 시 필요하는 모든 정보 수집(.h, lib, cmd, ....)
    # make
    -> 다중 컴파일(gcc -o test test.c)
    -> 컴파일된 파일 현재 폴더에 존재
    # make install
    -> /usr/local/apache2/

    -> 파일/폴더 옮기기(man, bin, sbin, docs, ...)
    # cd/usr/local/apache2
    # bin/apachectl restart
    # ps -ef | grep apache
  • 질문
    (질문1) 소스 형태로 설치한 프로그램(EX: apache2)은 "rpm -qa | egrep "httpd|apache" 확인이 가능?
    답: 패키지형태로 설치하면 가능하지만 소스형태로 설치하면 목록으로 들어있지 않아 확인 불가능.

(질문2) "rm -rf /usr/local/apache2" 디렉토리 삭제 후 다시 만들고 싶다면?
답: make install을 다시 실행. make install은 make가 있어야 실행 가능.

(질문3) 소스 디렉토리(EX: /usr/local/src)에서 configure/make/make install를 다시 실행하고 싶다면?
답:
# cd /usr/local/src/httpd-2.2.34
# make clean // 컴파일로 만들어진 파일 삭제
# configure --prefix=/usr/local/apache2 && make && make install

■ 소스 형태로 소프트웨어를 관리하는 것이 어렵다.
■ 왜 실무에서는 소스형태로 소프트웨어를 설치하는가? ..?

  • RPM 패키지 생성
    ■ rpm 패키지 생성 절차
    --------------------------
    (ㄱ) 소스 프로그램 개발
    (ㄴ) 소스.tar.gz 파일 생성
    (ㄷ) SPEC 파일 생성
    (ㄹ) rpm build
    --------------------------
    (ㅁ) GPG Key 생성
    (ㅂ) 패키지 sign
    --------------------------
    (ㅅ) Yum Repository 구성
    (ㅇ) 테스트
    --------------------------

0개의 댓글