✳️ apt 명령어로 설치
💟 apt
: advanced package tool로 우분투에서 소프트웨어를 설치, 제거, 관리하는 툴
- 복잡한 의존성을 고려하지 않아도 되고 깔끔하게 프로그램을 설치할 수 있는 좋은 방법
# 설치
apt install [package name]
# 제거
apt remove [package name]
# 검색
apt search [package name]
🐧 간단한 실습
🧐 apt 명령어로 git을 설치 해보기
git 명령어 : 리눅스에서 코드의 버전 관리를 할 수 있는 명령어
먼저 which를 이용해서 git이 어디 있는지 확인 해봤으나 아무것도 뜨지 않음! 그건 설치 되어 있지 않다라고 볼 수 있음!
sudo apt install git을 입력하면 암호를 입력하라고 떠서 암호를 입력해준다.
암호가 제대로 일치하게 입력되면 다운로드가 진행되려고 하는데 여기에 y/n 선택하는 게 뜬다.
이때 y를 입력하고 엔터를 쳐주면 다운로드가 마저 진행된다.
만약에 y/n 여부를 묻지 않고 바로 y로 실행해주고 싶으면 sudo apt install -y [패키지] 라고 -y 옵션을 달아주면 된다.
설치가 완료되면, 똑같이 which git을 해보면 이번엔 설치가 되어 위치를 화면에 보여주는 것을 알 수 있었다.
🧐 apt 명령어로 htop을 설치 해보기
htop 명령어 : top처럼 리눅스 시스템에서 CPU, RAM과 같은 자원 사용량을 확인할 수 있는 명령어, 좀 더 멋진 그래픽 화면으로 확인 할 수 있음
이번에는 -y 옵션을 달고 설치를 진행해주니 바로 설치를 해줬다.
htop도 잘 설치가 되었다.
🧐 apt 명령어로 ifconfig를 설치 해보기
ifconfig 명령어 : 리눅스에서 사용하는 네트워크 상태를 확인할 수 있는 명령어
힌트)
일반적으로 apt install [program] 을 수행하면 되지만 만약 설치하려는 프로그램이 다르다면 apt에서 다른 프로그램 이름을 알려줌. 혹은 구글에 검색을 하면서 진행해보기!
ifconfig를 설치하려 했으나 패키지를 찾을 수 없다고 해서 구글링을 해봄
구글링 결과, net-tools라고 입력해서 설치하면 된다고 해서 설치함
잘 설치됨!
✳️ Precompiled binary 다운로드
💟 Precompiled binary
: 소프트웨어 프로그램 또는 라이브러리가 컴파일 과정을 거쳐 이미 실행 가능한 형태로 만들어진 파일을 의미
🧐 컴파일(Compile)
▶ 소프트웨어 개발 과정에서 프로그래머는 인간이 이해할 수 있는 고급 프로그래밍 언어(C, C++, Java 등)로 코드를 작성함
▶ 그러나 컴퓨터는 이러한 고급 언어를 직접 이해하지 못하기 때문에, 이를 기계어(바이너리 코드)로 변환해주는 과정이 필요, 이 과정을 "컴파일"이라고 함
▶ 컴파일된 결과물은 특정 운영체제와 하드웨어 환경에서 실행될 수 있는 바이너리 파일로, 이는 .exe, .dll, .so, .bin 등의 확장자를 가질 수 있음
⭐ 장점
- 편리함 : 사용자가 소스 코드를 컴파일할 필요가 없으므로, 사용이 간편
- 시간 절약 : 컴파일 과정이 필요 없기 때문에, 바로 실행이 가능
- 호환성 : 일반적으로 특정 운영체제와 하드웨어에 맞게 컴파일되기 때문에, 해당 환경에서 안정적으로 작동
⭐ 단점
- 환경 종속성 : 미리 컴파일된 바이너리는 특정 운영체제 및 하드웨어에서만 동작할 수 있음. 다른 환경에서는 사용할 수 없음
- 유연성 부족 : 사용자가 소스 코드를 수정하거나 특정 옵션을 적용할 수 없음
⭐ 예시
- Windows의 .exe 파일: 윈도우 프로그램 설치 파일은 대표적인 Precompiled binary
- 리눅스의 .deb 또는 .rpm 패키지: 리눅스 배포판에서 제공하는 소프트웨어 패키지 역시 미리 컴파일된 바이너리
🐧 간단한 실습
🧐 NCBI에서 제공하는 BLAST (Basic Local Alignment Search Tool) 프로그램을 다운로드 해보기
BLAST 프로그램
: 주어진 서열 (DNA, Amino Acids 등)을 데이터베이스에 검색하여 가장 가까운 서열을 찾아주는 프로그램
window용 주소로 다운로드를 해봄
요렇게 진행상황이 뜨다가
100%가 되면서 다운이 완료되었다.
다운로드가 완료되었으면 이제 압축 파일을 해제한다.
뭔가 잔뜩 받아졌다.
ll을 통해 다운로드 디렉터리 내부를 살펴 보면 tar.gz 파일과 압축해제된 파일이 보인다.
압축 해제된 파일로 들어가서 다시 내부를 살펴보면 bin이 있다.
bin 위치에서 ll을 찍어보면 여러가지의 실행파일들이 존재한다.
이 실행파일들 중에 blastn의 버전을 확인해보았다.
✳️ Source code 다운 받아서 compile 해서 설치
💟 전체적인 과정
1️⃣ 소스 코드 다운로드
- 소스 코드는 일반적으로 .tar.gz 또는 .zip과 같은 압축 파일 형태로 제공
wget https://example.com/software-1.0.tar.gz
2️⃣ 압축 해제
- 다운로드한 소스 코드 파일을 압축 해제
tar -xzf software-1.0.tar.gz
cd software-1.0
3️⃣ 의존성 확인 및 설치
- 소스 코드를 컴파일하기 전에 필요한 라이브러리나 패키지를 설치해야 할 수 있음
- 대부분의 경우, 소프트웨어의 README 또는 INSTALL 파일에 필요한 의존성 목록이 명시되어 있음
sudo apt-get install build-essential libssl-dev
4️⃣ 컴파일 환경 설정
- 일반적으로 ./configure 스크립트를 실행하여 컴파일러, 라이브러리 경로, 설치 경로 등을 설정
- --prefix 옵션은 프로그램이 설치될 디렉토리를 지정
./configure --prefix=/usr/local
5️⃣ 소스 코드 컴파일
- 실제로 소스 코드를 컴파일 함
- 소스 코드를 기계어로 번역해서 실행 가능한 바이너리 파일을 생성하는 과정
- 컴파일 과정은 소프트웨어의 크기와 복잡성에 따라 시간이 걸릴 수 있음
- 이 과정에서 오류가 발생할 경우, 의존성 부족이나 설정 오류를 먼저 확인 필
make
6️⃣ 소프트웨어 설치
- make install 명령을 실행하여 소프트웨어를 지정된 디렉토리에 설치
sudo make install
7️⃣ 설치 확인
- 소프트웨어가 제대로 설치되었는지 확인하기 위해 설치된 프로그램을 실행하거나 버전을 확인
software --version
8️⃣ 청소_선택사항
- 컴파일 후 생성된 임시 파일들을 삭제하여 공간을 절약할 수 있음
make clean
⭐ 장점
- 소프트웨어의 소스 코드를 직접 컴파일 하고 설치 하기 때문에 소프트웨어의 최적화, 커스터마이징, 최신버전 사용 등의 장점 존재
⭐ 단점
- 컴파일 환경, 의존성 문제 등으로 다소 복잡하고 어려울 수 있는 과정이며 경험이 필요로 함
🐧 간단한 실습
🧐 samtools 다운로드 하기
samtools : NGS (Next Generation Sequencing) 서열 데이터를 기준 서열 (Reference sequence)에 정렬 (mapping)하여 만든 포맷을 BAM (Binary Sequence Alignment/Map Format) 파일이라고 하는데 이 BAM 파일을 다루는 툴
1️⃣ 소스 코드 다운로드
소스코드를 입력하여 다운로드를 해줘본다.
위와 유사한 과정을 거쳐서 소스코드가 다운이되었고 ll을 찍어보니 압축 파일이 존재했다.
2️⃣ 압축 해제
어쩌고저쩌고 압축해제를 마친다.
ll로 확인해보니 압축이 잘 해제 되었다.
3️⃣ 컴파일 환경 설정
- 이 실습에서는 의존성 확인 및 설치를 configure하면서 하나하나 체크하면서 설치를 해주는 것으로 같이 병행해줬다.
이제 samtools-1.18 로 이동을 해서 etc라는 디렉터리를 생성해주면서 그 아래에 samtools-1.18을 생성해주기 위해 -p 옵션을 써서 한 번에 생성해줬다.
samtools는 C로 작성된 프로그램인데 소스 코드에서 컴파일을 하려면 C 컴파일러가 필요하다.
오류 메시지를 보면, gcc, cc, cl.exe 등 C 컴파일러를 찾지 못해 configure 단계에서 실패한 것을 알 수 있다.
그래서 gcc와 g++을 설치해줘 보도록 할 것이다.
설치가 완료 됨.(예고) 앞으로 여러 번 삽질할 것임 ^-^
configure를 재시도
오류 코드에 libncurses5-dev 가 없어서 안됐다고 하니 저걸 설치 해줘본다.
libncurses5-dev 설치과정이 끝나면 다시 configure 시도
configure를 재시도
이번에는 zlib1g-dev 가 없다고 해서 설치해주도록한다.
설치 완료하면 다시 configure를 해주면 된다.
configure 재시도
libbz2-dev가 없다! 설치 필요!
설치 되면 configure 재시도
하.. 또 없음 liblzma-dev가 없음
설치 후 configure 재시도 하고 나면
드디어 error 가 없다!!! configure가 되었음!!!
4️⃣ 소스 코드 컴파일
- make를 통해 컴파일을 진행할 것인데 아마 make가 없을 것이다.
- make도 설치해주면 된다.
역시 없다!!!
이제 다시 make 명령어를 이용해서 compile을 진행해주도록 한다.
make 명령어를 입력해주면 좌라라라락 과정이 진행되면서 compile을 하게 되어 완료 후에 소프트 웨어를 설치하면 된다.
5️⃣ 소프트웨어 설치
- 이제 make install을 통해서 소프트웨어를 설치 해본다!
설치가 완료가 되었다.
6️⃣ 설치 확인
노란 박스의 경로가 설치한 경로인데 저기로 들어가보도록 할 것이다.
홈디렉터리 아래에 etc 아래에 samtools-1.18로 들어왔다.
bin에 들어와서 ls로 확인해보면 samtools가 잘 있는 것을 확인했으니 한 번 실행해보도록 하자.
잘 실행이 되는 것을 알 수 있다. samtools 안에 뭐뭐 있는지 보여주는 것 같음!
'📒 Today I Learn > 🐧 Linux' 카테고리의 다른 글
[Linux] 쉘 스크립트 작성법 (0) | 2024.08.30 |
---|---|
[Linux] 단축키 (0) | 2024.08.30 |
[Linux] 리눅스 명령어 (2) (0) | 2024.08.28 |
[Linux] 리눅스 명령어 (1) (0) | 2024.08.28 |
[Linux] 절대 경로 및 상대 경로 (0) | 2024.08.27 |