• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • [轉]Gentoo 快速安裝手冊(GCC4修訂版)

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    [轉]Gentoo 快速安裝手冊(G CC 4修訂版) 本文是在臺灣gentoo社群翻譯的gentoo快速安裝手冊基礎上修改補充而成。首先感謝對岸的前輩們做的辛苦工作! 其中大部分內容保留繁體原文,簡體部分的變動請各位諒解。 1. 快速安裝參考文件 安裝光碟 ISO 檔放在 Gentoo
    [轉]Gentoo 快速安裝手冊(GCC4修訂版)

    本文是在臺灣gentoo社群翻譯的gentoo快速安裝手冊基礎上修改補充而成。首先感謝對岸的前輩們做的辛苦工作!
    其中大部分內容保留繁體原文,簡體部分的變動請各位諒解。

    1. 快速安裝參考文件

    安裝光碟 ISO 檔放在 Gentoo 鏡像。這些不同 CD 間的詳細說明在 Gentoo 商店可以取得。 universal 光碟提供所有快速,而且不需要網路安裝 Gentoo 所需的東西。套件光碟是非必要的,裡面包含了預先編譯好的套件,像是KDE,GNOME,OpenOffice ,Mozilla,Evolution,還有其他等等。
    推薦使用 Gentoo 的minimal 光碟來啟動機器,iso在mirror的 releases/x86/current/installcd/ 目錄下可以找到。如果您希望和我一樣使用reiser4作為主要的文件系統,建議去下載一個支持Reiser4的liveCD來安裝系統,請先看這里 http://gentoo-wiki.com/HOWTO_Install_Gentoo_with_Reiser4_enabled_using_Lxnay%27s_Gentoo_RR4_LiveCD 。
    如果你是從當前gentoo系統升級安裝,可以跳過前面的準備步驟,直接看“開始安裝gentoo”。

    使用 Universal 光碟開機後,按下 <F1> 或/且 <F2> 查看有那些開機參數可以用。按下 <ENTER> 繼續啟動預設的核心。你最後會看到一個提示符號。

    原始碼一覽表1.1: 一開始的設定
    # date (確定你的時間和日期是正確的,如果不是的話,使用 date MMDDhhmmCCYY 設定)
    # modprobe module_name (非必要 - 載入需要的模組)
    # net-setup eth0 (設定網路)
    # fdisk /dev/hda (分割硬碟)
    # cfdisk /dev/hda (這個比較簡單些)

    建議的分割方式是使用 ext2 (Reiserfs) 分割出一塊 100 mb 的開機分割區,你實體記憶體兩倍大的置換分割區,其他的就以 ReiserFS (Reiser4 FS) 分割成根目錄。

    使用mke2fs (Ext2),mke2fs -j (Ext3),mkreiserfs (ReiserFS) ,mkfs.xfs (XFS),mkfs.jfs (JFS) 若您使用Reiser4的光蝶,其中包含了mkfs.reiser4(Reiser4FS) 還有 mkswap (置換分割區) 來初始化分割區。例如說:mke2fs -j /dev/hda3。

    接下來是掛載分割區以及解壓縮合適的 stage 檔案。

    原始碼一覽表1.2: 準備安裝
    (啟動置換分割區) # swapon /dev/hdax
    (掛載根目錄) # mount /dev/hdax /mnt/gentoo
    (建立開機分割區掛載點) # mkdir /mnt/gentoo/boot
    (掛載開機分割區) # mount /dev/hdax /mnt/gentoo/boot
    (切換到掛掛載點) # cd /mnt/gentoo
    (解壓縮 stage 壓縮檔...) # tar -xvjpf /mnt/cdrom/stages/stage<你要用的 stage>.tar.bz2
    (或是 下載最新的壓縮檔...) # links http://www.gentoo.org/main/en/mirrors.xml
    ( ... 然後解壓縮) # tar -xvjpf stage<你要用的 stage>.tar.bz2
    (非必要:解壓縮 portage tree) # tar -xvjf /mnt/cdrom/snapshots/portage-*.tar.bz2 -C /mnt/gentoo/usr
    (建立distfiles目錄檔) # cd /mnt/gentoo/usr/portage; mkdir distfiles
    (非必要:選擇鏡像站) # mirrorselect -a -s4 -o | grep 'GENTOO_MIRRORS=' \
    >> /mnt/gentoo/etc/make.conf
    (?#125;製名稱伺服器資訊) # cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
    (掛載 proc 檔案系統) # mount -t proc none /mnt/gentoo/proc
    (變換根目錄到新的環境) # chroot /mnt/gentoo /bin/bash
    (設定必須的環境變數) # env-update; source /etc/profile

    注意點:
    1. 不要使用GRP套件;
    2. stage可以下載任意一個,但是其實從stage2或者stage3所花費的時間反而最少;
    3. 若文件系統采用Reiser4,在mount分區時,需要指定文件系統類型, 例如“#mount -t reiser4 /dev/hda2 /mnt/gentoo”;
    4. 根分區要最先mount;


    現在開始安裝 Gentoo:

    原始碼一覽表1.3: 安裝 Gentoo
    (設定 USE,CFLAGS 還有 CXXFLAGS。由 Stage1 安裝也可以改變 CHOST) # nano -w /etc/make.conf
    我的make.conf如下:

    Code:

    # These settings were set by the catalyst build script that automatically built this stage
    # Please consult /etc/make.conf.example for a more detailed example
    CFLAGS="-O2 -march=athlon-mp -fomit-frame-pointer -pipe -momit-leaf-frame-pointer -fno-ident -fforce-addr"
    CHOST="i686-pc-linux-gnu"
    #CXXFLAGS="$ -fvisibility-inlines-hidden"
    CXXFLAGS="$"
    LDFLAGS="-Wl,-O1"
    ACCEPT_KEYWORDS="~x86"
    SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
    #SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
    GENTOO_MIRRORS="http://gentoo.mirrors.pair.com/ http://prometheus.cs.wmich.edu/gentoo/ http://mirror.pacific.net.au/linux/Gentoo/ http://gentoo.kems.net http://mirror.gentoo.gr.jp http://gentoo.gg3.net";
    #FETCHCOMMAND='/usr/bin/proz --no-getch -s $ -P $'
    PORTDIR_OVERLAY="/usr/portage /live/portage"
    #USE="static bootstrap java nptl -ia64 -ppc -mips cairo readline -fortran -doc multitarget multislot -ipv6 pcmcia unicode utf-8 opengl xml2 mad stoke zh_CN nptlonly hal dbus cjk -qt -kde acc alsa fbcon bitmap-fonts cups 3dnow 3dnowext mmxext mp mmx sse mtrr"
    USE="nptl nptlonly -ipv6 -qt -kde -doc nls cjk"
    AUTOCLEAN="yes"
    FEATURES="autoaddcvs autoconfig ccache cvs strict sfperms"
    #FEATURES="buildpkg distcc "
    #PORTAGE_BINHOST=""
    LANGUAGE="zh_CN.UTF-8:zh_CN:zh_CN.GBK:en_US:en_US.UTF-8"
    #LANG="zh_CN.UTF-8"
    VIDEO_CARDS="AGP_VIA"
    CLEAN_DELAY=3
    EMERGE_WARNING_DELAY=5
    # folow is config for distcc
    #MAKEOPTS="-j6"
    #DISTCC_HOSTS="localhost 203.148.3.75 192.168.2.213"

    注意:
    1. 設置CFLAGS前請先確認你的CPU類型和支持的參數。
    #cat /proc/cpuinfo
    2. CFLAGS中的-march=athlon-mp 原本為 -mcpu=i386 ,在編譯gcc4時,必須修正為 “-march=arch -mtune=arch”。二后面的cpu類型應當與你自己的相符,可選的有"athlon-xp, i686 ,pentume4 , pentume3 , pentume4-m " 等等。
    3. 優化參數 “-O2”也可以設置成“-O1”,也許你以前聽說過用“-O3”獲得最好的性能效果,但在編譯GCC4.x環境時,暫時不要使用O3,“-Os”是一個安全的可選參數。
    4. 其中#CXXFLAGS="$ -fvisibility-inlines-hidden"只有當你的GCC版本大于3.4.3時才可以啟用。由于gentoo官方的liveCD還是在使用gcc3.3.5,所以請暫時使用#CXXFLAGS="$"。
    5. 其中的LDFLAGS="-Wl,-O1"可以使編譯處理更加快速,但是這個選項是可供選擇的,你可以把它注釋掉。
    6. USE的可能設置非常豐富,但是如果你不希望從一開始就把xorg等桌面都編譯進去,請先使用最小范圍的設定。我僅設定了USE="nptl nptlonly -ipv6 -qt -kde -doc nls cjk" 。nptl是一個LinuxThreads的替代品,使您機器的性能上一個臺階,在編譯glibc時將用到。相關測試結果和討論可以去BIM的developer論壇看看?!皀ptlonly”是最合適的,可以處理掉glibc多余的編譯,縮短編譯時間。而更加細致的USE設定我們將在/etc/portage/packege.use文件中控制。
    7. AUTOCLEAN="yes"設定可以自動清理/var/tmp/portage下的臨時文件。
    8. FEATURES的設定中要注意"autoaddcvs ccache cvs strict ",cvs的設定可以使您的編譯永遠保持最新,autoaddcvs會自動下載相關ebuild的cvs patch。 ccache的設定是在編譯時啟用cache,這也許會在編譯時額外占用你1-2G的硬盤空間。而“strict”參數是對portage的一個安全檢查。
    9. 如果你的周圍有很多已經安裝好的linux系統,你也許希望利用distcc來加速編譯。又或許你希望得到編譯后的而進制tbz包,以便于以后的快速安裝,你可以加入"buildpkg"。
    10. 其中CLEAN_DELAY=3和EMERGE_WARNING_DELAY=5可以縮短編譯包前后的警告時間。

    使用/etc/portage下的文件來控制編譯:
    默認的情況下,/etc/portage下面只有一個set的空目錄。我們需要自己在portage下新建三個文檔:packege.use (用于控制各個ebuild的USE參數), packege.keywords (用于當前編譯版本控制), packege.unmask (用于解放被官方mask掉的非穩定版本)。
    我的 package.unmask 內容如下 :
    Code:

    >=sys-libs/glibc-2.3.5.20050722
    >=sys-devel/gcc-4.0.1
    >=dev-lang/python-2.4-r3
    >=sys-devel/binutils-2.16
    >=x11-base/xorg-x11-6.8.99
    =x11-libs/ecore-9999
    =x11-libs/evas-9999
    >=x11-libs/qt-4.0.0

    我的 package.keywords 內容如下 :
    Code:

    =sys-devel/binutils-2.16.1 -*
    >=sys-libs/glibc-2.3.5.20050722 -*
    sys-libs/libstdc++-v3 ~x86
    >=dev-lang/python-2.3.5 ~x86
    =sys-devel/gcc-4.0.1 -*
    >=x11-libs/qt-4.0.0_rc1-r2 -*

    注意:
    1. 其中glibc必須是2.3.5.2005xxxx的snapshot版本,這是專門針對GCC4.x使用的版本。
    2. 其中binutils也必須是2.16.1的snapshot版本。
    3. 我的python已經設定使用python2.4.1以上版本。
    4. 這里我的QT設定為4.0.0以上版本,QT4.0已經可以用GCC4.X編譯,但是kde的部分包還需要QT3.x,所以如果你使用KDE,請不要急于強制使用QT4。

    我的 package.use 內容如下 :
    Code:

    sys-libs/glibc multilib userlocales nls nptl nptlonly -doc nomalloccheck
    net-dialup/rp-pppoe -X
    net-dialup/ppp -gtk
    sys-devel/libperl ithreads berkdb
    dev-lang/perl ithreads berkdb
    sys-devel/gcc multislot multitarget multilib fortran -objc
    sys-devel/binutils multilib multislot
    x11-terms/xterm unicode truetype
    x11-base/xorg-x11 truetype-fonts opengl mmx cjk 3dnow bitmap-fonts -type1-fonts
    app-text/ghostscript -cups
    mail-client/mutt cjk crypt imap mbox nls slang nntp ssl
    sys-libs/slang cjk unicode
    gnome-base/gnome-applets -apm acpi
    app-editor/nano slang unicode
    sys-libs/ncurses gpm minimal unicode
    dev-util/dialog unicode
    www-client/mozilla-firefox gnome mozsvg java mozxmlterm xinerama
    sys-apps/dbus mono
    gnome-base/gnome-vfs hal howl
    x11-terms/xterm toolbar truetype unicode
    x11-libs/gtk+ jpeg tiff
    app-portage/eix bash-completion
    sys-kernel/morph-sources fuse supermount suspend2
    app-arch/tar bzip2

    注意:
    1. glibc中的 “userlocales” 需要另外設定/etc/locales.build,可以參考論壇中的相關帖子;
    2. perl的 “ithreads ”是讓 perl 在以后升級時可以對其自身進行編譯;
    3. ncurese中的“gpm”是鼠標支持,但是如果第一次直接用GCC4編譯gpm可能會出現錯誤,建議先用gcc3.x編譯 gpm ,然后再用GCC4重新編譯;
    4. eix是一個快速搜索portage的工具,加上bash-cpmletion可以象bash中一樣開啟自動補完功能;
    5. tar的參數中使用了“bzip2”,讓tar動作默認使用bzip2;
    6. 多數包都加上“unicode nls cjk”的設定;

    gentoo中的多國語言環境是Glibc在編譯時完成的,所以我們要編輯/etc/locales.build來時之產生中文環境。
    我的 /etc/locales.build 內容 :
    Code:

    en_US/ISO-8859-1
    en_US.UTF-8/UTF-8
    zh_CN/UTF-8
    zh_CN.UTF-8/UTF-8
    zh_CN.GBK/GBK
    zh_CN.GB2312/GB2312
    zh_TW/BIG5
    zh_TW.UTF-8/UTF-8

    現在我們可以更新套件目錄樹。
    #emerge sync

    (只適用 Stage1 :bootstrap) # cd /usr/portage ;scripts/bootstrap.sh
    (適用 Stage1,Stage2:安裝基礎系統)
    如果你是從stage2開始,首先要用gcc3.x編譯更新bootstrap過程中的幾個組件。
    Code:

    #emerge binutils automake libstdc++-v3 m4 autoconf flex sed make gcc-config gnuconfig
    # source /etc/profles
    #emerge gmp kbd
    #emerge gcc4.0.1 -O

    注意:
    1. 如果你的/etc/portage/package.use中的ncurese開啟了gpm,則在編譯gcc4之前也要編譯一次gpm。而gmp是gcc4必須的。
    2. kbd首先用gcc3.x編譯一次。
    3. 如果你使用gcc3.3.5的stage開始,gcc4第一次編譯時必須獨立編譯,否則會依賴glibc-2.3.5.20050722,而這個glibc版本不能用gcc3.4.x以下版本編譯。
    4. binutils和 gcc-config必須在切換gcc4之前更新完畢,libstdc++-v3最好也在切換到GCC4之前編譯。

    在gcc4.0.1編譯完成后,我們就可以安全切換到GCC4了。
    先察看當前的gcc有哪些版本
    #gcc-config -l
    切換到新的gcc
    #gcc-conifg [num]
    更換后用 # gcc -v 察看當前GCC版本。
    然后再次更新環境
    Code:
    #source /etc/profiles


    現在我們已經開始使用GCC4.0.1編譯了,首先我們要讓GCC4自身編譯一次。
    Code:

    #emerge gcc -O
    #emerge glibc
    #emerge binutils automake libstdc++-v3 m4 autoconf flex sed make gcc-config gnuconfig

    前面的步驟完成后,我們就需要重新更新整個環境
    #source /etc/profiles
    這個的這個GCC4.0.1才算是真正的GCC4,ok,我們現在就繼續編譯所有system的包,當然最好是
    Code:

    #emerge -e world


    注意:
    1. 在編譯所有的ebuild之前,我都希望你可以用 emerge -pvt來檢查其中的參數設定;
    2. 如果你是從當前系統更新,那么前面的步驟就可以省去一點,至少那些binutils automake libstdc++-v3 m4 autoconf flex sed make gcc-config gnuconfig的更新就可以免去了。
    3. emerge -e world的步驟可以將emerge -e system和stage1中的包都包含進去,如果你怕太花時間??梢院唵蝒merge -e system



    現在我們設定必須的資訊:

    原始碼一覽表1.4: ?#123;整設定檔
    (設定時區) # ln -sf /usr/share/zoneinfo/<適合的時區檔> /etc/localtime
    (編輯 fstab 檔) # nano -w /etc/fstab


    底下是一個 /etc/fstab 範例(不要直接照抄):

    原始碼一覽表1.5: /etc/fstab
    Code:
     
    # <fs>                  <mountpoint>    <type>          <opts>                  <dump/pass>
    /dev/hda1       /boot           ext2(reiserfs)            defaults,noatime        1 2
    /dev/hda7               none            swap            sw                      0 0
    /dev/hda2               /               reiserfs(reiser4)        defaults,noatime                 0 1
    /dev/hda3               /home               reiserfs(reiser4)        defaults,noatime                 0 1
    /dev/hda5               /live               reiserfs(reiser4)        defaults,noatime                 0 1
    /dev/hda6               /dump               reiserfs(reiser4)        defaults,noatime                 0 1
    /dev/cdroms/cdrom0      /mnt/cdrom      auto            noauto,user             0 0
    none                    /proc           proc            defaults                0 0
    none                    /dev/shm        tmpfs           nodev,nosuid,noexec     0 0


    繼續安裝 Linux 核心:

    原始碼一覽表1.6: 安裝核心
    (安裝核心原始嗎) # emerge <這裡輸入核心套件名稱>
    (使用 genkernel 設定核心...) # emerge genkernel; genkernel --menuconfig all
    (或 (1) 手動設定核心) # cd /usr/src/linux; make menuconfig;
    ( (2) 包含 VM fs, /proc fs, tmpfs,reiserfs,以及reiser4,suspend2)
    ( (3) 編譯核心)
    (適用 2.4 核心)# make dep && make clean bzImage modules modules_install
    (適用 2.6 核心)# make && make modules_install
    ( (4) ?#125;製核心) # cp arch/i386/boot/bzImage /boot; cp System.map /boot

    我使用morph和cko內核
    相干設置待續...

    現在安裝你可能想要的程式:

    原始碼一覽表1.7: 安裝重要系統程式
    (安裝 system logger; 可以選擇的:sysklogd,metalog,msyslog,syslog-ng) # emerge syslog-ng
    (讓 systemlogger 開機時自動啟動) # rc-update add syslog-ng default
    (安裝 cron; 可以選擇的:vixie-cron, dcron, fcron) # emerge vixie-cron
    (讓 cron 開機時自動啟動) # rc-update add vixie-cron default
    (如果你使用 genkernel:安裝 hotplug) # emerge hotplug coldplug
    (如果你使用 genkernel:讓 hotplug 開機時自動啟動) # rc-update add hotplug default
    (只適用 非 ext2,ext3 使用者; 可以選擇的:reiserfsprogs, xfsprogs, jfsutils) # emerge reiserfsprogs reiser4progs
    (非必要:安裝 DHCP 客戶端程式) # emerge dhcpcd
    (領域名稱啟動指令稿) # rc-update add domainname default
    (安裝電源管理) # emerge acpi acpid
    (讓 acpid開機時自動啟動) # rc-update add acpid default

    如果你需要其他的核心模組,現在是安裝他們的時候:

    原始碼一覽表1.8: 安裝其他的核心模組
    # emerge pcmcia-cs (或 nforce-net,nforce-audio,e100,e1000,ati-drivers,rp-pppoe)
    # VIDEO_CARDS="yourcard" emerge x11-drm (適用 ATI Radeon 9200,Rage128以上,Matrox,Voodoo 和起他的顯示卡)


    完成你的 Gentoo 系統設定:

    原始碼一覽表1.9: 完成系統設定
    (設定 root 密碼) # passwd
    (建立使用者) # useradd 你的名字 -m -G users,wheel,audio -s /bin/bash
    (設定使用者密碼) # passwd 你的名字
    (設定主機名稱) # echo mymachine > /etc/hostname
    (設定領域名稱) # echo mydomain.com > /etc/dnsdomainname
    (設定 hostsfile,例如:"127.0.0.1 localhost mymachine") # nano -w /etc/hosts
    (設定基本系統設定;參閱註解) # nano -w /etc/rc.conf

    原始碼一覽表1.10: 設定網路
    (設定網路; 使用 dhcp 的話應該設定 iface_eth0="dhcp") # nano -w /etc/conf.d/net
    (加入開機時要啟動的模組) # nano -w /etc/modules.autoload.d/kernel-<版本>
    (只適用非 PCMCIA:開機時自動啟動網路介面) # rc-update add net.eth0 default
    (如果你有多個網路介面:)
    (1) 建立每個介面的啟動指令稿) # ln -s /etc/init.d/net.eth0 /etc/init.d/net.ethx
    (2) 開機時自動啟動,如果不是 PCMCIA) # rc-update add net.ethx default
    (只適用 PCMCIA:確認 /etc/conf.d/pcmcia 以及開機自動載入 PCMCIA) # rc-update add pcmcia default


    現在安裝開機管理員

    原始碼一覽表1.11: 安裝及設定 GRUB
    # emerge grub
    # grub
    Code:

    grub> root (hd0,0)
    grub> setup (hd0)
    grub> quit

    # nano -w /boot/grub/grub.conf
    Code:

    default 0
    timeout 15
    splashimage=(hd0,0)/grub/splash.xpm.gz

    title=Gentoo Linux
      root (hd0,0)
      #使用 genkernel 的人:
      kernel /kernel-<核心版本> root=/dev/ram0 init=/linuxrc real_root=/dev/hda2 ramdisk=8192 vga=773 vedio=vesa:1024x768@72
      initrd /initrd-<核心版本>
      # 不是使用 genkernel 的人:
      kernel /kernel-<核心版本> root=/dev/hda2  vga=773 vedio=vesa:1024x768@72

    原始碼一覽表1.12: 安裝及設定 LILO
    # emerge lilo
    # nano -w /etc/lilo.conf
    Code:

    boot=/dev/hda
    prompt
    timeout=50
    default=gentoo

    image=/boot/kernel-<核心版本>
      label=gentoo
      read-only
      #使用 genkernel 的人:
      append="init=/linuxrc real_root=/dev/hda2 ramdisk=8192 vga=773 vedio=vesa:1024x768@72 "
      root=/dev/ram0
      initrd=/boot/initrd-<核心版本>
      #不是使用 genkernel 的人:
      root=/dev/hda2 resume2=/dev/hda7 vga=773 vedio=vesa:1024x768@72


    注意:
    1. 使用suspend2功能的,要在kernel行加入 resume2=swapwhere
    Code:
    resume2=/dev/hdax

    更新lilo:
    # /sbin/lilo


    現在卸載所有分割區然後重開機:

    原始碼一覽表1.13: 完成然後安裝 GUI
    (離開 chroot) # exit; cd /
    (卸載所有分割區) # umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
    (重開機;移除光碟機中的 universal 光碟) # reboot
    (開機後:)
    (只適用 ADSL 使用者) # adsl-setup

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>