스터디 : 리눅스 커맨드라인 쉘 스크립트 바이블 9장

호밀빵 굽는 쿼카·2022년 8월 15일
0

목차

1) 데비안 기반 시스템

2) 레드햇 기반 세스템

3) 소스코드 사용해서 설치

패키지 관리 기초

소프트웨어 패키지는 저장소라는 서버에 저장 ➡️ PMS 유틸리티는 소프트웨어 제대로 실행하기 위해 먼저 설치해야하는 다른 소프트웨어 패키지 의존성 감지하고 필요한 소프트웨어 패키지 설치 ➡️ 인터넷으로 리눅스 시스템에서 구동되는 PMS 유틸리티를 통해 저장소에 접근

PMS 유틸리티의 단점은 한가지 표준 유틸리티로 통합되어있지 않다는것입니다. 일반적으로 리눅스에서 사용되는 PMS는 dpkg & RPM 입니다.

우분투, 리눅스 민트 같은 데비안 기반 배포판 = dpkg
페도라,오픈수세ㅡ 맨드리바 같은 레드햇 기반 배포판 = RPM



데비안 기반 시스템

  • apt-get
  • apt-cache
  • aptitude

가장 널리 쓰이는 커맨드라인 도구는 aptitude 이고, 이 명령어를 사용하면 소프트웨어 의존성 누락/불안정한 시스템환경 및 불필요한 번거로움과 같은 일반적 소프트웨어 설치 문제에서 벗어나는 데 도움이 됨

1. aptitude로 패키지 관리하기

# 설치된 패키지/패키지 하위그룹 등의 정보를 알고 싶다면 아래와 같이 입력
$ aptitude
# 설치된 패키지에 대한 자세한 정보 보고 싶다면
$ aptitude show package_name

# aptitude로 특정 소프트웨어 패키지와 관련된 모든 파일의 목록을 얻을 수 없음
# 대신, dpkg 도구 자체로 목록 얻을 수 있음
$ dpkg -L package_name

아래는 vim-common 패키지의 일부로 설치되는 모든 파일의 목록을 dpkg로 출력하는 예

# 특정 파일이 소속된 패키지 찾기
$ dpkg --search absolute_file_name

아래는 /usr/bin/xxd 파일이 xxd 패키지의 일부로 설치됨

2. aptitude로 소프트웨어 패키지 설치하기

aptitude + search = 특정 소프트웨어 패키지 찾기

$ aptitude search package_name
  • search 옵션의 장점은 package_name에 와일드카드가 자동으로 들어간다는 것
  • 각 패키지 앞에 붙은 알파벳의 의미
    p/v : 사용할수는 있지만 설치는 되지 않음
    i/u : 현재 시스템에 설치되어있는 패키지

aptitude 로 install 하기

$ aptitude install package_name
# aptitude install wine

3. aptitude로 소프트웨어 업데이트하기

모든 소프트웨어 패키지를 저장소에 있는 새로운 버전으로 안전하게 업데이트하려면, safe-upgrade 옵션 사용합니다. safe-upgrade 옵션은 설치된 모든 패키지를 저장소에서 사용할 수 있는 가장 최신버전으로 업그레이드 합니다.

$ sudo aptitude safe-upgrade

<소프트웨어 업그레이드를 위한 덜 보수적인 옵션>

  • aptitude full-upgrade
  • aptitude dist-upgrade

하지만, 위 2개의 옵션은 다른 패키지 사이의 의존성을 확인하지 않아, 전체 패키지 의존성 문제는 뒤죽박죽일 수 있습니다.

4. aptitude로 소프트웨어 제거하기

제거 옵션 purge 사용하기

$ sudo aptitude purge wine

5. aptitude 저장소

aptitude의 기본 소프트웨어 저장소 위치는 /etc/apt/sources.list
aptitude는 소프트웨어를 이 저장소에서만 가져옵니다. 설치/업데이트를 위해 소프트웨어를 검색할때에도 이 저장소만을 확인합니다.

저장소 소스는 다음과 같은 구조로 지정됩니다.

deb(또는 deb-src) address  distribution_name  package_type_list
  • deb 또는 deb-src : 소프트웨어 패키지 유형.
    deb = 소스가 컴파일된 프로그램
    dev-src = 소스코드
  • address : 소프트웨어 저장소의 웹사이트 주소
  • distribution_name : 특정 소프트웨어 저장소의 배포 버전 이름
  • package_type_list : 저장소가 어떤 유형의 패키지를 가지고 있는지 나타냄
    main/restricted/universe/partner



레드햇 기반 시스템

  • yum : 레드햇과 페도라에서 사용
  • urpm
  • zypper

위 명령어들은 rpm 커맨드라인 도구를 기반으로 합니다.

1. 설체된 패키지 목록 보기

$ yum list installed
$ yum list installed > installed_software

yum은 특정 소프트웨어 패키지에 대한 자세한 정보를 확인할때 장점이 드러납니다.

# 소프트웨어 패키지 정보를 보는 법
$ yum list xterm
$ yum list installed xterm
# 특정 파일을 어떤 소프트웨어 패키지가 제공했는지 찾는 법
$ yum provides file_name

/etc/yum.conf 를 어떤 소프트웨어가 제공했는지 찾으려고 base/installed 저장소를 검사했습니다.

2. yum으로 소프트웨어 설치하기

# 관리자 계정으로 yum으로 패키지 install하는법
$ sudo yum install package_name
# 로컬설치 하는법(rpm 설치 파일을 수동으로 다운로드 한 다음 yum으로 설치)
$ yum localinstall package_name.rpm

3. yum으로 소프트웨어 업데이트하기

# 업데이트가 필요한 목록 보기
$ yum list updates
# 특정 패키지 업데이트하기
$ yum update package_name
# 업데이트가 필요한 패키지 모두 업데이트하기
$ yum update

4. yum으로 소프트웨어 제거하기

# 소프트웨어 패키지만 제거하고 구성 및 데이터 파일 보존
$ yum remove package_name
# 소프트웨어 및 모든 파일 제거
$ yum erase package_name

5. 깨진 의존성 다루기

여러 패키지가 로드되면 설치되는 과정에서 다른 패키지에 대한 소프트웨어 의존성을 덮어쓸 수 있는데, 이를 깨진 의존성이라고 합니다.

# 잘못된 파일 청소
$ yum clean all
# 위 명령어로도 해결안되면, 사용
# 모든 패키지 라이브러리의 의존성과 어떤 소프트웨어 패키지가 이를 제공하는지 보여줌
# 즉, 패키지에 필요한 라이브러리를 알고 이를 설치할 수 있음
$ yum deplist pacakge_name
# 그래도 해결되지 않으면 사용
# 의존성이 깨진 패키지를 무시하고 다른 소프트웨어 패키지를 업데이트
# 깨진 패키지에는 도움이 되지 않지만 나머지 패키지 업데이트 가능
$ yum update --skip-broken

6. yum 저장소

# 현재 소프트웨어를 가져오는 저장소 보기
$ yum repolist
=> yum 저장소의 정의 파일 위치 : /etc/yum.repos.d


소스코드에서 설치하기

관리자는 tar 커맨드라인 명령어를 사용하여 타르볼 패키지를 만들고 압축을 해제해서 소프트웨어를 설치하는 법을 알고 있어야합니다.

sysstat : 시스템 모니터링을 위한 다양한 툴을 제공하는 매우 좋은 소프트웨어 패키지

sysstat 를 다운로드 해봅시다.

# 1. http://sebastien.godard.pagesperso-orange.fr 에서 tar 파일 다운로드
# 2. 압축해제
$ tar -zxvf sysstat-11.1.1.tar.gz
# 3. 디렉토리 접근
$ cd sysstat-11.1.1
# 4. readme 파일을 읽고 소프트웨어의 설치완료를 위한 지침을 확인
# 5. 소스코드를 컴파일하기 위한 적절한 컴파일러가 있는지 검사
$ ./configure
# 6. make 명령을 이용해서 여러가지 바이너리 파일 만들기
# make 명령 = 소스코드 컴파일하고 링커로 패키지의 최종 실행파일 만듦
$ make
# 7. 리눅스 시스템 공통 위치에 설치(추천)
# 8. make 명령의 설치 install 옵션 사용해서 설치
$ make install
# 9. 완료!
profile
열심히 굽고 있어요🍞

0개의 댓글