리눅스의 소프트웨어 설치 방법
- 소스코드 인스톨
: 소스코드로 제공되는 SW를 다운받고 컴파일러로 직접 컴파일 하여 설치
: 시스템에 최적화하여 설치 가능
- 패키지 인스톨
: 컴파일 과정 없이 간단하게 소프트웨어 설치 가능
: 패키지 의존성 문제 위험
패키지 형식
- CentOS / Fedora
: 레드햇 기반의 OS의 경우 RPM 형식 사용
- 우분투
: Debian 기반 OS의 경우 deb 형식 사용
- 우분투의 패키지 카테고리
: main (우분투로부터 정식 지원을 받는 완전한 자유 소프트웨어)
: restricted (우분투로부터 정식 지원을 받는 부분적인 자유 소프트웨어)
: universe (우분투로부터 정식 지원을 받지 않는 자유 소프트웨어)
: multiverse (우분투로부터 정식 지원을 받지 않는 라이선스가 있는 소프트웨어)
- 우분투 패키지의 이름 구조
: 파일명_버전-리비전_플랫폼.deb
: 리비전 (세부버전)
: 플랫폼 (설치할 수 있는 플랫폼 - i386, arm 등..)
패키지 저장소
- 우분투의 패키지 관리
: repository (패키지의 정보를 저장하고 있는 서버 / 버전마다 다른 패키지 저장소 제공)
- 패키지 저장소 설정
: /etc/apt/sources.list
: launchpad.net/ubuntu/+archivemirrors
패키지 의존성 (dependency)
- 어떤 패키지가 설치되기 위해서 반드시 다른 패키지를 먼저 설치해야하는 상황
- 레드햇 계열의 배포판
: yum / dnf 명령어로 해결
- 우분투
: apt / aptitude / dpkg 명령어로 해결
apt-cache 세부명령어
- 패키지의 정보를 검색하고 출력
- 세부명령어
: pkgnames = 사용 가능한 패키지 이름 확인
: show 패키지명 = 패키지의 간단한 정보 확인
: search 키워드 = 패키지 검색
: depends 패키지명 = 패키지 의존성 정보 확인
: stats = 설치된 패키지의 정보 확인
apt-get 세부명령어
- 패키지의 설치, 업데이트, 제거 등의 작업 수행
- 세부 명령어
: update = 업데이트
: upgrade = 설치된 모든 패키지 업그레이드
: install 패키지명 = 설치 (복수 설치 가능)
: --reinstall install 패키지명 = 재설치
: remove 패키지명 = 제거 (설정정보 유지)
: purge 패키지명 = 제거 (설정정보도 제거)
: autoremove = 사용되지 않는 패키지 자동 제거
: download 패키지명 = 설치파일 내려받기
: source 패키지명 = 소스 내려받기
: clean = 캐시 삭제
apt 세부명령어
- apt-get와 apt-cache의 주요 기능 수행
- 세부 명령어
: install 패키지명 = 설치
: remove 패키지명 = 제거 (설정정보 유지)
: purge 패키지명 = 제거 (설정정보도 제거)
: search 키워드 = 검색
: show 패키지명 = 정보 출력
: list = 설치가능한 패키지 목록 출력
aptitude 세부명령어
- 패키지 관리 명령어 (비주얼 모드 실행 가능)
: 우분투에서 추가적인 설치 필요
- 세부 명령어
: update = 업데이트
: upgrade = 설치된 모든 패키지 업그레이드
: install 패키지명 = 설치
: download 패키지명 = 설치파일 내려받기
: remove 패키지명 = 제거 (설정정보 유지)
: purge 패키지명 = 제거 (설정정보도 제거)
: search 키워드 = 검색
: show 패키지명 = 정보 출력
: clean = 캐시 삭제
dpkg 옵션 패키지명
- 데비안 리눅스의 패키지 관리 명령어
- 옵션
: l = 패키지 목록 확인
: s = 상세 정보
: S 파일명(명령어) = 명령어가 포함된 패키지 확인
: L = 해당 패키지가 설치한 파일 확인
: c deb파일명 = deb파일 설치
: r = 패키지 제거
: P = 패키지 제거 (설정 정보까지 제거)
파일 압축
파일 압축 (아카이브 파일 생성)
- 수집 : 여러개의 파일을 묶는 것
- 아카이브 : 수집을 통해 생성된 파일 (파일의 묶음체)
- tar : 파일 수집 명령어
- gzip / bzip2 : 파일 압축
tar 옵션 파일이름.tar 묶을파일
- 파일 수집 명령어
- 옵션
: c = 파일 생성
: t = 내용 확인
: x = 파일 해제
: v = 과정 출력
: f = 사용할 아카이브 파일 이름 지정
: r = 새로운 파일 추가
: u = 업데이트
: z = gzip으로 압축 혹은 해제
: j = bzip2로 압축 혹은 해제
=> -cvf (아카이브 파일생성) / -tvf (아카이브 내 파일 확인) / -xvf (아카이브 해제)
gzip [옵션] 파일명
- 파일을 압축하기 위한 명령어
- 옵션
: 1~9 = 압축률 지정
: d = 압축해제
: v = 과정 출력
: l = 정보 출력
gunzip 파일명
- 압축해제 (gzip -d)
zcat 파일명
- 압축해제를 하지 않고 압축파일 내 내용 출력
bzip2 [옵션] 파일명
- 파일을 압축하기 위한 명렁어
- 옵션
: d = 압축해제
: v = 압축된 정보 출력
: l = 압축 파일 정보 확인
bunzip2 파일명
- 압축해제
bzcat 파일명
- 압축된 파일 내용 확인
소스코드 컴파일
gcc [옵션] 파일명
- 소스코드 컴파일 수행
- 옵션
: default(옵션없음) = out파일 생성
: c = 오브젝트 파일(.o) 생성
: o = 파일 이름 지정
=> ex) gcc -c -o hi.o hi.c
=> ex) gcc -o hello hi.o bye.o hello.o
: 3개의 오브젝트 파일을 실행할 hello 실행파일 생성
프로그램 작성 및 컴파일
1. 에디터를 이용해 소스코드 파일 작성
2. gcc 명령어를 이용한 컴파일
make
- 패키지 내의 makefile을 실행
: 순차적으로 패키지내 소스코드 컴파일
- makefile의 구조
: CC (컴파일러 지정 / 코드 단순화를 위한 매크로 정의)
: tartget1 ~ 2 (생성해야할 파일의 이름 지정)
: dependency1 ~ 4 (목표파일을 생성하기 위해 필요한 파일 지정)
: command1 ~ 4 (파일을 생성하기 위한 명령어 지정)
: clean (더미타겟 / 목적파일과 실행파일 제거)
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 기초 - 프로세스 (0) | 2020.12.16 |
---|---|
리눅스 기초 - 파일 시스템과 디스크 관리 (0) | 2020.12.15 |
리눅스 기초 - 디렉터리와 파일관리(2) (0) | 2020.12.15 |
리눅스 기초 - 디렉터리와 파일관리(1) (0) | 2020.12.15 |
리눅스 기초 - 사용자 계정과 그룹 (0) | 2020.12.15 |