CentOS
오픈소스 비즈니스 컨설팅
Red Hat의 오픈소스 배포판인 CentOS(The Community ENTerprise Operating System)를 정리한다.
- 홈페이지 : http://www.centos.org/
- 다운로드 : http://mirror.centos.org/centos/5/isos/
- 라이선스 : Free
- 플랫폼 :
목차 |
설치 가이드
CentOS 초기 설정
CentOS 사양 확인
- CentOS 버전 확인
- lsb_release -a
- cat /etc/issue
- CPU 갯수 : cat /proc/cpuinfo
- Memory 용량 : free -m
- Disk 용량 : df -k
- showinfo_centos.bash
#!/bin/bash
echo 'CentOS Ver. :' `cat /etc/issue | grep CentOS`, `uname -p`
echo 'CPU 개수 :' `cat /proc/cpuinfo | grep processor | wc -l` CPU
echo 'Memory (MB) :' `free -m | grep Mem | awk '{print $2}'` KB
echo 'Restart 명령 : shutdown -r now'
echo '방화벽 명령 : system-config-securitylevel'
CentOS 설치 후 설정
- 한글 설정
- /etc/sysconfig/i18n 파일에서 다음을 설정 한다.
LANG="ko_KR.UTF-8"
- 명령행에서 임시로 지정하는 방법
env | grep LANG LANG="ko_KR.UTF-8"
- 사용하는 터미널에서 "UTF-8"을 사용하도록 설정 한다.
- PuTTY의 경우 : Window -> Translation 메뉴에서 "Character set translation on received data"를 "UTF-8"로 설정 한다.
- 아래 명령을 사용하여 인터넷 접속 여부를 확인 한다.
ping -c3 google.com
- 서버 시간 설정
//echo "00 * * * * root /usr/bin/rdate -s time.bora.net" >> /etc/crontab
//cat /etc/crontab
crontab -e
00 * * * * root /usr/bin/rdate -s time.bora.net
crontab -l
- 기본 업데이트
- free -m : 메모리 확인
yum -y update kernel yum -y update kernel-PAE //--- 32 Bits 시스템에서 메모리가 4GB 이상일 경우
- 가장 빠른 미러 사이트를 연결하는 yum 플러그인 설치
yum -y install yum-fastestmirror
CentOS Upgrade
- Upgrade to CentOS 5.4 from 5.3
yum clean all yum update glibc* yum update yum* rpm* python* yum clean all // yum list updates //--- upgrade 대상 확인 yum update shutdown -r now #--- CentOS 버전 확인 lsb_release -a
CentOS Network 설정
VNC Server 설치
VNC (Virtual Network Computing)는 원격으로 Linux의 GUI 화면으로 접속할 수 있도록 한다.
- VNC Server 설치
#--- CentOS에 root로 로그인 한다. yum -y install vnc-server
- vi /etc/sysconfig/vncservers
VNCSERVERS="1:root" #--- 1번부터 5901 port를 사용 한다. VNCSERVERARGS[1]="-geometry 1152x864" #--- 추가 옵션 : -nolisten -nohttpd -localhost
- VNC Server 사용자 password 생성
cd mkdir .vnc cd .vnc vncpasswd #--- 여기서 암호를 입력 한다. service vncserver restart
- 방화벽에서 해당 사용자의 port를 오픈하여야 한다.
#--- /etc/sysconfig/vncservers에 등록된 1번부터 5901 port를 사용 한다.
- VNC Client에서 접속 시
VNC Viewer로 접속시 "IP:5901"로 접속 한다. TightVNC Viewer로 접속시 "IP:1"로 접속 한다.
- 처음 접속이 완료되면 xstartup 파일이 생성된다. 이를 수정하여 예쁜화면을 사용하자.
cd
cd .vnc
vi xstartup
### twm & #--- 이 라인을 주석 처리(삭제) 한다.
gnome-session & #--- 이 라인을 추가 한다.
service vncserver restart
- 설치 정보
- 설치 폴더 :
- 실행 파일 : /usr/bin/
- 환경 설정 : /etc/sysconfig/vncservers
- 기동 종료 : /etc/init.d/vncserver start, stop, restart
- 서비스 확인 :
- 참고 문헌
주요 SW 설치
암호 변경
passwd
CentOS용 프로그램
- 시스템 라이브러리 설치
yum -y install zlib curl yum -y install gcc g++ cpp gcc-c++ compat-gcc-34-g77 yum -y install libxml2 libxml2-devel yum -y install gd gd-devel yum -y install freetype freetype-devel yum -y install libpng libpng-devel yum -y install libjpeg libjpeg-devel yum -y install fontconfig fontconfig-devel yum -y install mhash mhash-devel yum -y install libmcrypt libmcrypt-devel yum -y install openssl openssl-devel yum -y install gmp gmp-devel yum -y install flex yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
- 필요한 경우 컴파일러를 설치 한다.
yum -y install gcc gcc-c++ termcap libtermcap libtermcap-devel gdbm-devel
vsftpd 설치
- vsftp 현황 확인
yum list | grep vsftpd #--- 설치 가능한 package 확인 yum list installed | grep vsftpd #--- 설치된 package 확인
- vsftpd 설치
yum -y install vsftpd rpm -qa | grep vsftpd #--- vsftpd 설치 확인
- 아래 설치 정보에 정리된 블랙 리스트에서 ftp를 사용할 사용자를 빼준다.
- vi /etc/vsftpd/ftpusers
- vi /etc/vsftpd/user_list
- 방화벽에서 20, 21 port를 개방 한다.
system-config-securitylevel
- FTP 클라이언트에서 접속이 디렉토리 목록이 표시되지 않을 경우
- FTP Client 설정에서 문자셋을 UTF-8로 강제로 설정하고 접속 한다.
- 설치 정보
- 실행 파일 : /usr/sbin/
- 환경 파일 : /etc/vsftpd/vsftpd.conf
- 블랙 리스트 : /etc/vsftpd/ftpusers, /etc/vsftpd/user_list
- 기동 종료 : /etc/init.d/vsftpd start, stop, restart, status
- 서비스 확인 : ps -ef | grep vsftpd | grep -v grep
- showinfo_vsftp.bash
#!/bin/bash echo 'vsftp 버전 : vsftp 2.0.5' echo '환경 파일 : vi /etc/vsftpd/vsftpd.conf' echo '블랙 리스트 : /etc/vsftpd/ftpusers, /etc/vsftpd/user_list' echo '기동 종료 : service vsftpd restart' echo '서비스 확인 : ps -ef | grep vsftpd | grep -v grep'
Java 설치
MySQL 설치
PostgreSQL 설치
Apache Http Server 설치
PHP 설치
Tomcat 설치
- Linux의 심볼 링크를 사용하여 Tomcat의 Root 폴더를 변경 하는 방법
ln -s /var/www/html /usr/share/tomcat5/webapps/ROOT
Apache ANT 설치
yum -y install ant
관리 SW 설치
sendmail을 통한 gmail 연동
DNS 서버 구축
- DNS Server 설치
yum install bind bind-utils bind-libs bind-chroot caching-nameserver
서버 IP (114.207.113.12)와 서버 URL (www.jopenbusiness.com)에 따른 DNS Server 설정 사례를 기술 한다.
cd /var/named/chroot/var/named/ cp localhost.zone jopenbusiness.com.zone chown named:named jopenbusiness.com.zone cp localhost.zone 113.207.114.zone chown named:named 113.207.114.zone
- vi /etc/named.rfc1912.zones
- 맨 아래에 다음을 추가 한다.
zone "jopenbusiness.com" IN {
type master;
file "jopenbusiness.com.zone";
allow-update { none; };
};
zone "113.207.114.in-addr.arpa" IN {
type master;
file "113.207.114.zone";
allow-update { none; };
};
- vi /var/named/chroot/var/named/jopenbusiness.com.zone
$TTL 86400
@ IN SOA ns.jopenbusiness.com. root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.jopenbusiness.com.
IN A 114.207.113.12
www IN A 114.207.113.12
- vi /var/named/chroot/var/named/113.207.114.zone
$TTL 86400
@ IN SOA ns.jopenbusiness.com. root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.jopenbusiness.com.
12 IN PTR jopenbusiness.com.
12 IN PTR www.jopenbusiness.com.
- DNS 설정 방법 (~.zone에서 사용)
- A : 도메인에 IP 할당
- MX : Mail Exchanger 설정
- CNAME : 도메인의 별칭에 IP 할당
- PTR : IP에 도메인 할당
- NS : Name Server
- DNS 설정 사례
IN NS ns.jopenbusiness.co
IN MX 10 mail.google.com. ;NS 아래, CNAME 위에 설정할 것
www IN A 114.207.113.12
mail IN CNAME ghs.google.com.
12 IN PTR jopenbusiness.com.
- vi /etc/named.caching-nameserver.conf
- "any;" 부분을 수정할 것
- query-source port 53; 의 주석을 푼다.
- query-source-v6 port 53; 의 주석을 푼다.
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { any; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
- vi /etc/resolv.conf에 다음 라인을 추가 한다.
nameserver 114.207.113.12
- 방화벽에서 TCP 53, UDP 53 포트를 열어 둔다.
- showinfo_name.bash
#!/bin/bash echo 'Name 버전 : caching-nameserver 9.3.6' echo '설치 폴더 : /var/named/' echo '환경 파일' echo ' vi /var/named/chroot/var/named/jopenbusiness.com.zone' echo ' vi /var/named/chroot/var/named/113.207.114.zone' echo ' vi /etc/named.caching-nameserver.conf' echo '환경 폴더 : /var/named/chroot/var/named/' echo '기동 종료 : service named restart' echo '서비스 확인 : ps -ef | grep named | grep -v grep'
- 도메인을 구입한 업체에서 도메인에 해당 하는 네임서버를 등록 하여야 한다.
- 사용하실 네임서버는 호스트 등록이 되어 있고 실제로 존재해야만 합니다.
- 네임서버 변경이 완료 된 후에 최대 2-3일의 갱신 시간이 필요합니다.
- 한글 도메인 등록 방법
;100 IN PTR 한글.kr. 100 IN PTR xn--bj0bj06e.kr. ; ← 한글 도메인을 Punycode로 변환 후 설정
- nslookup으로 DNS 설정 확인 방법
nslookup
//--- A,ANY,CNAME,HINFO,MX,NS,PTR,SOA,TXT 등
set type=A
www.jopenbusiness.com
set type=MX
jopenbusiness.com
- 참고 문헌
Subversion 구축
- Subversion 설치
yum install subversion
- Subversion용 사용자 생성
useradd -d /home/svn -m -g apache svn
- Subversion 저장소(repo_sample) 생성
- /home/svnserve/repo_sample 저장소를 생성 한다.
mkdir /home/svnserve
cd /home/svnserve
svnadmin create --fs-type fsfs repo_sample
vi /home/svnserve/repo_sample/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
realm = Sample Repository
- Subversion 접속 권한 설정
vi /home/svnserve/repo_sample/passwd
[user]
아이디 = 암호
- Subversion 시작 및 데몬 확인
svnserve -d -r /home/svnserve ps -ef | grep svnserve
- Subversion 사용을 위한 설정
cd /home/svn svn checkout svn://localhost/repo_sample repo_sample export SVN_EDITOR=/bin/vi #--- 주요 소스 코드를 저장하는 trunk 폴더 생성 svn mkdir svn://localhost/repo_sample/trunk :q! C svn mkdir svn://localhost/repo_sample/branches svn mkdir svn://localhost/repo_sample/tags svn list svn://localhost/repo_sample
- Subversion 사용 Port
3690/tcp
- 참고 문헌
Samba Server 구축
- Samba 설치
- CentOS 5.5에서는 Samba 3.0.33 이 설치됨
yum install samba samba-common samba-client
- vi /etc/samba/smb.conf
[global] workgroup = MYGROUP server string = Samba Server Version %v log file = /var/log/samba/%m.log security = share encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd dos charset = cp949 unix charset = UTF8 display charset = UTF8 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 [homes] comment = Home browseable = no writable = yes [public] comment = Public path = /home/public public = yes writable = yes
- Samba 재기동
service smb restart
- /etc/samba/smbusers : 삼바 사용자 파일
- /etc/samba/smbpasswd : 삼바 사용자 암호 파일
- 공유 폴더 생성
mkdir /home/public chmod 666 /home/public chown nobody:nobody /home/public
- Samba 사용자 추가
smbpasswd -a samba01 #--- 사용자 추가 smbpasswd -x samba01 #--- 사용자 삭제
- Windows에서 서버 접속
\\서버_IP
- Default 삼바 사용자
nobody:nobody
- 로그 파일
/var/log/samba/nmbd.log /var/log/samba/smbd.log
- PC의 공인 IP 확인 사이트
http://www.whatismyip.com/
- 참고 문헌
File System Mount
- Mount 상태 보기
mount
- Linux 파일 시스템 마운트
mkdir /mnt/linux mount -t ext2 /dev/sda1 /mnt/linux
- 원격 파일 시스템 마운트
mkdir /user mount -t nfs 172.18.38.398:/vol/CCHDATA01A/diska /user
- 윈도우 파일 시스템 마운트
mount -t cifs 윈도우_IP/diska /user/disk
- mount 해제
unmount /user
- 참고 문헌
NFS 설정
NFS를 사용하여 리모트에 있는 파일 시스템을 마운트 해보자. 증분 백업이 필요한 경우에는 rsync가 좋지만, 그외의 경우에는nfs가 편리하다.
NFS Server 설정
- NFS Server의 환경
- OS : CentOS 5.5
- IP : 203.231.11.100
- NFS 설치
yum install nfs-utils nfs-utils-lib #--- Booting시 nfs 자동 실행 설정 chkconfig --level 3 nfs on chkconfig --level 3 portmap on service nfs restart
- NFS 사용자 등록
- NFS의 경우 Server와 Client간의 사용자/그룹 번호가 자동으로 매핑되므로 보안에 주의 하여야 한다. 단, 0번의 경우에는 65534로 연결이 된다.
#--- 사용하고자 하는 번호를 이미 사용하고 있는지 확인 (여기서는 60001번을 사용) vi /etc/passwd /etc/group groupadd -g 60001 nfsgroup useradd -u 60001 -d /home/nfsuser -m -g nfsgroup nfsuser
- NFS를 사용하여 disk 공유
mkdir /nfsdisk
chown nfsuser:nfsgroup /nfsdisk
chmod 755 /nfsdisk
vi /etc/exports
/nfsdisk 203.231.11.201(rw,sync,no_subtree_check,all_squash)
exportfs -a
exportfs -v
- /etc/exports에서 사용 가능한 옵션
rw : 일기/쓰기 ro : 읽기 secure : Mount시 1024 이하의 포트 사용 noaccess : 접속 거부 root_squach : root 권한 획득 차단 no_root_squash : Client root가 Server의 root로 연동 sync : 파일 시스템이 변경 즉시 동기화 all_squach : 서버와 클라이언트를 동일한 권한으로 설정 (root를 제외) no_all_squach : 서버와 클라이언트가 하나의 권한을 가짐 (root를 제외)
- 방화벽 설정을 위해 사용 port 변경
- NFS는 portmap (111 port)와 rpc.nfs (2049 port)를 제외하고 나머지 port는 동적으로 설정됨
- 방화벽 설정을 위해서 사용 포트를 다음과 같이 고정 한다
111/tcp 111/udp portmap 2049/tcp 2049/udp rpc.nfs 4000/tcp 4000/udp rpc.statd 4001/tcp 4001/udp rpc.lockd 4002/tcp 4002/udp rpc.mountd 4003/tcp 4003/udp rpc.rquota
- vi /etc/init.d/nfslock
STATD_PORT=4000 #--- 추가 export STATD_PORT #--- 추가 [ -n "$STATD_PORT" ] && STATDARG="$STATDARG -p $STATD_PORT" service nfslock restart
- vi /etc/sysconfig/nfs 다음을 추가
LOCKD_TCPPORT=4001 LOCKD_UDPPORT=4001 MOUNTD_PORT=4002 service nfs restart
- vi /etc/services에서 4003에 해당하는 것을 아래와 같이 수정
rquotad 4003/tcp # rpc.rquotad tcp port rquotad 4003/udp # rpc.rquotad udp port service nfs restart
- 사용 Port 확인
rpcinfo -p
- 방화벽 설정
system-config-securitylevel
111/tcp 111/udp 2049/tcp 2049/udp 4000/tcp 4000/udp 4001/tcp 4001/udp 4002/tcp 4002/udp 4003/tcp 4003/udp
NFS Client 설정
- NFS Client의 환경
- OS : CentOS 5.5
- IP : 203.231.11.201
- NFS 사용자 등록
- NFS의 경우 Server와 Client간의 사용자/그룹 번호가 자동으로 매핑되므로 보안에 주의 하여야 한다. 단, 0번의 경우에는 65534로 연결이 된다.
#--- 사용하고자 하는 번호를 이미 사용하고 있는지 확인 (여기서는 60001번을 사용) vi /etc/passwd /etc/group groupadd -g 60001 nfsgroup useradd -u 60001 -d /home/nfsuser -m -g nfsgroup nfsuser
- 파일 시스템 마운트
mkdir /client/nfsdisk mount 203.231.11.100:/nfsdisk /client/nfsdisk
- 참고 문헌
rsync 설정
CentOS에서 rsync는 하나의 서버로부터 다른 서버로 일방적으로 파일을 동기화하는 명령 이다. rsync는 inetd, rsync server, ssh 등을 이용하여 파일을 주고 받을 수 있다. 여기서는 보안적인 측면에서 ssh를 사용하여 rsync를 설정하는 방법을 알아 보자.
- rsync 설치
yum install rsync
- 대상 서버에 rsync 사용자 등록
- 보안을 위해서 rsync만을 위한 사용자와 그룹을 사용하여 rsync를 설정하자.
#--- 사용하고자 하는 번호를 이미 사용하고 있는지 확인 (여기서는 60001번을 사용) vi /etc/passwd /etc/group groupadd -g 60001 nfsgroup useradd -u 60001 -d /home/nfsuser -m -g nfsgroup nfsuser
- ssh를 사용한 rsync 명령 2가지
rsync -ave ssh 원본_폴더 사용자@대상_서버_IP:타겟_폴더
예) rsync -ave ssh /rsyncDisk nfsuser@203.231.11.201:/targetDisk
/targetDisk/rsyncDisk 폴더가 생성이 된다.
rsync -av --rsh='ssh -pSSH의_Port -l사용자' 원본_폴더 사용자@대상_서버_IP:타겟_폴더
예)rsync -av --rsh='ssh -p22 -lnfsuser' /rsyncDisk nfsuser@203.231.11.201:/targetDisk
- rsync 옵션
--delete : delete files that don't exist on sender (system) -v : Verbose (try -vv for more detailed information) -e "ssh options" : specify the ssh as remote shell -a : archive mode -r : recurse into directories -z : compress file data
ssh를 사용할 경우, ssh에서 사용자(nfsuser)에 대한 암호를 물어보므로 crontab 등에서 사용하기에 불편하다. expect를 사용하여 rsync를 자동화 하자.
- rsync 명령 자동화 스크립트
#!/usr/bin/expect spawn bash -c "여기에_rsync_명령어" expect -re "assword:" sleep 0.2 send "사용자_암호\r" interact
- 방화벽 설정
- ssh 사용시 22/tcp 사용함
- rsync server 사용시 873/tcp 사용함
사용자 가이드
CentOS 기본 명령
- CentOS 완전 종료
shutdown -h now
- CentOS 리부팅
shutdown -r now //--- reboot 명령을 사용하여도 됨
Redirection
- 표준 입력
<
- 표준 출력
>, >>
- 표준 에러
2> //--- bash >& //--- csh 2>&1 //--- 표준 에러를 표준 출력으로 변경
- tee 명령
- 화면에 표시하는 동시에 파일에도 저장
~ | tee filename
SSH 접속 방법
yum 사용법
- 관련 폴더
/etc/yum.conf /etc/yum.repos.d/ /etc/yum/
- 설치 가능한 package 목록 보기
yum list [all] yum grouplist #--- package 그룹 보기 yum search php
- package 설치 및 삭제
yum install httpd #--- 설치 yum install httpd.i386 #--- 아키텍처를 지정하여 설치 yum update httpd #--- 업데이트 yum remove httpd #--- 삭제 yum groupinstall "그룹명" #--- package 그룹 설치 yum groupupdate "그룹명" #--- package 그룹 업데이트 yum groupremove "그룹명" #--- package 그룹 삭제
- 설치된 package 목록 보기
yum list installed [httpd]
- 업데이트할 package 목록 보기 및 업데이트
yum list updates #--- 목록 보기 yum update -y #--- 업데이트
The program package-cleanup is found in the yum-utils package
- 오류 메시지
The program package-cleanup is found in the yum-utils package
- 조치 사항
yum -y erase bind-chroot yum -y install bind yum -y update
The program yum-complete-transaction is found in the yum-utils package
- 첫번째 방법
yum clean all yum -y update
- 두번째 방법
yum install yum-utils yum-complete-transaction
RPM 사용법
Redhat Package Manager로 레드헷에서 만든 패키지 관리자 이다.
- RPM 파일명 구조
패키지이름-버전-릴리즈번호.소스여부.시스템.확장자
- RPM 명령어
- rpmfind에서 PRM 패키지(~.rpm)를 찾을 수 있다.
rpm -Uvh gcc-2.96-98.i386.rpm #--- 패키지 설치 rpm -Uvh ftp://ftp.rpmserver.com/gcc-2.96-98.i386.rpm #--- 네트워크로 패키지 설치 rpm -e gcc-2.96-98.i386 #--- 패키지 제거 rpm -qa | grep httpd #--- 패키지 조회 rpm -qi ~.rpm #--- 패키지 상세 정보 조회 rpm -ql gcc-2.96-98.i386 #--- 패키지 설치 경로 조회
- RPM 옵션
-i :기본 설치. 이전 버전이 존재하면 설치하지 않음 -U : 이전 버전이 설치되어 있으면 업그레이드. (-i 보다 권장) -F : 이전 버전이 설치되어 있는 경우에만 설치 -v : 설치 메시지를 보여 줌 -h : 진행과정을 '#'으로 표시 -e : 패키지를 제거 -q : 패키지가 설치되어 있는 지 확인 -qa : 현재 설치된 모든 패키지 목록을 출력 -qi : 현재 설치된 패키지의 간략한 정보를 출력 -ql : 현재 설치된 패키지의 내용(위치)을 출력 -Vf : 현재 설치된 파일의 검증. 문제가 없으면 '.'으로 표시 -Va : 한 패키지만 검증 --force : 충돌 등을 무시하고 무조건 설치 --nodeps : 의존성 문제를 무시하고 설치
관리자 가이드
방화벽 설정
CentOS는 디폴트로 iptables를 방화벽으로 사용 한다.
- 특정 IP의 서버 접근 차단 방법
iptables -A INPUT -s 61.247.209.81 -j DROP iptables -A INPUT -s 61.247.209.0/24 -j DROP
- 방화벽 설정 명령어
setup system-config-securitylevel
부팅시 자동 실행 설정
- named 서비스를 자동 실행 설정
chkconfig --level 5 named on chkconfig named on chkconfig --list | grep named
- ntsysv 명령어를 실행하여 자동 실행할 데몬을 선택할 수도 있다.
KVM
- 참고 문헌
- [A Quick Guide to Using KVM with CentOS-5 http://wiki.centos.org/HowTos/KVM, 2009.10]
VirtualBox 설치
RPM 제작
- RPM 제작을 위한 패키지 설치
yum -y install rpm-build rpm-devel yum -y install ~.rpm
- 설정 파일 : /etc/rpmrc, /usr/lib/rpm/rpmc
- RPM 소스 패키지(~.src.rpm) 다운로드
- rpmfind에서 원하는 RPM 소스 패키지를 다운로드 한다.
wget ftp://rpmfind.net/linux/fedora/development/source/SRPMS/~.src.rpm
- RPM 소스 패키지로 RPM 패키지(~.rpm) 만들기
rpmbuild --rebuild --target=i686 ~.src.rpm rpmbuild --rebuild ~.src.rpm #--- target은 생략 가능
- RPM 패키지 설치
rpm -Uvh ~.rpm
- RPM 소스 패키지 내용 보기
mkdir /usr/src/redhat rpm -ivh ~.src.rpm
- /usr/src/redhat/SOURCES : 소스와 패치 파일 저장
- /usr/src/redhat/SPECS : 스팩 파일 저장
- RPM 소스 패키지 다시 만들기
cd /usr/src/redhat/SPECS rpm -ba ~.spec
- /usr/src/redhat/SRPMS : RPM 소스 패키지가 생성됨
- /usr/src/redhat/RPMS : RPM 패키지가 생성됨
- /usr/src/redhat/ 폴더의 구조
- BUILD : rpm에 의해서 빌드가 이루어지는 디렉토리
- RPMS : 아키텍처별 RPM 패키지 저장
- 아키텍처별로 athlon, geode, i386, i486, i586, i686, noarch 하위 폴더가 있음
- SOURCES : RPM 소스 저장
- SPECS : RPM Spec 저장
- SRPMS : SRPM 저장
- 참고 문헌
시스템 모니터링
- vmstat : 메모리 모니터링
- iostat : 입출력 모니터링
- free : 메모리 모니터링
- top : Process 모니터링
- uptime : 시스템 평균 부하율
- sar : sysstat package install 필요
- ls -alF /proc/*info
- CPU 모니터링 도구
- top, vmstat, ps aux, mpstat -P all, sar -u, iostat, oprofile, gnome-system-monitor, KDE-monitor, /proc
- Memory 모니터링 도구
- top, vmstat -s, ps aur, ipcs, sar -r -B -W, free, opeofile, gnome-system-monitor, KDE-monitor, /proc
시스템 튜닝
- vi /etc/sysctl.conf
- Memory Turning
/proc/sys/vm/*
- Kernel Turning
/proc/sys/kernel/*
- Filesystems Turning
/proc/sys/fs/*