On-Premise/Linux

dpkg, apt, tar, sed 등

학슈퍼맨 2024. 1. 2. 01:35

기존의 리눅스는 c코드로 파일을 컴파일 시켜 프로그램을 실행 시켰지만, 해당 파일들을 패키지로 만들어 수월하게 설치되도록 (ex. 윈도우의 exe, msi)

 

 

dpkg

 - deb(데미안), (<-> rpm(레드햇))

 - dpkg라는 명령을 통해 deb 패키지 설치

 - 종속성의 단점이 있음(하나하나 설치를 직접 하기 때문에 종속성을 먼저 해결해야 해당 패키지를 설치할 있음, 과정이 뒤엉켜 있을 있음)

 

apt

 - Update 서버를 인터넷 상에 설치해 놓고 인터넷 연결만 되어있으면 자동으로 다운받아 설치되도록 (dpkg 종속성 문제는 해결됨)

 - apt 공용 인터넷망이 필요함(내부 인트라넷 환경에서는 불가)

 - 서버의 등록되어 있는 버전만 다운 가능(apt 서버에 최신 버전 정보가 업데이트 되어 있지 않으면 최신 버전의 패키지를 다운 받을 없음)

 

 

공식적으로 지원해주는 무료 패키지

 

비공식적으로 지원해주는 무료 패키지

 

공식적으로 지원해주는 유료 패키지

 

비공식적 부분 무료 패키지

 

 

x86_64 아키텍처 사용

 

i386 32bit 시스템

tar 패키징, xz 압축

 

wget 명령어 파일의 위치를 확인(wget 다운되어 있는지 확인하는 )

man wget으로 wget 대한 매뉴얼 확인 가능

 

 

-P 옵션으로 다운받을 디렉터리 지정 가능

 

sudo dpkg -i /tmp/mysql

설치하면 종속성 문제 화면이 나옴

먼저 아래의 패키지를 설치해야 해당 패키지 설치 가능

 

sudo apt list install mysql-server

버전을 제외하고는 설치 안됨(해당 서버에

 


tar

 

tar 실습을 위한 파일 7 생성

 

그냥 묶기만(패키징)

 

tar cJf [묶을 tar파일명] [묶을 파일들]

묶으면서 압축까지 진행(J 옵션으로)

 

와일드 카드 사용해서 한번에 지정

 

 

.xz 압축했으면 때도 해당 알고리즘을 써서 풀어주는 것이 좋다(-> tar xf로도 되긴하지만, tar xJf 푸는 것이 좋음)

 


 

 

-P 옵션으로 다운받을 디렉터리 지정

 

 

 

 

 

 

 

종속성 문제 발생

 

 

 

 

 

 

 

종속성 문제 해결

 

mc 명령어 사용 가능(윈도우의 파일 탐색기)

 


bastet 이라는 게임 패키지 설치해보기

 

 

 

 

 

1.74.0 버전 라이브러리를 다운(wget으로)

-> 이거 아니야ㅡㅡ http://archive.ubuntu.com/ 사이트에 있는데 숨겨져 있던거였어;;

 

 

의존성 해결해야하는 패키지 경로 이름으로 구글링해서 찾고 아카이브 사이트에서 다운받기(wget)

 

정리하기!

가장 하위 버전으로 하니 의존성 문제도 하나 밖에 안나옴

 

dpkg 패키지 설치 과정

1) 설치할 패키지 확인

2) 해당 패키지 파일 다운

3) 다운 받은 패키지 파일로 설치

 


apt

 

 

 

 

 

원래는 설치됨

 

dpkg 다시 지워보자

 

설치가 안돼

 

 

 

 

apt update

 - Repository(저장소) 업데이트

 

패키지명을 치지 말아 봐라

-> 내가 알아서 필요한걸 깔아줄게 하고 libboost-program 입력해서 깔아

 

종속성 해결 다시 설치

 

apt 패키지 설치 문제점 해결 솔루션

 

1) sudo apt update 저장소 업데이트 재설치

2) sudo apt --fix-broken install 깨진 것들을 고친 설치(의존성 해결 해주는)

3) sudo apt autoremove mc mc 패키지의 종속성 관련 패키지들을 모두 지워줌

4) sudo apt purge mc 설정파일까지 제거

 

=> remove 패키지 제거, autoremove 종속성 해결에 필요한 사전에 설치한 파일들 제거, purge 구성파일까지 모두 제거

 

 

 

 

 

-y 옵션으로 질문에 yes

 

bastet 패키지 삭제하기

 

 

 

 

 

패키지 확인 가능, '이제 패키지를 설치하면 되겠구나' 설치하면

 

명령을 간략하게 표시

 

설명문으로 찾는 것이기 때문에 여러 나올 있음(비추)

 

종속성 문제 확인 가능

 

해당 패키지 정보 확인

 

 

 

 

 

ex) DNS 서버(name server) 필요하다 -> 먼저 찾고 패키지를 설치하면 되겠구나

 

 

repository 확인 가능

 

respository 추가 등록 가능

 

등록된 repository 확인

 

egrep 옵션은 grep이랑 뭐가 다르지?....

 

대소문자 구분 없이 하려면 -i 옵션주고 검색

 


sed 명령어

vi에디터를 사용하지 않고 바로 내용 수정이 가능

 

sed -i 's/abc/ABC/' abc