일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- BFS
- C++
- 코틀린
- 프로그래머스
- MYSQL
- 백준 알고리즘
- python
- java
- 알고리즘
- 스프링
- 코딩교육봉사
- SW봉사
- kotlin
- 파이썬
- 정보처리산업기사
- 문제풀이
- softeer
- 백준알고리즘
- 소프티어
- 자바
- 1과목
- 데이터베이스
- 백준
- SQL
- 시나공
- 공부일지
- 코딩봉사
- CJ UNIT
- 회고
- programmers
- Today
- Total
JIE0025
리눅스 소프트웨어의 설치 방법 : Archive tar / RPM 비교 본문
✅ Archive
아카이브란 여러 파일과 디렉터리를 담고 있는 하나의 파일이다.
모든 파일과 디렉터리가 아카이브 파일로 들어가져서 관리 및 추적이 쉽다.
>> 리눅스의 압축 형식이라고 보면된다.
구성 요소
- 소스 코드 (Java, Python등)
- README, INSTALL 등의 설명해주는 파일
- Makefile, configure 등 빌드 스크립트
오픈소스를 설치할 때 아카이브 파일을 다운받아서 설치하게 될 경우 관련 의존성을 처리 해줘야 한다.
-> 오픈소스가 필요로 하는 다른 라이브러리/패키지도 다운받아야한다.
-> 의존성이나 오픈소스의 버전을 원하는것을 선택할 수 있다는 장점이 있다. (유연한 서버 환경 구성)
그러나 아카이브 파일의 경우엔 컴파일 과정도 거쳐야 하기 때문에 설치가 복잡하다.
설치를 끝마치고 나면 소스코드, 설명, 빌드 스크립트가 존재해
이를 이용해 바로 기동할 수 있다.
*️⃣ Archive 설치 예
# 설치 전 필요한 패키지 설치
dnf install -y gcc make apr-devel apr-util-devel pcre-devel
# 소스 다운로드 및 압축 해제
wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz
tar -xvzf httpd-2.4.57.tar.gz
cd httpd-2.4.57
# 컴파일 및 설치
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all
make & make install
# 아파치 실행
sudo /usr/local/apache2/bin/apachectl start
✅ RPM 패키지
RedHat Package Manager
레드햇 계열의 리눅스 배포판에서 사용하는 패키지 설치 관리 도구이다.
⏺ RPM은 왜 사용할까?
초기 리눅스에선 모든 패키지를 tar/ gzip으로 묶인 소스파일을 갖고 직접 컴파일 한 후 수동 설치해야했는데
의존성이 너무 많은 경우 설치하는게 너무 복잡했다. 그래서 RPM이 만들어졌다.
소스코드가 미리 컴파일 되어있는것으로 지정된 경로에 누구나 쉽게 설치할 수 있다!
구성요소
- 바이너리 실행 파일 (pre-compiled)
- 설정 파일
- 스크립트 (설치/제거 후 실행할 명령어)
- 종속성 정보 (어떤 패키지가 필요한지 정의)
>> 패키지 사이 의존하고 있는 패키지까지 자동으로 설치되지는 않아서
이 경우엔 yum을 사용한다.
*️⃣ RPM 설치 예
# 패키지 의존성을 추가하여 아파치 설치
yum -y install httpd
-------------------------------------------- 중략
Installed:
httpd.x86_64 0:2.2.15-69.el6.centos //아파치 패키지 설치
Dependency Installed: //관련 패키지 자동 설치
httpd-tools.x86_64 0:2.2.15-69.el6.centos
Complete!
# 서비스 기동
service httpd start
✅ 결론
RPM : 사용자 편의성을 목적으로한 패키지 설치 방식
아카이브 파일 : 개발자 및 커스텀 빌드를 위한 설치방식
References
https://blog.naver.com/okaysungnam/221313305872
'Infra > Linux' 카테고리의 다른 글
[Linux] shell이란 무엇이고 어떤 역할을 할까? (0) | 2025.03.19 |
---|---|
[Linux] CentOS 자바 구성하기 (0) | 2025.03.16 |
리눅스 Hosts 파일 (/etc/hosts) 개념과, 도메인 등록하는 방법 (0) | 2024.12.30 |