HotFoxy
불여우의 전직 이야기
게임 서버 개발자가 되어 보죠!
전체 방문자
오늘
어제
  • 분류 전체보기 (135)
    • 연구한 이야기 (26)
      • 깊게 공부해보기 (7)
      • 문제 해결 이야기 (12)
      • 맡은 업무 이야기 (6)
    • 전직 이야기 (0)
      • 1년이라는 시간 (5)
      • 프로카데미 이야기 (5)
    • 공부한 이야기 (87)
      • 알고리즘 (7)
      • 리눅스 (11)
      • 클라우드 (24)
      • 윈도우 OS (17)
      • 윈도우 소켓 프로그래밍 (11)
      • 네트워크 (16)
      • Docker & K8S (0)
      • 기타 (1)
    • 자격증 이야기 (12)
  • MSB : Mad Square's Brawl
  • GITHUB

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HotFoxy

불여우의 전직 이야기

리눅스 - 소프트웨어 관리
공부한 이야기/리눅스

리눅스 - 소프트웨어 관리

2022. 8. 21. 00:53

프로그램 설치

리눅스 시스템에서 소프트웨어를 설치하고 관리하는 방법에는 배포업체의 패키지를 설치하거나 소스코드를 컴파일하는 것이 있다.

일반적으로 리눅스는 데비안 계열과 레드햇 계열로 나뉘는데, 각 계열에서 사용하고 있는 패키지 관리 유틸리티는 다음과 같다.

  • 데비안 계열
    • Debian, Ubuntu, Xandros, Linspire
    • 패키지 툴로는 다음이 있다.
      • dpkg
      • apt-get
      • aptitude
  • 레드햇 계열
    • Fedora, CentOS, RHEL, openSUSE, mandirva
    • 패키지 툴로는 다음이 있다.
      • rpm
      • yum

RPM

  • RedHat Package Manager 로서, 레드햇 사에서 만든 패키지 관리 툴이다.
  • 새 패키지를 설치하거나 업그레이드, 삭제 시 사용한다.
  • 패키지 파일 확장명은 *.rpm 이다.
$ rpm [옵션] 패키지명
옵션

-i : 새로운 패키지를 설치 (Install)

-h : 패키지를 풀 때 해시 마크 (#) 표시 (Hash-mark)

-U : 기존의 패키지를 업그레이드 (Upgrade)

-e : 패키지 제거 (Erase)

-q : 패키지 설치 여부 확인 (Query)

-v : 진행 과정을 메시지로 표시 (Verbose)

-vv : 진행 과정을 상세히 표시 (Verbose)

-V : 패키지 검증 (Verify)

-a : 모든 패키지 검사 (verify All)

--nodeps : 의존성 관계를 무시하고 설치

--oldpackage : 구 버전으로 다운그레이드

--replacepkgs : 패키지 재설치

--replacefiles : 다른 패키지의 파일을 덮어쓰며 패키지를 강제로 설치

--force : 강제로 설치 (--oldpackage --replacefiles --replacepkgs)


YUM

  • Yellowdog Updater Modified
  • 네트워크를 통해 기존 RPM 패키지 파일의 업데이트 자동 수행, 새로운 패키지 설치 및 제거를 수행한다.
  • RPM의 의존성 문제를 해결하기 위한 유틸리티이다.
  • 페도라 22버전 이후부터 DNF 로 전환되고 있다.
구분 기능
yum install 패키지명 패키지를 설치한다
yum groupinstall 패키지명 지정한 패키지 그룹 설치
yum update 패키지명 install과 동일한 기능
yum localinstall 패키지명 현재 디렉터리 내의 *.rpm 파일을 설치
yum remove 패키지명 지정한 패키지 제거
yum groupremove 패키지명 지정한 패키지 그룹 제거
yum info 패키지명 패키지 요약 정보 확인
yum list 전체 패키지에 대한 정보 출력
yum grouplist 패키지 그룹 정보 출력
yum search 문자열 패키지 중에서 업데이트가 가능한 패키지 목록 출력
yum check-update 해당 문자열이 포함된 패키지 탐색
yum history 패키지 설치, 삭제 등 작업 이력 확인

dpkg

  • dpkg 는 데비안의 저레벨 패키지 관리 툴이다.
  • deb 패키지의 설치, 삭제, 정보 제공을 위해 사용된다.
  • 루트 권한으로 패키지 설치와 삭제를 할 수 있다.
$ dpkg [옵션] 패키지명
옵션

-i : 새로운 패키지를 설치 (Install)

-r : 설치된 패키지만 삭제 (Remove)

-P : 패키지와 설정 정보 모두를 삭제 (Power remove)

-s : 패키지의 상황 정보를 나타낸다 (Show Status)

-L : dpkg가 설치한 모든 파일 목록을 확인한다 (List)


apt-get

  • advanced packaging tool get
  • 데비안 리눅스에서 소프트웨어 설치와 제거를 위한 패키지 관리 유틸리티이다.
  • 패키지 설치 시 발생할 수 있는 의존성과 충돌문제를 해결하기 위해 /etc/apt/sources.list 파일을 참조한다.
구분 기능
apt-get install 패키지명 새 패키지 설치
apt-get dist-upgrade 패키지명 의존성을 검사하며 설치
apt-get update 패키지명 새 패키지 목록을 가져와서 /etc/apt/sources.list 파일을 갱신한다
apt-get upgrade 패키지명 업그레이드를 실행한다
apt-get remove 패키지명 패키지를 제거한다
옵션

-u : 업그레이드한 패키지 목록을 표시한다 (Upgraded)

-V : 자세한 버전을 표시한다 (Version)


aptitude

우분투의 패키지 관리 유틸리티로서 APT 처럼 패키지 관리를 자동화한다.

$ aptitude 서브명령

파일 아카이브

파일 아카이브는 다수 개의 파일이나 디렉터리를 하나의 파일로 묶는 것이다.

tar

$ tar [옵션] 파일명
옵션

-c : 새로운 아카이브 파일 tar 를 생성한다 (Create)

-x : tar 로 묶은 파일을 원본 파일로 묶음 해제한다

-z : gzip 으로 압축하거나 해제한다

-j : bzip2 로 압축하거나 해제한다

-J : xz 옵션으로 tar.xz 에 사용한다

-d : 아카이브에 있는 파일과 비교한다 (Difference)

-r : 아카이브된 파일의 마지막 부분에 파일 추가 (Rear)

-t : 아카이브 파일 안에 있는 파일 목록 나열 (Tree)

-u : 아카이브에 있는 기존 파일보다 새로운 파일로 업데이트 (Update)

-f : 아카이브 파일명을 지정한다 (Filename)

-P : 절대 경로 정보를 유지한다 (Preserve)

--exclude : 특정 디렉터리를 제외하고 묶는다 (Exclude)


Compress

gzip, bzip2, xz 와 비교했을 때 압축률이 가장 낮다.

압축 파일명은 .Z 이다.

명령어 기능
compress [옵션] 파일명 확장자 .Z 로 파일을 압축한다
-d : 파일 압축을 해제한다
-c : 기본 생성 파일이 아닌 지정 파일로 생성한다
-v : 압축 진행 과정을 화면에 표시한다
uncompress 파일명 확장자가 .Z 인 파일 압축을 해제한다

gzip

압축 파일명은 .gz 이다.

명령어 기능
gzip [옵션] 파일명 확장자 .gz 로 파일을 압축한다
-d : 파일 압축을 해제한다
-l : 압축된 파일 정보를 나타낸다
-v : 압축 과정을 화면에 표시한다
gunzip 파일명 확장자가 .gz 인 파일 압축을 해제한다
gzip -d 와 동일한 기능을 한다.
zcat 파일명 압축된 파일의 내용을 출력한다

bzip2

압축 파일명은 .bz2 이다.

명령어 기능
bzip2 [옵션] 파일명 확장자 .bz2 로 파일을 압축한다
-d : 파일 압축을 해제한다
-l : 압축된 파일 정보를 나타낸다
-v : 압축 과정을 화면에 표시한다
bunzip2 파일명 확장자가 .bz2 인 파일 압축을 해제한다
bzip2 -d 와 동일한 기능을 한다.
bzcat 파일명 압축된 파일의 내용을 출력한다

xz

압축 파일명은 .xz 이다.

명령어 기능
xz [옵션] 파일명 확장자 .xz 로 파일을 압축한다
-d : 강한 파일 압축을 해제한다
-z : 강한 파일 압축
-v : 압축 과정을 화면에 표시한다
unxz 파일명 확장자가 .xz 인 파일 압축을 해제한다
xz -d 와 동일한 기능을 한다.

소스 코드 설치

  • 소스 코드를 압축 해제 후 컴파일 순서에 따라 프로그램을 설치한다.
  • 소스코드는 고급언어로 작성된 프로그램이며, 컴파일은 이를 저급언어로 변환시키는 것이다.
  • 리눅스에서 소스코드는 대부분 C언어로 작성한다.
  • 컴파일 순서는 다음과 같다.
단계 명령어 설명
1단계 환경설정 ./configure 프로그램 설치 과정에서 필요로 하는 환경파일 makefile 을 생성한다.
2단계 컴파일 make makefile 을 기반으로 소스 파일을 컴파일한다.
make 가 끝나면 소스파일은 실행파일로 전환된다.
3단계 파일 설치 make install 컴파일된 실행파일을 지정된 속성으로 지정된 디렉터리에 설치한다.

CMake

  • Cross Platform Make
  • 멀티 플랫폼으로 사용할 수 있는 Make 의 대용품인 오픈소스 프로젝트이다.
  • 지정한 운영체제에 맞는 Make 파일의 생성만을 수행하기 때문에 Meta Make 라고도 불린다.
  • 한 번 작성해 두면 유닉스 계열은 물론 윈도우 계열의 프로그래밍 도구도 지원한다.
  • 평행 빌드 및 크로스 컴파일을 할 수 있다.

저작자표시 (새창열림)

'공부한 이야기 > 리눅스' 카테고리의 다른 글

리눅스 - X-Windows  (0) 2022.08.24
리눅스 - 주변기기  (0) 2022.08.21
리눅스 - 에디터  (0) 2022.08.21
리눅스 - 프로세스 관리  (0) 2022.08.20
리눅스 - Shell  (0) 2022.08.20
    '공부한 이야기/리눅스' 카테고리의 다른 글
    • 리눅스 - X-Windows
    • 리눅스 - 주변기기
    • 리눅스 - 에디터
    • 리눅스 - 프로세스 관리
    HotFoxy
    HotFoxy
    1년 동안의 고군분투 전직 이야기! ..가 완료되어, 게임개발자로 살아남는 이야기!

    티스토리툴바