dpkg 를 사용하여 소프트웨어 관리해보기
나의 메인 OS는 mac OS 이다. 업무용으로 ubuntu 14.04 을 쓴다. 사실 회사에서의 일만 아니면 쓸일이 없다.
I love Windows.
업무적으로 쓰는 package를 관리하기 위해 .deb 파일을 쓴다.
deb 패키지
.deb는 dpkg 명령으로 설치할수 있다.
패키지 받기
설치에 앞서 테스트에 사용할 패키지파일을 받아보겠다.
ubuntu 에서는 시스템에 필요한 소프트웨어 패키지 설치, 검색, 다운로드, 업그레이드등을 apt를 이용해서 관리한다.
그럼 apt 를 이용해서 openvpn을 받아보겠다.
-d 명령어를 쓰면 설치하지 않고, deb 파일을 다운받는다.
Package 저장경로
다운받은 파일은 /var/cache/apt/archives 에 저장된다.
디스크 공간 확보를 위해 디랙토리에 캐시되어 있는 패키지를 삭제하려면 clean 을 입력하면된다.
apt-get clean
.
|-- lock
`-- partial
나의 경우 pogopulg를 심심풀이로 가지고 노는데 용량이 부족한경우가 많아 종종 위의 명령어를 이용한다.
그럼 패키지파일을 다운받아보겠다.
cd /var/cache/apt/archives
apt-get -d install openvpn easy-rsa
tree
.
|-- easy-rsa_2.2.2-1_all.deb
|-- lock
|-- openvpn_2.3.2-7ubuntu3.1_amd64.deb
`-- partial
openvpn_2.3.2-7ubuntu3.1_amd64.deb 과 easy-rsa_2.2.2-1_all.deb 파일을 볼수있다.
아직설치는 안된상태이다.
Package 설치
설치를 해보겠다.
설치는 -i 명령어를 이용하면된다.
dpkg -i <.deb file>
dpkg -i openvpn_2.3.2-7ubuntu3.1_amd64.deb
Package 설치 리스트
설치가 되었는지 보겠다. -l 명령어를 이용하면된다.
dpkg -l < package Name>
dpkg -l | grep openvpn
ii openvpn 2.3.2-7ubuntu3.1 amd64 virtual private network daemon
Package 삭제
패키지 삭제는 -r 옵션을 이용하면된다.
dpkg -r < package Name >
그럼 다운받은 .deb 파일을 풀어보겠다.
Package 풀기
패키지를 푸는것은 -x 를 이용하면된다.
데비안 우분투 패키지는 .deb라는 단일 파일로 묶여있다. 각각의 .deb 파일은 그 내부에 빌드된 파일들을 풀어서 어떤 파일들으 있는지 확인 가능하다.
/tmp/openvpn 폴더에 풀어서 보겠다.
dpkg -x openvpn_2.3.2-7ubuntu3.1_amd64.deb /tmp/openvpn
Package 내부스크립트 풀기
.deb의 내부 제어 스크립트파일은 -e 명령어로 풀수있다.
dpkg -e openvpn_2.3.2-7ubuntu3.1_amd64.deb /tmp/$RANDOM
설치된 리스트 확인
설치된 리스트 확인은 -L 명령을 이용하면 된다.
dpkg -L openvpn
deb 패키지만들기
Random 으로 만든파일을 debian 폴더로 변경후 /tmp/openvpn 에 넣어준다.
아래와 같은 구조가 되겠다.
.
|-- debian
|-- etc
| |-- bash_completion.d
| |-- default
| |-- init.d
| |-- network
| | |-- if-down.d
| | `-- if-up.d
| `-- openvpn
`-- usr
|-- include
| `-- openvpn
|-- lib
| `-- openvpn
|-- sbin
`-- share
|-- doc
| `-- openvpn
| `-- examples
| |-- sample-config-files
| |-- sample-keys
| `-- sample-scripts
|-- man
| `-- man8
`-- openvpn