리눅스에는 기본적으로 gnome window를 GUI 환경으로 설정해서 설치할 수 있지만 윈도우와 비슷한 KDE데스크탑 환경도 설치할 수 있습니다. 초기 리눅스 설치시에 설정해주면 되는 부분인데요. KDE데스크탑과 gnome 데스크탑의 가장 큰 차이는 설정의 정도에 있겠습니다. gnome은 가벼운 설정을 추구하는 반면 KDE는 윈도우와 같이 이것저것 설정할 수 있다는 것이죠. gnome은 왜 설정못하냐 라고 물으실 수도 있겠습니다. gnome에서도 역시 설정 가능한 부분은 KDE도 마찬가지지만 리눅스에서 gnome 데스크탑을 활용하신다면 그래도 조금은 가벼운 환경을 추구한다고 보기 때문입니다.(사족입니다...>_<)




이번 포스팅에서는 Client(클라이언트) 사용자가 이용할 수 있도록 KDE데스크탑을 설치해보도록 하겠습니다. 


가장 먼저 설치할 KDE데스크탑 그룹패키지를 확인합니다.


$ yum grouplist | grep KDE



대소문자를 반드시 구분해서 KDE데스크탑 그룹패키지를 설치해줍니다. 


$ su -c 'yum -y groupinstall "KDE Plasma Workspaces"'



설치가 되고 있습니다. 컴퓨터의 사양에 따라 시간이 5~15분 정도 소요될 수 있습니다. 



설치가 완료되었습니다. 이제 KDE데스크탑으로 부팅하기만 하면 됩니다. 



만약 자동로그인이 되어있다면 전체설정>사용자>자동로그인 끔  으로 자동로그인을 해제해주셔야 합니다. 


$ reboot



리부트를 하고 접속화면이 뜨면 centos 를 눌러 비밀번호 입력화면을 띄웁니다. 그리고 로그인 버튼 옆에 설정버튼을 누르면 KDE Plasma 작업공간으로 설정을 변경하고 로그인할 수 있습니다. 



KDE데스크탑 작업환경으로 로그인되었습니다. 



개인적으로 그놈클래식으로 연습하다보니 익숙하지 않은 환경이네요 >_<



KDE데스크탑에서는 아래와 같은 화면을 확인해볼 수 있습니다. 



재부팅하게되면 이미 설정된 KDE Plasma 작업공간으로 부팅되므로 다시 그놈 클래식으로 설정해주어야 합니다. 






오늘은 어떻게 보면 가장 활용빈도가 낮을 수 있는 리눅스 센토스 내에 존재하는 가상머신을 활용하는 방법에 대해 알아보려고 합니다.


센토스를 윈도우 상에서 구동할 때 멀티부팅을 하거나 Vmware를 사용해서 구동할 수 있는데 구동된 리눅스 센토스 내에서 또한번 가상머신을 이용해 윈도우 서버 2008을 구동해보려고 합니다. 


이번 포스팅에는 터미널을 사용하지 않습니다. 


1. 윈도우 상에서 cafe.naver.com/thisislinux 자료실에서 윈도우서버2008.iso 파일을 다운로드 받습니다. (센토스 내에서 인터넷 접속을 통해 받아도 상관업습니다.)


2. 받은 파일을 복사합니다.


3.센토스 다운로드 폴더로 붙여넣기 합니다.


4. 아래와 같이 복사된 윈도우 iso파일을 확인합니다.


5. 이제 프로그램 > 시스템도구 > 가상머신관리자 를 실행시킵니다.


6. 파일 > 새 가상머신 만들기 를 실행합니다.


7. 다음과 같은 화면이 나오면 로컬설치매체(ISO 이미지나 CDROM)을 선택하고 앞으로를 누릅니다.


8. 우측 하단에 로컬검색을 클릭합니다. 


9. 다운로드 폴더에 윈도우 iso 파일을 선택해줍니다.


10. 메모리는 1GB를 줍니다.


10-1. 사전에 메모리를 넉넉하게 설정하지 않았다면 vmware 설정에서 메모리를 용량을 늘려줍니다.


10-2. Processors 탭에서 Virtualize engine virtualize intel, CPU를 활성화 시켜줍니다.


11. 가상 머신이 차지할 용량을 설정하고 앞으로를 눌러줍니다. 전 8GB를 주었습니다.


12. 이제 이름을 win2008로 설정하고 '설치 전에 사용자 설정'을 체크한 후 완료를 누르면 설치가 시작됩니다. 


이렇게 하면 설치가 완료됩니다. 해당 설치는 컴퓨터의 성능에 따라 최소 10분에서 최대 1시간 이상도 걸릴 수 있다는 점 염두에 주시기 바랍니다.


오늘 포스팅은 센토스 리눅스 내에서 가상머신을 활용하는 방법에 대해 알아보았습니다. 


윈도우에서는 가상 머신을 기본으로 제공하지 않으나 리눅스에선 가상 머신을 기본적으로 제공하므로 유용하게 사용할 수 있을 것 같습니다.


다음에는 클라이언트 컴퓨터에 KDE 데스크톱을 추가설치하는 법에 대해 포스팅하도록 하겠습니다. 


이번에는 23. 리눅스 유틸리티(파일브라우저 - 노틸러스) 에 이어서 X윈도에서 사용하는 기타 유틸리티들에 대해서 소개하려고 한다. 


1. 에볼루션(evolution)


에볼루션은 MS Outlook Express(Ms아웃룩 익스프레스)와 비슷한 기능을 하는 이메일 클라이언트 입니다.

메뉴 : [프로그램] - [오피스] - [에볼루션]


# evolution


2. 메신저 - 엠퍼시(empathy) 


엠퍼시(empathy)는 Facebook Chat, Google Talk, Windows Live(MSN), Yahoo 등 대부분의 메신저 서비스 프로그램으로 사용됩니다. 

각각의 메신저에 로그인해서 연동시킬 수 있습니다.

메뉴 : [프로그램] - [인터넷] - [엠퍼시]


# empathy




3. FTP클라이언트(GFTP)

Fedora 20 사이트에서 가져와서 설치해야 한다.

메뉴 : [프로그램] - [인터넷] - [gFTP]


# gftp


http://rpm.pbone.net/index.php3/stat/4/idpl/25149745/dir/fedora_20/com/gftp-2.0.19-10.fc20.x86_64.rpm.html  에서 다운로드 받아서 설치하거나



터미널에서


# rpm -Uvh gftp-2.0.19-10.fc20.x86_64.rpm



으로 설치하면 된다.


4. 사운드 설정 및 음량 조절

메뉴 : 우측상단 [사용자 이름] - [설정]


# gnome-control-center 명령어 실행 후 [소리] 아이콘 클릭





5. 멀티미디어 - 음악 재생과 인터넷 라디오 재생

메뉴 : [프로그램] - [음악과비디오] - [리듬박스]


# rhythmbox



6. DVD재생 및 동영상플레이어

메뉴 : [프로그램] - [음악과비디오] - [동영상]


# totem



7. 문서편집기 - Windows의 메모장 역할

메뉴 : [프로그램] - [보조프로그램] - [지에디트]


# gedit



8. 문저 편집기/뷰어 - pdf뷰어 

PDF 등의 다중 문서 뷰어

메뉴 : [프로그램] - [유틸리티] - [문서보기]


# evince



9. 그래픽 편집 - gimp

Windows 의 포토샵과 비슷하다.

메뉴 : [프로그램] - [그래픽] - [GNU Image Manipulation Program]]


# gimp


gimp가 설치되어 있지 않다면


# yum list gimp 


로 확인해본 후


# yum install gimp 


를 다운로드 받아서 실행시키면 된다. 





10. 그림보기 - eog

Windows 의 알씨(Alsee) 등과 비슷하다.

메뉴 : [프로그램 ] - [유틸리티] - [이미지보기]


# eog


11. 스크린샷 - 화면을 캡쳐할 때 사용

메뉴 : [프로그램] - [유틸리티] - [스크린샷]


# gnome-screenshot



12. Libreoffice - Writer, Calc, Impress, Base

상용인 Microsoft Office 와 견주어도 별로 뒤떨어지지 않으며 오픈 소스이다.

LibreOffice 는 원래 OpenOffice 라는 제품에서 갈라져 나온 제품이다.

Windows, Mac, Linux 용 모두 무료로 배포 중이다.


MS word = Writer

Ms Word 의 파일 포맷인 *.doc , *.docx 를 지원, PDF 파일로도 저장이 가능하다.

메뉴 : [프로그램] - [오피스] - [LibreOffice Writer]


# libreoffice --writer

Ms Excel = Calc

Ms Excel 의 파일 포맷인 *.xls , *.xlsx 를 지원, PDF 파일로도 저장이 가능하다.

# libreoffice --clac



Ms Powerpoint = Impress

Ms Powerpoint 의 파일 포맷인 *.ppt , *.pptx 를 지원, PDF 파일로도 저장이 가능하다.


# libreoffice --impress



Ms Access = Base

Ms Access 의 파일 포맷인 *.mdb , *.mdbx 를 지원, PDF 파일로도 저장이 가능하다.

# libreoffice --base





--


*.odg 확장자를 지원하는 ODF 편집기 Libreoffice Draw 도 있다.



마지막으로


# libreoffice 


로 통합실행도 가능하다.


04. file Directory & Permission (파일과 디렉터리의 소유와 허가권) 에서 다룬 내용이지만 내용이 나눠져 있어서 찾기가 어려워서 링크파일에 대해서만 따로 포스팅을 하려고 합니다.


파일의 링크(link)에는 하드링크(hard link)와 심볼릭 링크(symbolic link 또는 soft link 라고도 한다) 두 가지가 있습니다. 

하드 링크(Hard Link)는 windows에서 바로가기 아이콘의 개념과 비슷합니다. 


하드링크를 생성하면 "하드링크파일"만 하나 생성되며 같은 inode1을 사용합니다.


# ln 링크대상파일이름 링크파일이름


심볼릭 링크(Symbolic Link)를 생성하면 새로운 inode2를 만들고, 데이터는 원본파일을 연결하는 효과를 가진다. 


# ln -s 링크대상파일이름 링크파일이름


덧붙여 inode란 실제 데이터 파일의 정보를 나타내는 inode 구역에 저장되는 데이터인데 그냥 하나의 객체를 뜻한다고 생각하면 쉽다. 


inode1=inode1 but inode1≠inode2


다시말해 하드링크를 생성한 파일은 원본파일과 완전히 동일한 inode 정보를 가지게 되어 이 말인 즉슨 원본파일을 지워도 hard link 파일은 원본 파일의 데이터를 그대로 갖고 있기 때문에 실행이 된다는 말씀이다. 


하지만 바로가기라는 특성상 symbolic 링크가 더욱 일반적으로 쓰인다. (hard link는 무쓸모인가...)


# ls -il  or # ls -li    


파일리스트 맨 앞에 파일 색인번호를 표시한다. 이 명령어로 하드링크(hardlink) 파일과 소프트링크(softlink) 파일의 색인번호를 원본파일과 비교할 수 있다.


링크파일 생성에 [옵션]을 정리하면 다음과 같습니다.


# ln [옵션] 원본파일 대상파일(혹은 디렉터리)


--backup[=CONTROL] : 대상파일이 존재할 경우 백업파일을 만든 후 링크파일을 생성

-b : 링크파일 생성 시에 대상파일이 존재하면 백업파일을 만든 후 링크파일을 생성

-d : 디렉토리에 대한 하드링크생성. root 권한으로 수행하더라도 시스템의 권한제한으로 실패할 수도 있음. (-F / --directory = -d)

-f : 대상파일이 존재할 경우에 대상파일을 지우고 링크파일을 생성

-i : 대상파일이 존재할 경우에 대상파일을 지울지 확인 (--interactive)

-s : 심볼릭 링크파일 생성

-S : 백업파일을 생성할 때 원하는 접미사를 정할 수 있음

-t, --target-directory=DIRECTORY : 링크파일을 생성할 디렉토리를 지정함


링크 파일을 만들어서 테스트 해보시면서 연습하시길 바랍니다. 

센토스 리눅스를 설치하면 파이어폭스 웹브라우저(firefox web browser)는 자동으로 설치됩니다. 윈도우에서 internet explorer 처럼요. 


물론 자동업데이트를 설정할 수 있지만 첫 포스팅 01. Basic Server Setting (서버 기본 설정) 에서 저희는 업데이트를 자동으로 되지 않도록 설정해두었습니다.


따라서 파이어폭스를 자동업데이트를 시켜주지 않는다면 언젠가는 구버전이 되고 말겠죠. 따라서 파이어폭스를 최신 버전으로 업그레이드 해보도록 하겠습니다. 


먼저 파이어폭스 버전정보를 확인해봅니다. 


파이어폭스를 실행하고 오른쪽 목록 버튼을 클릭하고 빨간 박스로 표시해둔 파이어폭스 도움마로 들어갑니다.


파이어폭스는 터미널에서


# firefox 


로 실행가능합니다.



파이어폭스 도움말 창에서 맨 밑에있는 Firefox 정보 를 클릭합니다.



Mozilla Firefox 정보에서 파이어폭스 버전인 45.5.0 을 확인할 수 있습니다.



이제는 X윈도우로 간편하게 업데이트 하는 방법을 먼저 해보겠습니다.


파이어폭스 웹브라우저를 실행한 후 주소창에


http://www.mozilla.org/en-US


를 입력하여 접속한 후 Firefox 메뉴를 누릅니다.



Download Firefox 를 눌러서 버전 다운로드 페이지로 넘어갑니다.



중간쯤에 있는 Linux 64-bit 를 클릭합니다. 



다음과 같은 창이 뜨면 파일을 /root 에 저장해 줍니다.



(※ wget을 이용한 방법도 여기서부터 동일합니다.)


이제 터미널 창을 열어서


압축해제된 firefox 폴더를


# mv firefox /usr/local


로 이동시켜줍니다. 



# cd /usr/local/bin 


으로 이동 후 


# ln -s /usr/local/firefox/firefox . 


bin 폴더에 링크파일을 생성해줍니다.


이제


# firefox


로 확인해보면 파이어폭스 버전이 54.0으로 변경된 것을 확인할 수 있습니다. 




+++ 혹시 창이 아래와 같이 뜬다면 +++


메뉴바가 보이지 않는다면 주소표시줄 상단에 커서를 두고 오른쪽 마우스를 눌러 다음과 같이 메뉴를 소환한 다음


Menu Bar 


를 클릭합니다.



그리고 Help - About Firefox


로 버전 정보를 확인할 수도 있습니다.



다음 그림처럼 말이죠...! &_&;;






















윈도우에서는 자체적으로 이미지를 만들 수 있는 프로그램을 제공합니다. 제어판에서 말이죠.


리눅스 센토스에서도 마찬가지로 브라세로(Brasero)를 이용해서 이미지파일을 만들고 CD/DVD를 굽거나 할 수가 있습니다. 


가장 먼저 yum 명령으로 해당 패키지를 다운받아줘야 합니다.


# yum -y install brasero



Nothing to do?!!!


어라 이미 다운받아져 있네요 >_<;;



그렇다면 터미널 종류 후에 '프로그램 - 음악과 비디오 - 브라세로' 를 실행시켜 줍니다.



브라세로는 다음과 같이 생겼습니다. 


설명은 새프로젝트만들기에 옵션과 동일하므로 생략하도록 하겠습니다.



그리고 데이터프로젝트를 눌러서 이미지파일을 시험삼아 만들어봅시다.



노틸러스(파일)을 열고 홈폴더에서 test1,test2,test3 파일을 클릭합니다. 



선택한 파일 3개를 드래그 앤 드롭으로 브라세로에 떨궈줍니다. 



그리고 우측 하단에 굽기를 누르면 다음과 같이 이미지 파일의 위치를 지정할 수 있습니다.


일단 간단히 기본 설정되어 있는 /root 에 저장하도록 하겠습니다. 


이미지가 성공적으로 만들어졌구요...!



홈 폴더(/root)에 들어가서 확인해보면 다음과 같이 brasero.iso 라는 이미지 파일이 만들어졌음을 확인할 수 있습니다~:)



리눅스를 쓴다고 모든 분들이 텍스트모드에서 혹은 콘솔창을 띄워놓고 작업만 하시진 않을겁니다.


저처럼 윈도우의 자질구레한 기본프로그램들과 악성코드가 귀찮아서 오신 분들도 물론 있을 거구요.


하지만 윈도우만 쓰다가 리눅스를 쓰시는 분들은 어떤 프로그램이 윈도우 소프트웨어의 대체 프로그램이 될지 모릅니다.


리눅스에는 윈도우에서 사용되는 대부분의 소프트웨어를 대체할만큼의 많은 무료 소프트웨어(유틸리티)들을 제공합니다. 물론 이것들 모두 훌륭한 프로그램입니다.


이번 포스팅에서는 윈도우 탐색기와 비슷한 기능의 파일브라우저인 노틸러스의 활용법에 대해 알아보려고 합니다. 이번 포스팅은 쉬어간다는 느낌으로 보셔도 좋습니다. 


노틸러스라는 파일부라우저는 이미 설치되어 있습니다.


바로


프로그램 - 파일


이 노틸러스 유틸리티 입니다.




보조프로그램 - 파일


로도 확인이 가능합니다.



파일을 열면 홈폴더가 보입니다.


슈퍼유저의 홈폴더이므로 경로는 /root


입니다.



그렇다면 만일 일반유저로 접속했을 때 슈퍼유저의 홈폴더는 어디일까요


바로 컴퓨터 입니다.


/ 폴더에서


/root 폴더를 찾아 들어갈 수 있습니다.


일반유저로 들어가면 저 폴더그림에 x표시가 되어서 root폴더에 접근할 수 없다고 표시되어 있을겁니다~ 직접 확인해보세요.



노틸러스 파일브라우저는 윈도우 탐색기와 거의 동일하므로 기존 윈도우에서 쓰던 단축키들인 Ctrl+X, C, V 등과 새폴더 만들기, 이름바꾸기, 삭제, 등 모든 명령이 동일하게 실행된다고 생각하시면 됩니다. 


그렇다면 이번에는 png, gif, jpg 확장자를 실행시키는데 적용되어 있는 기본프로그램을 어디에서 확인하거나 변경할 수 있는지 알아보겠습니다.


프로그램 - 시스템도구 - 설정 



전체 설정 - 자세히보기



자세히보기 - 기본프로그램


에서 웹, 메일, 달력, 음악, 영상, 사진에 해당하는 기본프로그램을 변경할 수 있습니다. 





센토스 리눅스에는 정말 많은 명령들이 있으며 어쩌면 수천~수만개의 명령이 존재하는데 해당 명령을 다 외운다는 것은 불가능에 가까울지도 모른다.


그래서 리눅스 터미널 상에는 해당 명령어에 대해 알려주는 도움말이라는게 존재한다.


ls 명령어에 대해 알아보고 싶다면 manual의 약자인 man을 입력하고 ls를 입력해서 해당 명령어에 대한 도움말을 볼 수 있다. 


# man ls



space 누르면 다음페이지를 볼 수 있고 b를 누르면 이전 페이지로 돌아갈 수 있다. 


끝내려면 q를 눌러서 끝내면 된다. (b - back, q - quit)


명령어가 기억이 안난다면


# man man 


을 입력해서 명령어 종류에 어떤 것들이 있는지 확인할 수도 있다.


직접 해보면서 익히시길 바란다.

초창기 리눅스는 프로그램 패키지 설치가 굉장히 어려웠다(고 합니다).


리눅스는 프로그램을 설치하려면 소스코드를 가져와서 직접 컴파일을 한 후 필요한 곳에 적절하게 배치해야 했다(고 한다)


그래서 리눅스에서 일반사용자가 프로그램을 가져와서 설치하는 것은 불가능에 가까웠다(고 한다..) 


쓰다보니 안되겠다. 앞으로 말하는 초창기 리눅스에 관한 부분은 전부 강의를 통해 들은 부분이니 양해바랍니다. 


프로그램을 가져오더라도 컴파일을 못하는 리눅스 초보자들은 프로그램을 깔 수가 없었습니다. 이러다보니 리눅스는 사용자들에게 외면을 받았고


RedHat사 에서 Redhat Package Manager라는 개념을 도입했습니다. 


윈도우에서 setup.exe 로 쉽게 프로그램을 설치할 수 있는 것처럼 리눅스도 RPM이라는 확장명의 파일을 rpm 명령어로 간편하게 설치하는 방법을 도입한 것이죠. 


드디어 .rpm 을 이용해서 윈도우 프로그램처럼 쉽게 프로그램을 설치할 수 있게 된 것입니다. 


리눅스 초기 인스톨을 할 때 1000개가 넘는 프로그램을 설치한 후 부팅이 되었을 것입니다. 


바로 그 1000개 가량 되는 프로그램이 전부 .rpm 확장자로 설치되는 프로그램들입니다.


rpm파일들은 centos dvd 파일에 전부 들어있습니다. rpm은 패키지(package)라고 합니다. 


rpm파일은 딱 보기에 복잡한 네이밍 구조를 가졌습니다. (알고보면 별것도 아니지만요)


예를 들어 


gedit-3.8.3-6.e17.x86_64.rpm 


이라는 rpm 파일을 확인해보면


패키지이름 : gedit --> 패키지(프로그램)의 이름

버전 : 3.8.3  --> 대개 3자리수로 구성. "주버전.부버전.패치버전 "

릴리즈번호 : 6  --> 문제점을 개선할 때마다 붙여지는 번호

CentOS 버전 : el7  --> CentOS에서 배포할 경우에 붙여짐 (el=enterprise linux)

아키텍처 : x86_64   --> 64비트 CPU를 의미한다. (i386~686) 은 32비트 CPU를 의마합니다.

src : 소스 파일(설치는 가능하나 실행은 되지 않고 컴파일에만 사용 가능합니다)

noarch : 모든 CPU(아키텍처를 가리지 않고 설치가능합니다)


자주 사용하는 rpm 명령어는 다음과 같습니다.


설치 : rpm -Uvh filename.rpm


U (대문자) : 패키지 설치/업그레이드

v             : 설치과정의 확인 

h             : 설치진행과정을 "#"마크로 화면에 출력


삭제 : rpm -e package_name


이미 설치된 패키지 확인  


rpm -qa package_name : 패키지가 설치되었는지 확인

rpm -qf 파일의절대경로  : 파일이 어느 패키지에 포함된 것인지 확인


아직 설치되지 않은 rpm 파일 확인


rpm -qlp package_name.rpm : 패키지 파일에 어떤 파일들이 포함되었는지 확인 

rpm -qip filename.rpm : 패키지 파일의 상세정보 확인

rpm -qi package_name.rpm : 패키지 파일의 상세정보 확인


반면 RPM은 의존성에 문제가 있습니다. 쉽게 말해 A패키지가 설치되기 위해 B패키지를 필요로 하는 경우, RPM으로 해결이 까다롭기 때문이죠.


이를 해결하려고 YUM이 도입되었는데 YUM에 대해서는 나중에 이야기 하도록 하겠습니다. 



mount 작업을 다시하고 시작했지만 아직 mount에 대한 포스팅을 하지 않았으므로 간단하게 설명만 하고 지나가려 합니다. 


mount는 cd 를 cdrom에 집어넣는 작업이라고 생각하면 됩니다. 지금은 이정도만 알고가면 됩니다. 


캡쳐화면에서 rpm 명령어는 /media/cdrom/Packages/ 에 존재합니다. 그래서 cdrom을 마운트 시켜준 것이죠. 


Packages 폴더에서 ls -l 명령어를 통해 mc 패키지를 찾아봅시다. 아래 화면에서는 '-'를 빼먹는 오타가 났지만 너그럽게 이해바랍니다. 



mc -4.8.7-11.e17.x86_64.rpm 이라는 파일명이 보입니다. 해당 파일의 패키지명은 파일명 맨 앞의 mc 입니다. 



rpm -qa 명령어로 mc 패키지 설치여부를 확인해보니 설치가 되어 있네요. 


여기서 주의할점은 rpm -qa mc 에서 파일명이 아닌 패키지 명을 입력해야 해당 명령이 실행이 됩니다. 


위에 사용된 rpm 명령어를 mc 패키지를 깔고 지워보면서 연습해보시길 바랍니다. 


...


연습이 끝나셨다면 yum에 대해 알아보도록 하겠습니다. 


rpm 확장자를 활용해서 굉장히 간편하게 리눅스 상에서 프로그램을 설치하고 지울 수 있게 되었지만 금새 문제점이 나타나기 시작합니다. 


리눅스 초기의 프로그램들은 굉장히 단순해서 서로 의존성이 없었지만 시간이 지날수록 프로그램이 무거워지고 서로 의존하기 시작합니다. 이렇게 서로 의존하기 시작한 프로그램들을 깔려고 할 때 rpm 확장자는 의존성이 있는 프로그램 패키지를 자동으로 찾아서 설치해주지 못했습니다. 


물론 


# rpm -qR package_name 


으로 패키지와 의존 관계가 있는 패키지들을 찾아볼 순 있습니다만 이렇게 패키지를 설치해도 걸리는 경우가 있고 걸린 해당 파일을 확인하려면 


# rpm -qf package_name 


으로 확인을 해야하는데 복잡해집니다. 


경로를 알지 못하는 경우는 


# find /-name "name"


으로 알아볼 수도 있긴 합니다. 


하지만 모든 경우 너무 복잡하고 시간이 오래걸린다는 거죠. 


이게 rpm의 가장 큰 단점인데 이런 의존성 해결을 위해 yum이 등장하게 되었습니다. 


YUM에 대해 간략하게 설명하자면 다음과 같습니다. 


YUM(Yellowdog Updater Modified) :

rpm 명령의 패키지 의존성 문제를 완전하게 해결, 인터넷을 통하여 필요한 파일을 저장소(repository)에서 자동으로 다운로드해서 설치하는 방식


저장소의 URL : "/etc/yum.repos.d/" 디렉터리


yum의 기본 사용법


설치 : yum install package_name  ( 주로 yum -y install package_name 으로 사용하게 되는데 "-y"는 사용자의 확인을 미리 모두 "yes"로 확인하고 설치를 진행하는 옵션이다 )


RPM 파일 설치 : yum localinstall filename.rpm ( /media/cdrom/Packages/ 경로에 이미 존재하는 rpm 파일을 가져다가 설치하는 로컬명령어이다)

( 덧붙이자면 localinstall 로 rpm 프로그램을 설치할 때 의존성 문제가 발생하는 부분은 웹을 통해서 자동으로 찾아서 설치해준다)

업데이트 가능 목록 확인 : yum check-update


업데이트 : yum update package_name


삭제 : yum remove package_name


정보 확인 : yum info package_name


패키지 그룹 설치 : yum groupinstall package_group_name


패키지 리스트 확인 : yum list package_name


패키지 설치 가능한 그룹 리스트 확인 : yum grouplist (hidden) : (hidden)을 추가로 입력하면 숨겨진 옵션도 확인가능


특정 파일이 속한 패키지 이름 확인 : yum provides filename


GPG 키 검새 생략 : yum install --nogpgcheck filename.rpm (CentOS 19에서 검증되지 않은 패키지를 강제로 설치할 때 사용)


기존 저장소 목록 지우기 : yum clean all


yum 작동 방식 설정 파일 ( yum install package_name 명령이 작동하는 방식 )


(출처 : http://cafe.naver.com/thisislinux)


CentOS 7 패키지 저장소는 CentOS 웹서버 상에 패키지를 저장하는 공간입니다. CentOS에 소속되어 CentOS의 모든 패키지가 저장되어 있는 곳이죠. CentOS 저장소에는 원본패키지, 업데이트패키지, 추가패키지가 존재하는데 원본패키지는 dvd에 mount 시킨 rpm설치파일들이 동일하게 들어있습니다. 그리고 이후에 향상된 패키지를 업데이트 패키지에 넣어두고 기타 추가 패키지들을 추가 패키지에 보관합니다. 


그래서 처음 yum install 명령을 입력하면 yum은 자동으로 CentOS 웹서버에서 필요한 패키지 '목록'을 가져와 설치를 시작하게 되는데 이렇게 사용하려면 CentOS 웹 ftp 주소를 가지고 있어야만 가능합니다. 이 주소가 위에서 언급한 저장소 경로인 /etc/yum.repos.d/ 폴더에 들어있는 것입니다. 그래서 가장먼저 저장소 경로를 담고있는 폴더(대표적인 Centos-Base.repo)를 확인하고 폴더 내에 .repo 확장자를 가지고 있는 파일들로부터 경로(URL)를 받아옵니다. 목록을 가져오고 사용자가 yes 로 설치를 허용하면 설치가 완료된다. 이게 yum 명령의 작동 방식입니다.


yum 명령은 update 패키지를 가장 먼저 가져오게 됩니다. (최신이므로)


추가로 yum 작동 방식 설정 파일을 확인하면


(file) : /etc/yum.conf : 변경할 필요 없음

(directory) : /etc/yum.repos.d/ : yum명령을 입력했을 때 검색하게 되는 네트워크의 주소가 들어 있는 여러 개의 파일이 있습니다. 가장 처음 초기 설정                                         당시 업데이트 부분에 #주석처리 한 기억이 나시는 분도 계실 겁니다 ^.^

/etc/yum.repos.d/ 폴더의 *.repo 파일 중 CentOS-Base.repo 에서 [base], [extra] 부분을 남기고 [update] 부분에 #### 처리로 삭제한 것처럼 보이게 했었습니다.


yum 명령어는 인터넷이 연결된 상태에서만 사용할 수 있는데 그렇다면 인터넷이 연결되지 않은 상태로는 사용이 완전히 불가능하다고 들릴 수도 있겠습니다. 하지만 yum 작동방식에서 원본패키지는 우리가 사용하는 리눅스에 마운트 시킨 dvd에 있는 rpm설치 프로그램과 동일하다고 했던 바가 있습니다. 그렇다면 이러한 상황을 이용해서 yum 명령을 인터넷이 안되더라도 로컬폴더에서 가져와서 설치하도록 설정할 수 있을 겁니다. 


가장 먼저 


# umount /dev/cdrom 

# mount /dev/cdrom /media/cdrom 

# ls /media/cdrom (dvd 경로)

# cd /etc/yum.repos.d/

# mkdir backup

# mv *.repo backup/

# ls -l 

# touch dvd.repo

# vi dvd.repo

[dvd] 

name=CentOS DVD

baseurl=file:///media/cdrom

gpgcheck=0 (1은 gpgcheck를 하므로 추가경로를 입력해주어야 합니다.)

:wq

# ls -l

# cd

# yum install mysql-connector-odbc

# yum install mysql-connector-odbc unixODBC

(다운로드하는 척 하지만 실제로는 네트워크를 사용하지 않고 마운트된 dvd에서 가져와서 설치하는 것)

# yum -y install html2ps

없을 때가 있는데 dvd에 모든 패키지가 들어 있진 않습니다. 실제로 Centos 원본패키지에 더 많은 원본패키지들이 들어있고 그 중에서 가장 많이 사용하는 파일들을 dvd 파일로 만들어서 OS상에 넣어뒀기 때문입니다. 이런 상황이 생기면 옮겨둔 CentOS-Base.repo를 가져오면 되지만 dvd에 있는 건 가져오고 dvd에 없는 건 네트워크 상에서 가져올 수 있으면 더 빠르게 설치가 가능하므로 이렇게 설정을 해보도록 하겠습니다. 

# vi /etc/yum.repos.d/dev.repo

i

[network]

name=Network

baseurl=

http;//mirrors.kernel.org/centos/7/os/x86_64/

http://mirror.centos.org/centos/7/os/x86_64/

gpgcheck=0

:wq

# yum clean all 

# yum -y remove mysql-connector-odbc unixODBC

# yum install mysql-connector-odbc  html2ps

y  ( 일부는 network에서 일부는 dvd 에서 가져와 설치하게 됩니다. )

--패키지그룹실습--

# yum grouplist

그룹 이름이 한글로 나오면 영문으로 바꿔서 설치하는 게 낫다. 

# chvt 2

# yum grouplist 

# yum clean all

# yum grouplist idden > glist.txt            :    yum으로 설치가능한 grouplist가 glist.txt 파일로 저장됩니다.

# chvt 1

# gedit glist.txt

# yum groupinstall "MariaDB Databse Server"  --> 띄어쓰기가 그룹명에 포함되어 있으므로 ""(double quotation)으로 묶어주어야 한다. 

# yum groupinstall "Java Platform"

# yum groupinstall "KDE Application"


이렇게 yum 작동방식과 dvd 활용, network 활용을 하는법 까지 익혀 보았습니다.

책을 보면 금새 이해가 가지만 사용하지 않으면 금새 까먹을 것 같은 부분을 정리해보았다. 


파일에 있어서 디렉터리의 소유권 확인 및 변경에 관한 부분이다. 



sample.txt 파일의 소유권을 확인해보자.


-rw-r--r-x. 2 root root 6 5월 27 17:24 sample.txt


맨 앞의 -는 파일유형

-rw-r--r-x. 는 파일허가권


- 일반파일

d 폴더(디렉터리)

l 링크파일(바로가기)


2는 링크수

root는 파일소유자이름

root는 파일소유그룹이름

6은 파일크기(byte)

5월 27 17:24 는 마지막 변경 날짜/시간

sample.txt 는 파일이름을 나타낸다. 


파일 허가권은 - 파일유형 뒤에 가장 먼저오는 "rw-", "r--", "r-x"로 3개씩 끊어서 읽을수 있다. (r은 read, w는 write, x는 execute)

첫번째 "rw-"는 소유자(user)의 파일접근 권한

두번째 "r--" 는 그룹(Group)의 파일접근 궎나

세번째 "r--"는 그 외 사용자(other)의 파일접근 권한을 나타낸다. 


숫자로도 나타낼 수 있는데 8진수로 표기한다. 


소유자(user)

그룹(group) 

그 외 사용자(other) 

4

 6


결국 해석하자면 소유자는 읽기, 쓰기 권한을

그룹은 읽기 권한

그 외 사용자는 읽기, 실행 권한을 가지고 있는 것이다. 


그래서 허가권은 변경이 가능한데 chmod 명령어를 통해 속성 변경이 가능하다. 


예를 들어 현재 645인 sample.txt의 접근권한을 변경하려면


# chmod 666 sample.txt 


라고 적으면 된다. 


그러면 해당 파일은 소유자의 권한과 동일한 권한을 그룹과 그 외 사용자가 갖게 된다. 



이렇게 변할 것이다. 


추가로 파일의 소유권(ownership)을 변경하려면 chown/chgrp 명령을 사용하면 된다. 소유한 사용자와 그룹을 변경할 수 있는 명령어이다. 


# chown centos.centos sample.txt 또는

# chown centos sample.txt 및 chgrp centos sample.txt 


로 표기하면 현재 root root 로 소유되어 있던 sample.txt 파일은 소유권이 centos 사용자에게 넘어가게 된다. 


# chown root.root sample.txt 


명령으로 한 번에 소유자와 그룹을 바꿀 수도 있다. 


자, 이제 연습을 해보자. 


vi 에디터를 활용해서 test 라는 파일을 생성한다. 


I를 눌러서 Insert mode를 활성화 시킨 후 다음과 같이 쓴다. 



esc > wq 로 저장 후 빠져나온 다음 


# ls -l  


명령으로 파일이 생성되었는지 확인해본다. 


다음과 같이 생성되었을 것이다. 



위에서 배운대로 허가권을 풀어보자면 일반파일, 소유자는 읽기, 쓰기가 가능하고 나머지는 읽기만 가능한 test 파일이 생성되었다. 


test 파일을 실행시키려고 test 라고 치면 실행되지 않는다


./test 라고 쳐야 되는데 왜냐하면 test라고 쳤을 때 /root의 경로가 지정되어 있지 않기 때문이다. 


그래서 ./ 를 입력해서 root 사용자 폴더의 경로를 지정한 후 폴더를 실행해야 한다. 



하지만 실행하려니까 허가가 거부가 된다. 


허가권을 풀어본대로 소유자에게는 실행 권한이 없기 때문이다. 


다음과 같이 실행권한을 부여하고 나면 실행이 된다. 



./test 를 입력하고 난 첫줄에 hello 에 대한 명령을 찾지 못했다는 말과 함께


입력해 두었던 ls /var 명령어는 실행되어서 /var 폴더의 리스트를 보여주었다. 



그렇다면 이번엔 소유권을 변경해보도록 하자. 


기존에 소유자와 그룹은 root root 로 설정되어 있었다. 


# chgrp centos centos test 


를 입력해서 centos 사용자에게 소유권을 주었다. 



연두색 글씨의 test 파일의 소유권을 확인하면 centos centos 로 바뀐 것이 보일 것이다. 


그래서 위의 캡쳐와 마찬가지로 centos 사용자로 접속해서 test 파일을 확인해보려고 su - centos 명령을 이용해서 centos 사용자로 로그인을 했다. 


그리고 whoami > centos

    pwd (현재경로) > /home/centos 

    ls -l /root/test 를 쳤건만 이게 웬걸 허가 거부를 당햇다. 당황스럽겠지만 허가가 거부된 데에는 이유가 있다. 앞선 test 파일의 허가권을 확인해보면 멀쩡하지만 우리는 현재 centos 사용자로 로그인되어 있어서 슈퍼유저인 root 의 폴더에 접근할 수 없기 때문이다. 



# ls -l / 


확인해보면 위와 같이 일반사용자는 root 폴더에 접근 권한이 없다. 그렇다면 root 폴더의 접근 권한을 바꾸느냐? 


root 폴더의 권한을 바꿀 수 없을 뿐더러 관리자의 폴더를 함부로 손대는 것도 바람직하지 않으므로 차라리 관리자에게 test 파일을 일반사용자 폴더로 넘겨달라고 요청하는 부분이 빠르다. 그러므로 다시 su 명령어를 이용해 root 사용자로 돌아간 다음 test 파일을 centos 사용자에게 넘기도록 하겠다. 


root 암호를 입력하면 root 사용자로 로그인되고 다음과 같이 test 파일을 


# mv test /home/centos 


센토스 홈 폴더로 옮겨준다. 


# mv test ~centos


경로를 모르는 경우 위의 명령대로 입력하면 자동으로 centos 사용자의 home 폴더로 들어간다. 


overwrite 덮어 쓸거냐고 물어보면 쿨하게 y 라고 입력하고 넘어가자.



# ls 


로 확인해보면 test 파일이 사라졌다. /root 에 속해 있던 test 파일을 아예 /home/centos 폴더로 옮겨버렸기 때문이다. 


반대로 centos 사용자는 소유주를 root 사용자로 변경할 수 없는데 이는 당연하다. 


일반 소유주가 관리자의 폴더에 악성코드를 삽입하고 소유주를 변경해버린다면 말도 안되는 일이기 때문이다. 


이와 별도로 symbolic 심볼릭으로도 허가권 변경이 가능하다. 


앞서 # chmond 666 test 로 test 파일에 실행권한을 제외한 모든 권한을 user, group, other 에게 부여하였다. 


# chmod o-x test 


owner 로부터 test 파일의 x(실행) 권한을 뺏는(-) 것이다. 


# chmod ugo-r test 


user, group, other 로부터 test 파일의 r(읽기) 권한을 뺏는(-) 것이다. 


반대로 


# chmod ugo +r test 


를 통해 빼앗았던 r(읽기) 권한을 다시 부여(+)할 수도 있다. 


chmod 는 기존의 권한을 몰라도 사용할 수 있다는 장점이 있다. 


마지막으로 링크에 대해 이야기 하고(왜이리 길어지냐...) 마무리 하겠다. 


파일의 링크(link)에는 하드링크(hard link)와 심볼릭 링크(symbolic link 또는 soft link 라고도 한다) 두 가지가 있다. 


소프트 링크는 windows에서 바로가기 아이콘의 개념과 비슷하다. 


하드링크를 생성하면 "하드링크파일"만 하나 생성되며 같은 inode1을 사용한다. 


# ln 링크대상파일이름 링크파일이름


심볼릭 링크를 생성하면 새로운 inode2를 만들고, 데이터는 원본파일을 연결하는 효과를 가진다. 


# ln -s 링크대상파일이름 링크파일이름


덧붙여 inode란 실제 데이터 파일의 정보를 나타내는 inode 구역에 저장되는 데이터인데 그냥 하나의 객체를 뜻한다고 생각하면 쉽다. 


inode1=inode1 but inode1≠inode2


다시말해 하드링크를 생성한 파일은 원본파일과 완전히 동일한 inode 정보를 가지게 되어 이 말인 즉슨 원본파일을 지워도 hard link 파일은 원본 파일의 데이터를 그대로 갖고 있기 때문에 실행이 된다는 말씀이다. 


하지만 바로가기라는 특성상 symbolic 링크가 더욱 일반적으로 쓰인다. (hard link는 무쓸모인가...)


# ls -il  or # ls -li    


파일리스트 맨 앞에 파일 색인번호를 표시한다. 이 명령어로 hardlink 파일과 softlink 파일의 색인번호를 원본파일과 비교할 수 있다.


링크 파일을 만들어서 테스트 해보시길 바라며 이만 마친다. 





+ Recent posts