프로그램 , 커널 설치 및 업그레이드

Post on 20-Mar-2016

93 Views

Category:

Documents

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

프로그램 , 커널 설치 및 업그레이드. SPARCS 10 박준성 koolvibes. 그에 앞서. wget [ url ] 파일 다운로드 tar [ cxvzf ] 파일 압축 / 풀기. tar.gz 압축하기 tar cvf filename.tar file1… gzip filename.tar tar.gz 한번에 압축하기 tar cvzf filename.tar file1… tar.gz 압축풀기 gunzip filename.tar.gz tar xvf filename.tar - PowerPoint PPT Presentation

TRANSCRIPT

SPARCS 10

박준성

koolvibes

프로그램 , 커널설치 및 업그레이드

그에 앞서 ..

wget [url] 파일 다운로드tar [cxvzf] 파일 압축 / 풀기 tar.gz 압축하기

tar cvf filename.tar file1…gzip filename.tar

tar.gz 한번에 압축하기tar cvzf filename.tar file1…

tar.gz 압축풀기gunzip filename.tar.gztar xvf filename.tar

tar.gz 한번에 풀기tar xvzf filename.tar.gz

프로그램 설치프로그램을 이루는 정보들을 적재적소에 배치하는 과정

의존성 (dependency)

각 프로그램들은 의존성을 가진다 . shared library dependency

설치 시 이미 일부 라이브러리가 깔려 있어 깔리지 않거나 삭제 시 라이브러리가 삭제되어 다른 프로그램이 동작하지 않는 경우가 있다 .

프로그램의 설치와 삭제에서 생기는 수많은 문제들은 dependency 때문이므로 주의하도록 한다 .

ldd 를 사용하여 프로그램들의 dependency 관계를 알 수 있다 .

프로그램 설치하기소스 이용코드를 다운로드 하여 설치패키지 이용

redhat▪ RPM, yum, apt-get

debian▪ Dpkg, dselect, apt-get, aptitude

기타 패키지▪ pip, easy_install, rvm

소스 코드 이용1. 코드를 다운로드 한다 .( 보통 압축파일 )2. 압축을 푼다 .3. Configuration 을 한다 .4. Compile 을 한다 .5. 설치를 한다 .

소스 코드 이용Configure

make

make install

여러가지 설정Makefile 파일 설정Makefile 의 정보대로 실행 가능한 바이너리 생성

바이너리 파일들 시스템의적재적소에 비치

소스 코드 사용$ wget [URL]$ tar –zxvf [filename.tar.gz]$ ./configure설정 파일이 생김$ make생긴 설정 파일로 인스톨러 생성# make install만든 인스톨러 파일로 시스템에 설치

실습 – python 설치 소스 코드를 다운받아 Python 을 인스톨 해 보자 . http://www.python.org/download/

실습 – 프로그램의 위치 python, ls 등의 프로그램들이 어디에 깔려있는지 알아 보세요

패키지 사용 redhat▪ RPM, yum, apt-get

debian▪ Dpkg, dselect, apt-get, aptitude

기타 패키지▪ pip, easy_install, rvm

Redhat-RPM

커널을 포함한 라이브러리 , 응용프로그램이 모두 rpm 으로 제공 .

ex) foobar-1.0-1.i386.rpm

컴파일할 필요가 없음

Redhat-RPM

# rpm -q 패키지이름# rpm -Uvh 파일이름 .rpm

# rpm -ivh 파일이름 .rpm

# rpm –e 패키지이름# rpm –i ftp://[source] 좋은 참고 자료 : http://wiki.kldp.org/wiki.php/LinuxdocSgml/Rpm-Usage-KLDP

Redhat-yum

RPM 의 프론트 엔드 패키지 의존성 문제를 해결 list 기능 사용

Redhat-yum 패키지 찾기

# yum list available : 설치가 가능한 패키지 목록# yum list installed : 이미 설치된 list 패키지 목록# yum list extras : 일반 저장소에서 설치되지 않는 패키지 목록# yum list *gcc* : 'gcc' 타이틀이 있는 패키지 목록# yum list updates : 업데이트 가능한 패키지 목록# yum info wordpress : wordpress 패키지에 대한 설명# yum info gcc* : gcc 로 시작되는 패키지 설명# yum search gcc : gcc 문자열을 포함한 패키지의 검색

패키지 설치# yum install gcc :gcc 패키지 다운로드 인스톨# yum groundinstall gcc : gcc 데스크톱 패키지의 전체 세트를 다운로드 인스톨

Redhat-yum 패키지 업데이트

# yum check-update : 업데이트가 준비된 모든 패키지를 리스트한다 .# yum list update gcc* : gcc* 이름으로 이용 가능한 업데이트를 찾는다 .# yum update gcc* : 모든 gcc 패키지를 업데이트 한다 .# yum update 업데이트가 준비된 모든 패키지를 업데이트한다 .# yum groupupdate 파일명 그룹의 모든 패키지를 업데이트한다 .

패키지 제거하기# yum remove gcc : gcc 패키지를 제거한다 .# yum remove gcc* : gcc 로 시작되고 있는 패키지를 제거한다 .# yum groupremove gcc : gcc 그룹에서 모든 패키지를 제거한다 .

패키지 지우기# yum clean packages : cache 에서 패키지를 지운다 .# yum clean metadata : cache 에서 metadata를 지운다 .# yum clean headers : cache 에서 header를 지운다 .# yum clean all : cache 에서 metadata, header, package 를 지운다 .

Debian-dpkg

Debian Package Management System.

.deb 파일로 된 패키지로 설치 rpm 과 유사

Debian-dpkg

dpkg -i <file name.deb> deb 파일 설치

dpkg –r <file name.deb> remove 제거

dpkg -P <package name> purge

dpkg –l 설치된 패키지 리스트

Debian-dselect

dpkg 의 프론트엔드 dpkg 의 명령어들을 backend method 로 사용

dpkg 와 dselect 의 문제점 Dependency 를 알아서 고려해야 함 .

apt

Advanced Package Tool apt-get, apt-cache, apt-cdrom…

Handling “Dependency”▪ Can deal with complex package relation.

apt-get, apt-cache – package 설치 / 제거 패키지 찾기

#apt-cache search < 패키지 이름 > 패키지 설치

#apt-get install < 패키지 이름 > 패키지 재설치

#apt-get reinstall < 패키지 이름 > 패키지 제거

#apt-get remove < 패키지 이름 > #apt-get purge < 패키지 이름 >

참고 ) apt-get install 명령어로 받은 deb 파일의 저장 위치 /var/cache/apt/archive/ 위 폴더에 .deb 패키지 파일로 저장됩니다 . #apt-get clean

apt-get, apt-cache- package 관리 #apt-get update

패키지 인덱스 인덱스 정보를 업데이트 : apt-get 은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list 에 있다 . 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻는다 . #apt-get upgrade

설치된 패키지 업그레이드 :  설치되어 있는 패키지를 모두 새 버전으로 업그레이드 합니다 *apt 는 최신 패키지를 다운로드 하여 설치하게 되는데 upgrade 하기전에 update 해서 source.list 를 갱신 # apt-get dist-upgrade

의존성검사하며 설치하기 # apt-cache show < 패키지명 >

패키지 정보보기 apt 를 이용해서 설치된 deb 패키지는 /var/cache/apt/archive/  에 설치가 됩니다

실습 – sl 기차 # apt-get install wget

# apt-get install sl $sl /usr/games/ # apt-get remove sl $sl

apt-[etc]

#apt-cdrom add

#apt-config [ 옵션 ] (shell or dump)

apt 의 소스 /etc/apt/sources.list 에 있다 .

Debian-Aptitude

apt 의 프론트 엔드 – ncurses 기반

Debian-Aptitude

CLI 도 제공 .

Ex) #aptitude install <filename>

Python – easy-install python module bundled with setuptools that

lets you automatically download, build, in-stall, and manage Python packages

http://pypi.python.org/pypi/setuptools 에서 setuptools 를 설치 easy-install 사용 가능

support url source, .egg file

#easy_install SQLObject

http://peak.telecommunity.com/DevCenter/EasyInstall

Python – easy-install

python module automatically download, build, install,

and manage Python packages support url source, .egg file

#easy_install SQLObject

http://peak.telecommunity.com/DevCenter/EasyInstall

http://packages.python.org/distribute/easy_install.html

Python - pip

easy_install 을 향상시킨 버전 #pip install [pkgname] #pip uninstall [pkgname]

http://www.pip-installer.org

커널 업데이트Linux 의 진화를 따라가기

Kernel

컴퓨터 시스템을 제어하는 일 메모리를 관리하고 , 디스크에 데이터를 읽고 쓰고 , 프로그램을 실행시키고 , 하드웨어 장치를 관리하는 일 http://sharkynara.egloos.com/1102607

커널 설치 프로그램 소스로 설치와 유사

다운로드 -> 세팅 -> 빌드 -> 설치 -> grub 세팅 -> 재부팅 -> 동작 확인

루트 계정으로 설치 소스는 /usr/src 로

커널 설치 개발툴이 필요하다 . (ex : gcc)

#apt-get install gcc

$make menuconfig $make xconfig $make gconfig

커널 구하기Kernel.org 에 가면 있다 .

버전 형식 : Major.minor.patchlevel

2.6.35.13-> 커널 2.6 버전의 패치 레벨 35, 서브버전 13

커널 다운로드 $ wget

http://www.kernel.org/pub/linux/kernel/v2.6/linux-x.y.z.tar.bz2

# tar -xjvf linux-2.6.25.tar.bz2 -C /usr/src# cd /usr/src

커널 설정make config

      y: 기능사용       n: 사용안함       m: 모듈로 사용       ?: 도움말 표시

.config 파일 생성

커널 컴파일$ make

$ make module

# make modules_install

# make install

부팅 설정# cd /boot/grub# vi menu.lst

모듈 - 참고 동적으로 모듈 로딩 가능

insmod, rmmod 드라이버와 같은 것을 컴퓨터를 끄지 않고 로딩 가능 시스템 자원을 효율적으로 관리 가능

top related