1. ubuntu 패키지 저장소 추가하기일반적으로 ubuntu에 패키지를 설치할 때 1-1. 명령어 실습우선 패키지를 어떤 소스에서 가져오는지, 패키지의 목록을 살펴보자.
이 목록이 패키지를 가져오는 소스의 리스트이고, 우리가 패키지를 설치하기 전 update, upgrade를 해주었는데, update 명령이 이 리스트를 최신회하는 명령인 것이다. 1-1-1. apt-cache
이 명령은 현재 캐시된 ubuntu 패키지 목록을 보여준다. 우리가 저장소를 추가하게 되면 패키지는 늘어나게 될
것이다.
1-1-2. PPA이제까지는 ubuntu 패키지에 없는(표준 패키지가 아닌) 것을 설치하려면 필요한 것이 PPA(Personal Package Archive)이다.
이번에는 php 7.3 버전을 설치해 보려고 한다. 그런데 이미 패키지가 존재하지는 않는지 확인해보자.
찾아봐도 7.2까지만 나오고 7.3은 보이지 않을 것이다. 무슨 일이 있어도 반드시 7.3 버전을 사용해야 하기 때문에 아래처럼 저장소를 추가해야 한다.
주의사항이 나오면 내용을 확인하고 엔터를 눌러주면 된다. 다음으로는 혹시 모르니 update 를 통해 리스트를 최신화해주자.그리고 정말로 7.3 버전 패키지가 있는지 확인하기 위해 cache에서 grep을 통해 검색해보겠다.
잘 나오는 것을 볼 수 있다. 그러면 마지막으로 php 및 부수적인 소프트웨어를 설치해서 확인해보자.
잘 설치되었다. 이제 우리는 ubuntu에 패키지가 없을 때도 PPA를 추가함으로써 패키지를 설치할 수 있게 되었다. 2. tar(tape archive)tar은 많은 파일을 하나의 아카이브 파일로 묶는 유틸리티이다. 압축과 뭐가 다른가 싶지만, tar의 가장 큰 특징은 파일을 묶을 때 권한이 그대로 보존된다는 점이다. 2-1. 명령어 실습2-1-1. tar, gzip
우선 각 옵션에 대한 설명이다.
잘 묶였는지 확인할 때는 c를 t로 바꿔 주면 된다. 또한 권한이 유지된 것을 볼 수 있다. 이제 압축을 해 보자.
용량의 차이가 보이는가? 거의 1/5 수준으로 줄어든 것을 볼 수 있다. 그런데 아무래도 tar 후 gzip으로 압축하는 경우가 많다보니, 아예 tar 옵션에서 압축까지 할 수 있도록 해버렸다.
2-1-2. 압축 풀기압축을 풀기 전에, 위에서 연습한 파일을 홈 디렉토리에서 풀게 되면 디렉토리가 지저분해지므로, 연습용 디렉토리를 만들어 그 안에 압축파일들을 이동시키자.
그리고 두 파일의 압축을 각각 다음처럼 풀어주면 된다.
압축이 잘 풀렸는지 확인하기 위해 분명
tar만 했을 때는 원래 권한이 유지됐었는데, 압축을 풀고 나니 사용자로 바뀌어 있는 것을 볼 수 있다. 그러면 이제 사용할 일이 없는
2-1-3. 이동하지 않고 압축 & 압축 풀기위에서는
지금까지 한 모든 명령들은 한 디렉토리의 파일을 모두 묶어(+압축) 다른 디렉토리로 옮기는 행위였다. 그런데 리눅스에는 이미 cp 명령이
있어, 재귀적으로 모든 파일을 옮길 수 있음을 떠올린다면 tar를 왜 썼는지 의문이 들 수도 있다. 3. 소스 코드로 프로그램 컴파일하고 설치하기패키지로 유틸리티 등을 다운받아 설치할 수도 있지만, 우리가 직접 작성한 코드 또는 남이 작성한 코드를 사용해야 할 경우도 있다. 이럴 때는 직접 컴파일을 해서 설치하는 과정이 필요하다. 3-1. 명령어 실습3-1-1. nmap 소스코드를 받아 컴파일nmap 홈페이지에 들어가 소스코드로 다운로드를 받아 보자. 여기서 밑의 안정화버전의 링크를 우클릭해 '링크 주소 복사'를 누른다. 다시 터미널로 돌아와 테스트용 디렉토리를 생성하고 링크 주소를 다음과 같이 복사해 다운로드하자. 일반적으로 패키지를 다운로드 받을 때는 apt-get 을 사용했는데, url로 다운로드 받을 때는 wget 을 사용한다.이제 컴파일을 해야 하는데, 컴파일 방법에 관해서 우선은 이 페이지에서 방법을 각자 확인한 후 실습에 들어가도록 하겠다. 우선 파일 형식을 보면 tar.bz2라고 되어 있다. tar은 방금 배웠으니 bz2는 뭘까 궁금하다.
bzip2라는 압축된 파일인 것으로 보인다. 그러면 압축을 풀면 되는데, 위에서
배웠던 gzip의 경우 tar에서 z옵션을 통해 gzip 형식의 압축을 푼 것을 기억하고 있을 것이다. (x는 형식 상관 없이 압축을 풀 때 사용)
그러면 생성된 nmap-버전 디렉토리로 이동하여 설치를 준비해보자. 단 3줄로 설치가 끝난다고 되어 있다. 그러면 일단 저대로 진행해보도록 하겠다.
세상일이 원래 내 뜻대로 되지 않는게 더 많다. 그래도 왜 안되는지 친절히 써있으니 확인해보면, C 컴파일러가 없다고 한다. 원인을 알았으니 설치하면 되는데, 컴파일러, make 등등을 한땀한땀 받아서 설치할 수도 있지만 리눅스에는 이러한 컴파일에 필수적인 요소들을 한 번에 받을 수 있는 명령어가 있다.
설치해 보면 엄청난 용량의 파일이 설치되는 것을 볼 수 있다. 컴파일러가 설치되었으니 이제 진짜로 설치를 해보자.
필자의 경우는 바로 설치가 되었지만, 사용자에 따라서는
flex가 없어서 설치가 안되는 경우도 있다. 이럴 때는 아래처럼 필요한 패키지를 설치하고 다시
그 외에도 뭐가 없어서 설치가 안된다는 메시지가 나오면 구글신의 힘을 빌리면 무엇을 설치해야 하는지 알 수 있으므로 열심히 검색해보자. 밑에 경고 메시지가 있는데, openssl로 컴파일을 하려면 준비가 많이 필요하므로 우선은 빌드 후 설치가 되는지만 확인하도록 하겠다. 다시 처음으로 돌아와서, 무사히 우선은 무사히 make가 되었다면
다음과 같은 메시지가 여러분을 맞이할 것이다. 그러면 일단은 nmap의 버전을 출력해 보도록 하자.
openssl, libssh2 없이 컴파일 되었다고 나와있는데 일단은 무시하고 nmap을 실행해 보겠다. 이처럼 실행이 되는 것을 볼 수 있지만 이것뿐이고 다른 기능은 사용하지 못할 것이다. 그렇다면 마지막으로, 설치를 어떻게 해야 할까? 설명에 가슴이 웅장해지는 실패 메시지를 볼 수 있다. 실패한 이유는 위 메시지에도 나오지만 /user/local/에 설치하려고 하는 것이 그 이유로, nmap이 어디 설치되어 있는지 우선 확인해보자.
앞에 나온 miniconda, conda는 무시하고 그 다음부터 보면 /user/local/bin 이 /user/bin 보다 먼저 나오는 것을 볼 수 있다.그래서 /user/local/bin 에서 먼저 실행되는데, 이를 해결하려면 sudo 명령으로 make install 을 실행하면 되지만, 앞에서 설명했듯 아직 openssl 문제를 해결하지 않았기 때문에 설치 작업은 추후 해결하도록 하겠다. |