Over the limit

[Linux] 리눅스에 프로그램 설치하기 본문

Operation System/Linux

[Linux] 리눅스에 프로그램 설치하기

ellapk 2024. 7. 6. 01:08

[Source]

- C언어 소스파일을 다운로드 받아 직접 컴파일 하여 프로그램을 설치하는 방법

- 장점 : 환경설정 가능, 의존성 문제도 낮음

- 단점 : 컴파일러를 이용해 컴파일하고 설치하므로 시간 소모됨. 환경 설정이 크리티컬

 

[Binary]

- Source 버전으로 설치된 프로그램의 디렉토리를 압축한 파일을 이용해 설치 -> 압축만 해제하면 사용 됨

- 리눅스에 따라 실행이 안될 수도 있음

 

 

 

[Package(RPM/YUM/APT-GET)]

- RedHat 계열은 RPM(RedHat Program Manager)을 이용하여 프로그램 설치 및 삭제 관리

- 장점 : 설치 및 삭제가 쉬움

- 단점 : 프로그램 의존성 문제로 설치, 삭제에 어려움이 발생함

- rpm 명령으로 설치가 가능하며 대부분 /usr 디렉토리에 설치됨

 

 

RPM 명령어

  • rpm -ivh -> 설치
  • rpm -Uvh -> 업그레이드 설치
  • rpm -qa -> 설치된 패키지 목록 확인
  • rpm -e -> 패키지 삭제

 

YUM 명령어

rpm으로 패키지 관리시 프로그램 의존성에 문제가 생길 수 있으므로, 이를 보완하기 위해 사용함

  • yum list
  • yum install -> 패키지 설치
  • yum -y install -> (yes) 무조건 설치
  • yum localinstall -> RPM 파일을 이용하여 설치
  • yum update -> 패키지 업데이트
  • yum remove -> 패키지 삭제

 


APT-GET 명령어

리포지토리를 사용하여 패키지와 종속성을 관리하고 자동으로 종속성 해

  • sudo apt-get install -> 설치
  • sudo apt-get remove -> 삭제
  • sudo apt-get update -> 업데이트

 

 

---> 요약

  • RPM: 패키지 관리를 위한 기본 도구, 종속성 해결은 수동으로 해야 할 수도 있음.
  • YUM: RPM을 기반으로 하며, 리포지토리를 통해 종속성 문제를 자동으로 해결.
  • APT-GET: Debian 계열 배포판에서 사용되며, 리포지토리를 통해 종속성 문제를 자동으로 해결.

 

 


 

[적용 예시]

 

 

- Apache 웹 서버

http 웹 서버 소프트웨어로, 웹 사이트 호스팅시 사용. 설치 후 가상 호스트를 설정하여 여러 웹 사이트를 하나의 서버에서 운영할 수 있음

 

1. 설치

sudo apt-get install apache2

 

 

2. 가상 호스트 설정

/etc/apache2/sites-available/000-default.conf 파일을 열어 수정. 예를 들어:

sudo nano /etc/apche2/sites-available/000-default.conf

 

파일 내에서 ServerName 및 DocumentRoot 등을 설정합니다. 그런 다음 Apache를 재시작.

 

+) 가상 호스트를 설정하는 이유는 하나의 물리적 서버 또는 ip에서 여러 웹사이트를 호스팅하기 위해서.

비용 절감, 관리 용이성, 리소스 효율성 등의 장점이 있음

 

 

 

 

- Mysql 데이터베이스

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 설치 후 초기 보안 설정을 통해 데이터베이스 보안을 강화한다.

 

1. 설치

sudo apt-get install mysql-server

 

 

2. 보안 설정

sudo mysql_secure_installation

스크립트는 기본적인 보안 설정을 완료하도록 도와줍니다(루트 계정 비밀번호 설정, 익명 사용자 제거 등).

 

 

 

 

-Python 개발 환경

Python 개발 환경을 설정하여 다양한 Python 프로젝트를 격리된 환경에서 실행할 수 있다. virtualenv를 사용하여 각 프로젝트별로 독립적인 패키지 설정을 유지할 수 있다.

 

 

1. 패키지 관리자 설치

sudo apt-get install python3-pip

 

2.  가상 환경 생성

sudo pip3 install virtualenv
virtualenv myenv
source myenv/bin/activate

 

 

 

 

- Snort, 네트워크 침임 탐지 시스템

Snort는 네트워크 트래픽을 실시간으로 분석하여 침입 시도를 탐지하는 IDS(침입 탐지 시스템).

 

1. 설치

sudo apt-get install snort

 

2. 설정 파일 수정

sudo nano /etc/snort/snort.conf

 

 

 

 

 

- 방화벽

UFW(Uncomplicated Firewall)는 Ubuntu에서 사용하기 쉬운 방화벽 관리 도구. 기본 정책을 설정하고 특정 포트를 열거나 차단하여 시스템 보안을 강화할 수 있다.

 

1. 활성화

sudo ufw enable

 

2. 기본 정책 설정

sudo ufw default deny incoming
sudo ufw default allow outgoing

 

3. 특정 포트 열기

sudo ufw allow 80/tcp

 

4. 불필요한 포트 차단

sudo ufw deny 23/tcp

 

 

 

 

 

 

 

참고)

https://m.blog.naver.com/PostView.nhn?blogId=nmnmnmnm01&logNo=110175880951&proxyReferer=https:%2F%2Fwww.google.co.kr%2F