리눅스에는 많은 배포판이 있는데, 그중 레드햇에서 오픈소스 프록젝트로 지원하고 있는 페도라(Fedora) 버전이 있다. 현재 안정 버전으로 15, 개발 버전으로 16 이 나와있는 상태이며 회사 개발서버로 Fedora 리눅스를 사용하고 있었다.
개발서버는 14버전으로 설치하여 사용하였는데, 15 버전에 MySQL이 5.5로 업데이트 되었다는 소식을 듣고 설치된 14버전을 15버전으로 업그레이드하였다. 15버전의 설치 미디어를 받아서 업그레이드하는 방법과 그냥 온라인으로 업그레이드 하는 2가지 방법이 있으며, 이번에 설명할 방법은 온라인으로 업그레이드 하는 방법에 대해 기술하고자 한다.

참고 사이트: http://fedoraproject.org/wiki/Upgrading_Fedora_using_yum

  • 이전 버전 설정파일 정리
    14버전을 사용하며 업데이트 생겨나 설정파일을 정리한다. rpmconf 유틸리티를 이용한다.
    # yum install rpmconf: rpmconf -a
    # find /etc /var -name '*.rpm?*'

  • 불필요한 패키지 정리
    불필요한 패키지를 정리하면 업그레이드할 때 다운로드를 받지 않으므로 조금이나마 시간을 절약할 수 있다.
    아래 두 명령어로 검색되는 패키지를 "yum remove"로 삭제해준다.
    # yum install yum-utils; package-cleanup --leaves
    # package-cleanup --orphans

  • 업그레이드
    15버전의 키를 설치한다.
    # rpm --import https://fedoraproject.org/static/069C8460.txt
    15버전으로 설치가 되었는지 확인한다. 위의 숫자값이 포함 패키지가 출력되면 설치 성공
    # rpm -q gpg-pubkey
    yum을 최신버전으로 업데이트한다.
    # yum update yum
    yum 관련 파일을 정리 후 업그레이드 실행
    # yum clean all
    # yum --releasever=15 --disableplugin=presto distro-sync

  • 업그레이드 확인
    저장소가 15로 변경되었는지 확인
    # yum repolist
    Base 그룹의 누락된 패키지가 있으면 설치한다.
    # yum groupupdate Base

  • 재부팅 준비
    grub 설정해준다. grub 부팅정보가 설정될 하드 디스크를 정해준다.
    # /sbin/grub-install /dev/sda
    # cd /etc/rc.d/init.d; for f in *; do /sbin/chkconfig $f resetpriorities; done
    # package-cleanup --orphans

  • 재부팅
    # reboot
    - Failed to talk to init daemon 라는 오류가 발생시 아래 명령어로 재부팅한다.
    # sync && reboot -f

  • 참고
    MySQL이 5.1에서 5.5로 업데이트 되면서 default-character-set 설정이 없어졌다.
    혹시 my.cnf에 default-character-set 설정이 있으면 MySQL이 실행되지 않으니 주석 처리하면 된다.

우분투를 설치하고 코분투의 패키지를 사용하기 위해서는 코분투의 저장소를 추가하여야 한다.
나눔고딕 등 한글글꼴을 설치하기 위해 추가했다.

# sudo add-apt-repository ppa:cobuntu

코분투 최신버전이 없는 경우 다음 파일을 수정한다.
/etc/apt/sources.list.d/cobuntu-ppa-maverick.list 또는 /etc/apt/sources.list.d/cobuntu-ppa-lucid.list
현재 우분투 최신버전은 10.10(maverick), 코분투 최신버전은 10.04(lucid)이다

코분투 저장소 URL: http://ppa.launchpad.net/cobuntu/ppa/ubuntu
컴파일을 위해 다운로드된 소스는 아래 위치에 저장된다.
하드 디스크가 부족하면 지워도 된다. 다시 컴파일해야 할 경우에는 다시 다운로드된다.

/usr/portage/distfiles
1. 새로운 커널 설치
# emerge -Dup world
# emerge -u gentoo-source

2. /usr/src/list 심볼릭 링크 업데이트
USE에 symlink를 설정하거나, eselect로 설정한다.
/etc/make.conf
USE="symlink ..."

# emerge eselect
# eselect kernel list
# eselect kernel set X

3. 커널 컴파일
bootloader 옵션은 커널 컴파일 후 부트로더를 자동으로 업데이트 한다.
# genkernel --bootloader=grub all

4. 외부 커널 모듈 재설치
sys-kernel/module-rebuild를 이용하여 새로운 커널을 위한 외부 커널 모듈을 재빌드한다.
# module-rebuild populate
# module-rebuild rebuild

5. 재부팅

6. 이전 버전 커널 소스 삭제
# emerge -P gentoo-sources


지난 번 올린 글에는 각 계정마다 .font.conf 파일을 만들어야 하는 불편이 있었다.
이번에는 시스템 폰트 설정을 수정하여, 각 계정마다 설정파일을 만들지 않아도 되도록 한다.
사용하고자 하는 폰트는 /usr/share/fonts/truetype/ 디렉터리에 복사한다.
저는 /usr/share/fonts/truetype/nanum/ 디렉터리에 복사했다. 또한 네이버에서 받은 압축파일을 풀면
폰트 파일명이  한글로 되어있는데, UTF-8 환경으로 사용하고 있는 시스템에서는 오류가 발생하여
영어로 파일명을 변경했다.

/etc/fonts/conf.d/ 디렉터리에 시스템 폰트 설정파일을 만들어 주면 된다.
설정파일을 내용은 10 ~ 22 픽셀에서 꺼져있는 antialias, autohint 옵션을 활성화하는 것이다.
필자는 59-ttf-nanum.conf 라는 파일명으로 생생했다.

<fontconfig>

<!-- Turn off antialias and autohint for Korean fonts depending on pixelsize -->
<match target="font">
        <test name="lang" compare="contains">
                <string>ko</string>
        </test>
        <test name="pixelsize" compare="more">
                <int>10</int>
        </test>
        <test name="pixelsize" compare="less">
                <int>22</int>
        </test>
        <edit name="antialias" mode="assign">
                <bool>true</bool>
        </edit>
        <edit name="autohint" mode="assign">
                <bool>true</bool>
        </edit>
        <edit name="hintstyle" mode="assign">
                <const>hintmedium</const>
        </edit>
</match>

<!-- Turn on antialias and hinting with hintmedium for Nanum fonts -->
<match target="font">
        <test name="family" compare="contains">
                <string>Nanum</string>
        </test>
        <edit name="antialias" mode="assign">
                <bool>true</bool>
        </edit>
        <edit name="hinting" mode="assign">
                <bool>true</bool>
        </edit>
        <edit name="hintsytle" mode="assign">
                <const>hintmedium</const>
        </edit>
</match>

</fontconfig>

위와 같이 하면 나눔고딕을 좀더 깨끗하게 사용할 수 있다.

아래는 serif와 sans font family에 나눔글꼴을 등록하는 방법이다.
serif에 나눔명조를, sans에 나눔고딕을 등록하였다.
수정해야 할 파일명은 69-language-selector-ko-kr.conf

<fontconfig>

<!-- Set preferred Korean fonts -->
        <match target="pattern">
                <test qual="any" name="family">
                        <string>serif</string>
                </test>
                <edit name="family" mode="prepend" binding="strong">
                        <string>NanumMyeongjo</string>
                        <string>UnBatang</string>
                </edit>
        </match>
        <match target="pattern">
                <test qual="any" name="family">
                        <string>sans-serif</string>
                </test>
                <edit name="family" mode="prepend" binding="strong">
                        <string>NanumGothic</string>
                        <string>UnDotum</string>
                        <string>Guseul</string>
                </edit>
        </match>

참고) 현재 필자는 터미널의 글꼴은 기본설치 설정의 monospace 대신 terminus 글꼴로 설정해 사용하고 있다.
설치방법은  apt-get install xfonts-terminus
Ubuntu가 기반으로 하고 있는 Debian을 설치해 보았다.
설치과정은 다른 리눅스 배포판을 설치해 본 사람이라면 무난히 설치할 수 있다.
헌데... VMWare의 VGA 드라이버 등이 기본적으로 없기 때문에 VMWare Tools를 설치해주어야 한다.
다음은 Debian 4.0 R6를 VMWare에 설치한 후 VMWare Tools를 설치한 로그이다.

  1. 커널 버전 알기
    # uname -a
  2. 컴파일 설치
    # apt-get gcc
  3. 커널 헤더 설치
    # apt-get install linux-headers-2.6.18-6-amd64
  4. VMWare Tools 설치(설치 과정시 물어보는 질문에는 기본값으로 그냥 엔터키만 쳐주면 된다.)
    # cd /usr/local/src
    # tar xzvf VMwareTools-7.8.4-126130.tar.gz
    # cd vmware-tools-distrib
    # ./vmware-install.pl
이후 재부팅을 하거나 startx를 실행하면 X Windows 볼 수 있다. ^^v
나눔고딕을 적용한 모습

네이버에서 한글날을 맞아 배포한 나눔고딕, 나눔명조를 Ubuntu 환경에서 사용해보려고 설치했는데, 안티알리아싱이 안 먹는지, 이쁘게 나오지 않아서 이리저리 설정을 뒤지다가 설정방법을 찾았다.
사용환경은 현재 사용하고 있는 버전 8.10이라 8.10에서 밖에 확인하지 못 했다. 다른 버전에서도 마찬가지일꺼라 예상한다.

Ubuntu 8.10에는 fontconfig 2.6.0이 설치되어 있는데 기본적으로 한국어는 10부터 22 pixel 까지에서는 antialias가 꺼지도록 되어있다. 이 부분만 수정하면 OK! 한글환경에서는 구버전 굴림글꼴때문에 antialias가 꺼지도록 되어있는가보다.

/etc/fonts/conf.d/29-language-selector-ko-kr.conf 파일을 보면, 아래와 같이 10 ~ 22 pixel에서 대해서는 antialias, autohint를 끄도록 설정되어 있다.
 <!-- Turn off antialias and autohint for Korean fonts depending on pixelsize -->
<match target="font">
        <test name="lang" compare="contains">
                <string>ko</string>
        </test>
        <test name="pixelsize" compare="more">
        <int>10</int>
    </test>
        <test name="pixelsize" compare="less">
        <int>22</int>
    </test>
        <edit name="antialias" mode="assign">
        <bool>false</bool>
    </edit>
        <edit name="autohint" mode="assign">
        <bool>false</bool>
    </edit>
        <edit name="hintstyle" mode="assign">
        <const>hintmedium</const>
    </edit>
</match>

위의 파일은 시스템 파일이므로 추후 업데이트 시 수정될 수도 있어서 홈디렉터리에 .fonts.conf을 만들 설정하는 것으로 해결했다.

자신의 홈디렉터리에 .fonts.conf 파일을 만들고 아래 내용을 입력한 후 저장한다. (antialias, autohint 부분 수정)
<match target="font">
        <test name="lang" compare="contains">
                <string>ko</string>
        </test>
        <test name="pixelsize" compare="more">
        <int>10</int>
    </test>
        <test name="pixelsize" compare="less">
        <int>22</int>
    </test>
        <edit name="antialias" mode="assign">
        <bool>true</bool>
    </edit>
        <edit name="autohint" mode="assign">
        <bool>true</bool>
    </edit>
        <edit name="hintstyle" mode="assign">
        <const>hintmedium</const>
    </edit>
</match>

위와 같이 파일을 만든 후 로그아웃하거나, 재부팅하면 뭉그러지지 않은 나눔글꼴을 볼 수 있다.

P.S. sudo로 루트권한으로 실행되는 어플리케이션의 경우는 root 계정의 설정을 따르기 때문에 /root 디렉터리에 .fonts.conf를 만들어주면 해결된다.
Synaptic을 사용할 수 없는 환경에서 커맨드로 업데이트를 처리했을때 설정이 남은 패키지를 깨끗이 제거하는 법을 몰랐는데, 아래 aptitude search를 이용해서 처리할 수 있다는 것을 알게되었다. 센티님께 감사! ^^

출처: http://fracktal.tistory.com/8

1. apt시스템

apt 시스템은 는 패키지의 의존성에 기반하여 많은 양의 패키지를 관리하는 패키지 관리 시스템이다.
이는 저장소를 기반으로 패키지를 가져와 설치하고, 제거하며, 의존성을 보존한다.
apt 기반의 패키지 관리자들은 /etc/apt/sources.list 파일로부터 저장소 목록을 읽어온다.
이 파일의 구성 형식은 sources.list(5) manpage에서 확인 가능하다.



2. 패키지 관리자

- 데비안/우분투 에서는 Command 기반, NCurse 기반, XWindow 기반으로 각각 도구가 갖추어져 있다.

(1) Command 기반 : apt도구, aptitude (인자와 같이 사용할 경우)
(2) NCurse 기반 : aptitude, deselect
(3) XWindow 기반 : Synaptics

-----------------------------------------------------------------------------------------------------

(1) apt 도구  : Console 에서 명령어로 실행할 수 있습니다.

apt-cache               : APT의 바이너리 캐시 파일을 처리하고, 캐시파일에 정보를 질의하는 저수준 도구
apt-cdrom               : CDROM을 APT의 저장소 리스트로 추가하는 도구.
apt-config               : APT 설정 파일을 읽는 간단한 프로그램
apt-extracttemplates : 데비안 꾸러미에서 설정및 템플릿 정보를 뽑아내는 도구
apt-get              : 패키지를 다운로드하고 인스톨하는 간단한 인터페이스. 대부분 사용하는
                               명령어는 update와 install 이다.
apt-key                   : apt-get의 인증키 리스트를 추가, 삭제, 업데이트, 리스트 할 수 있다.
apt- sortpkgs  : 패키지 파일을 정렬하는 간단한 도구

- apt-get Command
update                  : 패키지의 리스트를 새로 받는다.
upgrade                : 업그레이드
install                   : 설치
remove                 : 제거
purge                   : 완전 제거
source                 : 소스를 다운로드 받는다.
build-dep             : 패키지를 위한 빌드 의존성을 구성한다.
dist-upgrade         :  배포판 업그레이드
dselect-upgrade    : dselect로 선택한 항목을 업그레이드한다.
clean                    : 다운 받았던 설치파일들을 지운다.
autoclean              : 오래된 다운받은 설치 파일을 지운다.
check                    : 의존성이 깨졌는지 확인한다.


----------------------------------------------------------------------------------------------------
(2) aptitude :  인자없이 사용할 경우

-> NCurse 기반의 인터페이스를 사용할 수 있게 된다.

첫화면)  : 패키지가 상태별로 분류되어 있다.
--- Upgradeable Packages     : 이미 설치된 패키지 중 새버전이 나와서 업그레이드 가능한 것
--- New Packages                 :  새로 올라온 패키지
--- Installed Packages           :  이미 설치된 패키지
--- Not Installed Packages      :  설치되지 않은 패키지
--- Obsolete and Locally Created Packages    : 곧 지워질 패키지
--- Virtual Packages                : 비슷한 기능을 지닌 패키지끼리 묶은 것.
--- Task                                : 특정 주제를 중심으로 패키지를 한데 묶은 것.


# 메뉴에서 키
F10: 메뉴     U: 업그레이드           g: (작업)실행      q: 종료


# 패키지 선택 창에서 키
/         :  패키지 검색 ( 한번에 나오지 않으므로 \(역슬래시)를 눌러서 나올때까지 계속 검사한다.)
ctrl-U   :  취소 기능



-  패키지 상태 용어
+ : install : 패키지 설치, 추가 선택
+ : upgrade : 업그레이드
- : remove : 삭제 (config 파일은 남긴다.)
_ : purge : 시스템 설정 파일까지 완전히 삭제
= : hold : 설치된 패키지를 건드리지 않도록 잠금
L : reinstall : 설치된 패키지를 지우지 않고, 덮어씀
g : (시작) : 선택한 패키지에 적용한 명령들을 적용한다.
ctrl-u : 취소 : 이전 상태로 되돌린다.


- 설정시 변경할 때 보이는 정보
<설치상태> <명령상태><직/간접 선택 상태> <패키지명> <용량> <현재버전> <새버전>

ex)
  i      u     A     libssl          0.97    0.98
-> 설치된 libssl을 의존성을 위해 0.97에서 0.98로 업그레이드.

----------------------------------------------------------------------------------------------------

(3) aptitude를 인자와 함께 사용하는 경우 - Command 인터페이스로 사용된다.

-> 내부적으로  apt-get을 이용하며, 사용법도 apt-get과 유사하다.
설치        - aptitude install 패키지명1 패키지명2 ....
삭제        - aptitude remove 패키지명1 패키지명2 ....
완전 삭제 - aptitude purge 패키지명1 패키지명2 ....
정보 보기 - aptitude show 패키지명1 패키지명2 ....
검색 하기 - aptitude search 패키지명1 패키지명2 ....
업그레이드          - aptitude upgrade
패키지 정보 갱신  - aptitude update

자동설치 표시 : aptitude markauto   패키지명1, 패키지명2 ...
자동설치 해제 : aptitude unmarkauto 패키지명1, 패키지명2 ...
상태잠금        : aptitude hold  패키지명1 패키지명2 ...     
상태잠금 해제 : aptitude unhold 패키지명1 패키지명2 ...


- 상세 검색
~n 검색어   검색어가 포함된 패키지
~i  : 설치된 패키지
~c : 지운 후에 설정파일이 /etc에 남아있는 패키지
~b : 의존성이 깨진 패키지
~a 작업 : 특정 작업이 계획된 패키지
~s 섹션 : 섹션에 속한 패키지


- 예제
ㄱ. 전체 패키지 목록
aptitude search ~n

ㄴ. sdl 라이브러리의 개발 버전(libsdl-dev)
aptitude search ~nsdl ~ndev

ㄷ. /etc 에 설정이 남아 있는 패키지 목록
aptitude search ~c

ㄹ. game 섹션에 포함된 패키지 목록보기
aptitude search ~s game

---------------------------------------------------------------------------------------------------

(4) dselect  - NCurse 기반의 인터페이스

-  english 위키 피디아에서 보면,  aptitude는 dselect의 다음 버전으로 고려하여 개발되어 졌으며,
console-apt를 사용한 것보다 좀더 객체 지향적인 디자인으로 실행되도록 만들어졌다고 나와 있다.
현재는 dselect는 backward의 융통성을 위하여 요구되어 진다.

- aptitude나 dselect 모두 libCurseW로 설계되어 있지 않으므로 UTF-8을 사용할 경우, 한글이 깨집니다.
   aptitude는 대신 한글 메뉴를 사용하지 않으므로, 이 경우는 aptitude를 사용하는 게 좋을 것입니다.

---------------------------------------------------------------------------------------------------

(5) synaptic : X 기반의 인터페이스

압축하기
  • tar 압축하기
    > tar cvf test.tar test1 test2
  • gzip 압축하기
    > gzip test.tar
  • tar, gzip 한번에 압축하기
    > tar zcvf test.tgz test1 test2

압축풀기
  • gzip 압축 풀기
    > gzip -d test.tgz
  • tar 압축 풀기
    > tar xvf test.tar
  • tar, gzip 한번에 풀기
    > tar zxvf test.tgz

http://en.opensuse.org/Welcome_to_openSUSE.org 에서 openSUSE-10.3-GM-DVD-i386.iso 파일을
받아 openSUSE 10.3을 설치하였다. 라이브 CD가 아닌 일반 설치 CD로 VirtualBox에 설치함

  1. 초기 부팅화면에서 Language를 '한글', Video를 '1024x768'로 설정
  2. 설치 과정은 그냥 기본 설정으로 넘어가고, 네트워크 셋업은 DHCP로 설정
  3. 시간 설정에서는 아시아/서울로 지역 시간대로 설정
  4. 데스크탑 환경은 KDE로 설정
  5. 이후 설치 진행화면 (약 25분 소요됨)
  6. 자동으로 재부팅됨
  7. 루트 사용자에 대한 비밀번호 설정
  8. 호스트명 설정
  9. 네트워크 구성(NetworkManaer 사용 등 기본설정 사용함)
  10. 인터넷 테스트 생략
  11. 사용자 인증 방법(로컬)
  12. 새 로컬 사용자 등록(자동 로그인 비활성)
  13. 시스템 설정 실행화면
  14. 버전 변경사항이라는 화면을 넘어가면 하등웨어 구성정보 화면으로 넘어간다.
    그래픽 카드, 프린터, 사운드, TV카드, Bluetooth를 설정할 수 있다. 기본설정대로 진행함
  15. 마지막 설치 성공 화면에서 완료를 누르면 로그인 화면으로 바뀐다.
  16. 한글 키보드 설정(YaST - 하드웨어 - 키보드 배열 선택)
    타입: Korean 106-key, Layout: Korea, Republic of, Variant: basic
  17. 저장소를 다음으로 지정함
    업데이트: http://ftp.daum.net/opensuse/update/10.3/
    OSS: http://ftp.daum.net/opensuse/distribution/10.3/repo/oss/
    NON-OSS: http://ftp.daum.net/opensuse/distribution/10.3/repo/non-oss/
  18. 네이버사전체 설치: /usr/share/fonts/truetype에 복사한다.(루트 권한 필요)
  19. 업데이트 수행

+ Recent posts