Live usb creator, 리눅스 설치 usb 만들기

두 가지 버전이 있다. 다른 사람이 만든거...
http://www.linuxliveusb.com
https://fedorahosted.org/liveusb-creator/
여기서 언제나 최신버전을 받을 수 있다.

사용방법은 그냥 보면 알 수 있다.

일단 만들고싶은 usb 배포판을 선택하고...
우분투, 페도라, centos....
usb을 준비한다.
usb용량이 부족하면 net install 이미지를 다운받는것도 좋다.

리눅스는 torrentz를 사용해서 다운로드 받는게 일반적이고...
ftp://ftp.sayclub.com이나 ftp://ftp.daum.net/ 를 통해서 다운받을 수 있다.

넷인스톨에서 네트워크 주소를 sayclub같은데로 해놓으면 꽤 빠르게 설치된다.
(고마운 회사니까.. ppl광고 한줄...
: 원조교제는 세이클럽에서~)
 
설치 옵션은.... 그냥 gui환경을 깔끔하게 지원해주니 따라하면된다.
파티션은.. 개인용으로 쓸거라면 엄청 잘 나눌 필요는 없는 것 같다. 대강...
/
swap
정도로 잡으면 된다. 아니면 그냥 자동옵션으로 따라가던가....

live usb creator 우분투, 페도라, 센트os까지는 해봤는데.. 다른건 안해봤다.
아마 다 지원될듯...

그리고.... usb가 지원이 안되는 경우에는 다른 프로그램으로 하면 되는 경우도 있다

APM설치 방법

http://linuxex.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%84%9C%EB%B2%84%EC%9A%A9-%ED%95%84%EC%88%98%EC%84%A4%EC%B9%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8
클릭
위에것들을 먼저 한 다음에

apm이 리눅스 기본 설치할 때 다 설치가 되긴 하는데 작동이 잘 안된다.
뭐 어떻게 하는건지 더 어렵다. 그래서 수동으로 설치하는게 더 편하다.

rpm -qa httpd php mysql
깔려있는것을 확인하고

yum remove -y httpd php mysql
지운다.

그리고 수동으로 다시 깔기 위해 다운로드
cd /usr/local/src
mkdir apm
cd apm

www.apache.org ( httpd라고 된거 안정화 버전 다운로드 )
www.mysql.net ( 무료안정화버전 다운로드 )
www.php.net ( 안정화 버전 다운로드 )

wget 명령으로 다운로드
ls -al로 파일명을 확인 후
tar -zxvf 압축풀기

pwd
cd /usr/local/src/(mysql 압축푼폴더)

useradd -M -s /bin/false mysql (mysql 실행할 계정 생성)

./configure --prefix=/usr/local/server/mysql --with-charset=utf8 --with-extra-charsets=all (./configure \를 써넣으면 분할입력 가능, ./configure --help 가능 )

termcap 라이브러리 없다고 컴파일이 안됨..
configure: error: No curses/termcap library found
망할 rpm -qa로 검색하면 깔려있다.
termcap , libtermcap, libtermcap-devel
이 세개가 깔려있어야된다. 나는 세번째가 안 깔려있었다. centos 5.4
yum install libtermcap-devel ( 설치 )

make && make install (make와 make install 실행)

환경설정 시작
cp support-files/my-huge.cnf /etc/my.cnf (my-small, my-medium, my-large, my-huge 중에 메모리에 따라 선택 64m, 64~256m, 512m, 1g~)

db생성 및 디렉토리 권한

cd /usr/local/server/mysql (설치경로)
chown -R mysql .
chgrp -R mysql .
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var

cd /usr/local/server/mysql (설치경로)
(안되면 ./bin/mysql_install_db)
groupadd mysql
useradd -g mysql mysql
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/data
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
cd /usr/local/mysql
./bin/mysqld_safe --user=root &

ps -ef | grep mysql (mysql설치를 확인)

vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/server/mysql/bin (으로 수정)

source ~/.bash_profile (변경한 환경변수 재시작 전에 바로 적용)

cp share/mysql/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list | grep mysqld

mysql 실행 접속
/etc/init.d/mysqld start
mysql
   exit
mysqladmin -u root password (암호)
mysql (에러남.. 거부)
mysql -u root -p (암호 입력)

APACHE설치
cd httpd폴더
./configure \
--prefix=/usr/local/server/apache \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite (\는 줄바꿔서 치게 도와줌 ./configure --prefix=/usr/local/server/apache --enable-mods-shared=all --enable-so --enable-rewrite )

make && make install
pwd (현재폴더확인 httpd 압축파일 폴더)
cp /usr/local/server/apache/bin/apachectl /etc/init.d/httpd

chkconfig --add httpd ( 자동실행 등록 안되면 밑에거 따라감)

vi /etc/init.d/httpd
2째줄부터 등록
#chkconfig: 2345 90 90
#description: init file for Apache server daemon
#processname: /usr/local/server/apache/bin/apachectl
#config: /usr/local/server/apache/conf/httpd.conf
#pidfile: /usr/local/server/apache/logs/httpd.pid

chkconfig --add httpd
chkconfig --list | grep httpd

vi /usr/local/server/apache/conf/httpd.conf
<IfModule !mpm_netware_module>
User nobody (nobody로 변경)
Group nobody
</IdModule>
ServerName 127.0.0.1(서버가 있으면 서버명)

/etc/init.d/httpd start

vi /etc/sysconfig/iptables (포트 개방 해 놨으면 넘어가면 됨)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCETP
/etc/init.d/iptables restart

PHP설치
(잘못쓴게 아니고 이게 다 옵션이다)
./configure \
--prefix=/usr/local/server/php \
--with-apxs2=/usr/local/server/apache/bin/apxs \
--with-mysql=/usr/local/server/mysql \
--with-config-file-path=/usr/local/server/apache/conf \
--disable-debug \
--enable-safe-mode \
--enable-track-vars \
--enable-sockets \
--with-mod_charset \
--with-charset=utf8 \
--with-xml \
--with-language=korean \
--enable-mailparse \
--enable-calender \
--enable-sysvsem=yes \
--enable-sysvshm=yes \
--enable-ftp \
--enable-magic-quotes \
--enable-gd-native-ttf \
--enable-url-includes \
--enable-trans-id \
--enable-illine-optimization \
--enable-bcmath \
--with-jpeg \
--with-png \
--with-zlib \
--with-jpeg-dir=/usr \
--with-png-dir=/usr/lib \
--with-freetype-dir=/usr \
--with-libxml-dir=/usr \
--enable-exif \
--with-gd \
--with-ttf \
--with-gettext \
--enable-sigchild \
--enable-mbstring

libxml2-config 인가 때문에 에러가 난다.
configure: error: xml2-config not found. Please check your libxml2 installation.
(xm12라고 검색하는 경우도 있겠지...xm12-config, xm12,xm12-devel)
이것들을 최신으로 설치
yum install libxmli libxml2 libxml-devel libxml2-devel
설치된건 업데이트도 되고 알아서 된다.

make && make install

설치폴더 /usr/local/sever/php
환경설정 /usr/local/server/apache/conf

cp php.ini-dist /usr/local/server/apache/conf/php.ini

vi /usr/local/server/apache/conf/httpd.conf

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>
<IfModule mime_module>
   AddType application/x-httpd-php .php
   AddType application/x-httpd-php-source .phps
</IfModule>

/etc/init.d/httpd restart

chcon -t texrel_shlib_t
/usr/local/server/apache/modules/libphp5.so

php의 정보를 보여주는 함수
vi /usr/local/server/apache/htdocs/phpinfo.php
<? phpinfo(); ?>
   ecs :wq

웹페이지로 사용할 때 설정파일을 손봐서 htdocs폴더를 이동하면 된다.

vi /usr/local/server/apache/conf/httpd.conf

extra/httpd-userdir.conf (일반 사용자 홈디렉토리 설정)
extra/httpd-vhosts.conf (여러개 계정 쓸때)

<VirtualHost 000.000.000.000:80> (도메인이 아닌 ip를 쓰는칸)
   ServerName first.naver.com
   DocumentRoot /usr/local/server/apache/htdocs
</VirtualHost>
<VirtuallHost 000.000.000.111:80>
   ServerName second.naver.com
   DocumentRoot /home/second/public_html
</VirtualHost>

이외에는 보면 알기 쉽게 돼 있다 패스

리눅스 서버용 필수설치 프로그램

소스로 설치하는 경우에 gcc가 꼭 필요하다.
gcc는 컴파일러... 윈도우처럼 os가 윈xp,윈98,윈2000,처럼 별로 많지가 않으면 간단하게 설치파일만 배포해도 되겠지만 리눅스는 os종류가 너무 많아서 그게 안된다. 그래서 소스코드를 배포하는 경우가 많기 때문에 컴파일러가 필요하다.

rpm -qa gcc* cpp* compat-gcc* flex
gcc와 cpp...등이 깔려있나 확인하는 명령
거의 안 깔려있다.

잘 모르겠으면 일단 밑에거 입력... 이미 깔려있으면 안깔리고 넘어간다.
yum -y  install gcc cpp gcc-c++ compat-gcc-32-g77 flex

compat-gcc는 없다고 나온다. khlug서버에서 지원이 안된다. 다른데서 지원이 되서 이제는 필요없어진건가..? 큰 문제는 없으니 패스? 다운받아서 깔 수는 있다.

서버로 홈페이지를 운영할거라면 필요한 라이브러리들

libpng http://www.libpng.org
png(portable network graphics)파일 지원

freetype http://www.freetype.org
폰트엔진

jpeg http://www.ijg.org
jpeg지원..

gd http://www.libgd.org
동적이미지 생성

rpm으로 설치
rpm -qa libjpeg* libpng* freetype* gd-*
안깔려있으면

yum install libjpeg-devel libpng-devel freetype-devel gd-devel

y몇번 눌러주면 된다. 최신판을 소스로 설치할수도 있지만.. 이게 더 편하다.

리눅스에 ftp 설치

http://www.proftpd.org
많이 쓰이는 ftp 서버 프로그램

ftp설치는 리눅스 서버 설치가 완료된 후에 한다.
리눅스 서버에 할당할 남는 모니터나 키보드가 있다면 모르지만...
서버에 그런거까지 달면 아까우니까 서버 셋팅이 끝나면 분리하고 윈도우에서 작업하는게 좋다. 일단 리눅스 gui또는 다른데서 포트부터 개방한다.
gui는 설정 - 네트워크 방화벽인가?에 보면 ftp,http,ssh,등등이 있다. ftp,http,ssh는 개방하고 나머지는 필요하면 개방한다.

putty를 다운받아서 putty로 리눅스 접속
(서버환경이 한글이면 putty한글 설정이 필요하다.
'translation' or '변환' 부분으로 가서 문자셋 설정을 UTF-8로 하면 putty 내에서 vi에서 한글을 사용 - 자세한것은 검색 - utf8)

mkdir /usr/local/src/ftpd
cd /usr/local/src/ftpd
wget (proftpd에서 링크를 따서 putty에 붙여넣기한다)
ls -al (ls의 부가명령어 a와 l을 같이 사용)
tar -zxvf 파일명 (zxvf가 뭔지는 까먹었다. 그냥 네개 다 써버리면 편하다)
mkdir /usr/local/server (설치 디렉토리생성... 원하는경로를 만들면된다)
mkdir /usr/local/server/proftpd
cd /(압축푼폴더명...모른다면 ls로 보고 들어간다)
./configure --prefix=/usr/local/server/proftpd --enable-autoshadow --enable-shadow
(gcc컴파일러가 설치되어 있지 않으면 에러난다. 리눅스 깔고 처음 할일 검색)
make
make install
vi /usr/local/server/proftpd/etc/proftpd.conf ( 환경설정 파일 수정 - nogroup를 nobody로 수정)

서버 부팅시 자동실행 하게 해놓기
cd /usr/local/src/ftpd/ (ftp 압축파일 푼 디렉토리) / contrib/dist/rpm
vi proftpd.init.d
 (PATH="$PATH:/usr/local/sbin"이라고 돼 있는것을 실제 설치경로 /usr/local/server/proftpd/sbin으로 변경   esc누르고   :wq)
cp proftpd.init.d /etc/rc.d/init.d/proftpd
chmod 755 /etc/rc.d/init.d/proftpd
chkconfig --add proftpd
chkconfig --list|grep proftpd (3,4,5에 활성 이라고 써 있으면 된다.. |와 grep는 문자열 중복 검색명령어?라고 해야되나... 그런거다. grep와 chkconfig는 모르면 검색.. 1.2.3.4.5.6.은 리눅스 런레벨로 검색)

chkconfig --level 35 proftpd on (활성화 되지 않은 경우)

명령어 개념, 리스트

man -h


manual을 -help해달라는 명령어


이런식으로 명령어 뒤에 -h만 치면 다 나온다.(영어로)


일단 중요 명령어만 알면된다. 필요하다면 도스 형식으로 바꿀 수도 있다.

일단은 검색용 리스트

alias(명령어 간소화하기)
apropos(관련된 명령어 찾기)
arch(컴퓨터 종류 알기)
arp(같은 서브넷의 IP 보여주기)
at(작업 시간 정하기)
atd(계획성 있는 작업 실행하기)
awk(특정 패턴 문자 처리하기)
a2p(펄 파일로 바꾸기)
badblocks(배드 블럭 검사하기)
bc(계산기)
biff(메일 수신 소리로 확인하기)
bg(후면작업; 배경화면 설정)
bind(키나 함수 순서 결합하기)
break(루프 빠져나가기)
cal(달력보기)
builtin(내부 명령어 알아보기)
case(조건 처리하기)
cat(화면상에서 파일 보기)
cd(디렉토리 변경하기)
cfdisk(디스크 설정하기)
chattr(파일 속성 변경하기)
chfn(사용자 정보 변경하기)
chgrp(파일, 디렉토리가 속했던 그룹 바꾸기)
chmod(파일 권한 바꾸기)
chown(파일 주인 바꾸기)
chsh(지정된 셸 바꾸기)
cksum(CRC값을 점검한다)
clear(화면 청소하기)
clock(CMOS 시각을 조정하기)
cmp(파일 비교하기)
colcrt(문자 변환 필터)
colrm(열 삭제하기)
column(가로 정렬하기)
comm(파일 비교 출력하기)
command(명령어 알아보기)
continue(루프 계속돌기)
cp(파일 복사하기)
cpio(복사본 만들기)
crontab(cron을 관리한다)
csplit(파일에 서식, 규칙 정하기)
cut(필요한 필드만 출력하기)
date(날짜 보기)
dd(블럭장치 읽고 쓰기)
debugfs(ext2 파일 시스템 디버깅하기)
declare(변수 선언하기)
df(파일 시스템의 사용량 보기)
dirs(디렉토리 목록 표시하기)
dmesg(부팅 메시지 보기)

(X윈도우 환경에서 printk 메세지를 기본으로 못보는데 dmesg를 통해서 확인할수 있다)
dnsdomainname(DNS 이름 출력)
domainname(NIS 이름 출력&설정)
du(디렉토리와 파일의 용량 파악하기)
dumpe2fs(파일 시스템 정보 보기)
echo(표준 출력하기)
eject(장치 해제하기)
elm(메일 관련)
enable(내부 명령어 지정)
env(환경변수 출력하기)
eval(인수 읽기)
exec(셸 명령어 실행하기)
exit(종료하기)
expand(탭을 공백으로 변환하기)
export(변수 지정하기)
e2fsck(파일 시스템 복구하기)
fc(지정된 편집기 받기)
fdformat(플로피 디스크 포맷하기)
fdisk(파티션 나누기)
fg(지정된 작업을 전면 프로세스로 시작하기)
file(파일 종류 보기)
find(파일 찾기)
finger(사용자 정보 알기)
fold(정형화하기)
fmt(정형화하기)
for(반복 실행하기)
free(메모리 사용량 알아보기)
fsck(파일 시스템 검사하기)
fstab(파일 시스템에 대한 고정적인 정보 저장하기)
ftp(파일 전송 프로그램)
fuser(프로세스 ID 출력)
getkeycodes(매핑 테이블 출력하기)
grep(특정 문자(열) 검색하기)
gzexe(실행 파일 압축하기)
gzip(압축하기)
halt(시스템 종료하기)
hash(기억해 두기; index 역할)
head(파일의 앞부분 출력하기)
help(도움말 보여주기)
host(호스트 정보 보기)
history(사용 명령어 목록보기)
hostname(서버 이름 알기)
id(계정 정보 알기)
if(조건문 실행하기)
ifconfig(랜카드에 주소 할당하기)
imolamod(모듈 설치하기)
inetd(인터넷 서비스의 최상위 데몬)
init(실행 단계 정하기)
ispell(철자법 검사하기)
jobs(수행중인 프로세스 알기)
kbd_mode(키보드 모드 출력하기)
kill(프로세스 죽이기)  강제종료 (kill -9  PID)
klogd(커널 로그 데몬)
ldd(공유 라이브러리의 의존성 알기)
less(페이지 단위로 출력하기)
let(정규식 표현하기)
lilo(부팅하기)
ln(링크하기)
locate(패턴에 맞는 파일 찾기)
login(로그인하기)
logger(시스템 로그 기록하기)
logname(사용자 로그인명 보여주기)
logout(로그인 셸 종료하기)
look(특정 단어 검색하기)
losetup(중복 장치 확인하기)
lpd(프린트 데몬)
lpq(현재 프린트 작업 상태 출력하기)
lpr(출력하기)
lprm(대기열에 있는 문서 삭제하기)
ls(디렉토리 내용보기)
lsattr(파일 시스템의 속성 보여주기)
lsdev(하드웨어 장치 출력하기)
lsmod(모듈 정보 출력하기) lnsmod(묘둘 올리기) rmmod (모듈 내리기)
mail(메일 관련)
make(컴파일하기)
man(매뉴얼 보기)
mattrib
mbadblocks
mcd
mcopy
mdel
mdeltree
mdir
mesg(메시지를 받을 수 있는지 확인하기)
mformat
minfo
mkdir (디렉토리 만들기)
mke2fs(파일 시스템 생성하기)
mkfs(파일 시스템 만들기)
mknod(특수 파일 만들기)
mkswap(스왑 영역 지정하기)
mlabel
mmd

mount
mmount
mmove
mpartition
mount(장치 연결하기)
more(화면 단위로 출력하기)  ls -al | more
mrd
mren
mtoolstest
mtype
mutt(메일 관련)
mv(파일 옮기기)
mzip
netstat(현재 네트웍 상황 보기)
nice(프로세스 우선 순위 변경하기)
od(8진수로 파일 보기)
passwd(암호 입력하기)
pidof(실행중인 프로그램의 프로세스 ID 찾기)
pine(메일 관련)
ping(네트웍 확인하기)
popd(pushd 취소)
ps(프로세스 상태 알기) ps -aux
pstree(프로세스 상관관계 알기)
pwd(절대경로 보여주기)
quota(디스크 한계량 알기)
rarp(rarp 테이블 관리하기)
rcp(원격 호스트에 파일 복사하기)
rdev(루트, 스왑장치, 램 크기, 비디오 모드를 조사하고 설정하기)
rdate(네트웍으로 시간 설정하기)
reboot(재부팅하기)
readonly(읽기 전용으로 표시하기)
renice(프로세스 우선 순위 바꾸기)
reset(터미널 초기화하기)
restore(다시 저장하기)
rlogin(바로 접속하기)
rm(파일 지우기)
rmdir (디렉토리 지우기) rm -rf
route(라우팅 테이블 추가/삭제하기)
rpm(프로그램 추가/삭제)
rpm2cpio(rpm을 cpio로 변환하기)
rsh(원격으로 명령어 실행하기)
rup(호스트 상태 출력하기)
rusers(호스트에 로그인한 사용자 출력하기)
rwall(호스트 사용자에게 메시지 뿌리기)
script(기록하기)
set(변수값 설정하기)
setup(시스템 관련 설정하기)
showmount(호스트의 마운트 정보 보여주기)
shutdown(전원 끄기)
sleep(잠시 쉬기)
source(스크립트 번역하기)
split(파일 나누기)
ssh(암호화된 원격 로그인하기)
stty(터미널라인 설정 보여주기)
su(계정 바꾸기)
suspend(셸 중단하기)
swapoff (스왑 해제하기)
swapon(스왑 활성화하기)
sync(버퍼 재설정하기)
syslogd(로그인 과정 설정하기)
tac(거꾸로 보기)
tail(문서 끝부분 출력하기)
talk(이야기하기)
tar(파일 묶기)
tcpdchk(tcp wrapper 설정하기)
tcpmatch(네트웍 요청에 대해 예측하기)
tee(표준 입력으로부터 표준 출력 만들기)
telnet(원격접속하기)
test(테스트하기)
times(셸에서의 사용자와 시스템 시간 출력하기)
top(cpu 프로세스 상황 보여주기)
tr(문자열 바꿔주기)
true(종료 코드 리턴하기)
type(유형 보기)
ul(밑줄 처리해서 보여주기)
ulimit(제한하기)
umask(매스크 모드 설정하기)
umount(장치 해제하기)
unalias(별명 제거하기)
uname(시스템 정보 보기)
unexpand(공백 문자를 탭으로 변환하기)
uniq(중복된 문장 찾기)
useradd(사용자 계정 만들기)
userdel(계정 삭제하기)
usermod(사용자 계정정보 수정하기)
unset(설정 변수 해제)
uptime(시스템 부하 평균 보여주기)
users(로그인된 사용자 보여주기)
w(시스템에 접속한 사용자 상황 알아보기)
wait(프로세스 기다리기)
wall(모든 사용자에게 메시지 보내기)
wc(문자, 단어, 라인수 세기)
whatis(명령어의 간단한 설명보기)
while(루프 명령어)
who(사용자 알기)
write(콘솔 상에서 간단한 메시지 보내기)
xcopy(반복적으로 복사하기)
XFree86
ypchfn(NIS에서 사용하는 chfn 명령어)
ypchsh(NIS에서 사용하는 chsh 명령어)
yppasswd(NIS에서 사용하는 passwd 명령어)
zcat(압축 파일 보기)
zcmp(압축 파일 비교하기)
zforce(강제로 gz 만들기)
zgrep(압축 상태에서 grep 실행하기)
zmore(압축 상태에서 more 실행하기)
znew(.Z 파일을 .gz로 다시 압축하기)

리눅스 커널

위키


http://ko.wikipedia.org/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EC%BB%A4%EB%84%90


리눅스 커널(Linux kernel)은 유닉스 계열 운영 체제의 커널이다. GNU 일반 공중 사용 허가서 버전 2 (GPLv2) 아래에서 공개되었으며 전세계적으로 배포자들이 개발한 리눅스는 가장 두드러진 자유 소프트웨어 / 오픈 소스의 본보기들 가운데 하나이다.


리눅스 커널은 1991년에 리누스 토르발스에 의해 생긴 말이다. 일찍이 미닉스 커뮤니티가 리눅스 커널에 코드와 개념을 제공하였다. 그 당시 GNU 프로젝트자유 소프트웨어 운영 체제에 필요한 요소를 많이 만들어 냈지만 자체 커널 GNU 허드는 완전하지 않았고 이용성이 없었다. BSD 운영 체제는 법적 문제로부터 헤어나오지 못했다. 이는 초기 버전의 제한된 기능에도 불구하고 리눅스가 새로운 운영체제를 사용하기 위한 프로젝트로부터 코드를 채용한 개발자들과 사용자들을 빠른 속도로 모았다는 것을 말해 준다. 오늘날 리눅스 커널은 수많은 프로그래머로부터 기여를 받고 있다.


www.kernel.org




2009.10.07 현재 리눅스 커널의 최신버전


2.6.31.2


rc가 붙는건 테스트 버전이다.


저 숫자의 정확한 의미는 모르겠다.