gentoo 升級小記

來源:互聯網
上載者:User
    我很早就想對gentoo進行升級。因為我的gentoo版本太老了。以至於很多軟體都裝不上,動不動就跳出一個:
    [blocks B     ] <=x11-base/xorg-x11-6.9 (is blocking x11-drivers/xf86-video-tga-1.1.0, x11-libs/libXdamage-1.1.1, x11-proto/xf86vidmodeproto-2.2.2, x11-drivers/xf86-video-fbdev-0.3.1, x11-drivers/xf86-video-nsc-2.8.2, x11-proto/xf86driproto-2.0.3, x11-libs/libXrandr-1.2.1, x11-apps/setxkbmap-1.0.2, x11-proto/glproto-1.4.8, x11-libs/libXfont-1.2.7-r1, media-fonts/encodings-1.0.2, x11-proto/bigreqsproto-1.0.2, x11-apps/xauth-1.0.2, x11-libs/libXdmcp-1.0.2, x11-apps/xkbcomp-1.0.3, x11-libs/libXinerama-1.0.2, x11-wm/twm-1.0.3, x11-libs/libXfixes-4.0.3, x11-proto/xcmiscproto-1.1.2, x11-apps/xclock-1.0.2, x11-drivers/xf86-video-ark-0.6.0, x11-drivers/xf86-video-s3virge-1.9.1, x11-libs/libXmu-1.0.3, x11-proto/xproto-7.0.10, x11-proto/xf86rushproto-1.1.2, x11-libs/libXxf86vm-1.0.1, app-doc/xorg-docs-1.4, x11-base/xorg-server-1.2.0-r3, x11-proto/damageproto-1.1.0, x11-libs/libXScrnSaver-1.1.2, x11-drivers/xf86-video-neomagic-1.1.1, x11-apps/mkfontdir-1.0.3, x11-libs/libXp-1.0.0, x11-apps/rgb-1.0.1, x11-proto/recordproto-1.13.2, x11-apps/luit-1.0.2, x11-libs/libXi-1.1.0, x11-proto/xf86dgaproto-2.0.2, x11-apps/xhost-1.0.1, x11-drivers/xf86-video-sisusb-0.8.1, x11-drivers/xf86-video-vesa-1.3.0, x11-drivers/xf86-video-ati-6.6.3, x11-drivers/xf86-video-s3-0.5.0, x11-drivers/xf86-video-i810-1.7.4, media-fonts/font-adobe-utopia-type1-1.0.1, x11-proto/printproto-1.0.3, x11-apps/xrdb-1.0.3, x11-proto/xf86miscproto-0.9.2, x11-proto/fontcacheproto-0.1.2, x11-libs/libXpm-3.5.6, x11-libs/libXau-1.0.3, x11-apps/xrandr-1.2.0, x11-drivers/xf86-video-tdfx-1.3.0, x11-libs/libxkbfile-1.0.4, x11-proto/resourceproto-1.0.2, x11-proto/kbproto-1.0.3, x11-libs/libXt-1.0.5, x11-proto/renderproto-0.9.2, x11-drivers/xf86-video-cirrus-1.1.0, x11-drivers/xf86-video-chips-1.1.1, x11-libs/libXvMC-1.0.4, x11-drivers/xf86-video-imstt-1.1.0, x11-libs/libXcursor-1.1.8, x11-apps/mkfontscale-1.0.3, media-fonts/font-cursor-misc-1.0.0, x11-proto/videoproto-2.2.2, x11-drivers/xf86-video-v4l-0.1.1, x11-drivers/xf86-video-vmware-10.15.0, x11-apps/xinit-1.0.3-r3, x11-apps/xsm-1.0.1, x11-proto/compositeproto-0.3.1, x11-drivers/xf86-input-keyboard-1.1.1, x11-libs/libXxf86misc-1.0.1, x11-libs/libXft-2.1.12, x11-libs/xtrans-1.0.3, x11-drivers/xf86-input-mouse-1.2.1, x11-libs/libXtst-1.0.1, x11-drivers/xf86-video-i128-1.2.1, x11-drivers/xf86-video-sis-0.9.1-r1, x11-proto/randrproto-1.2.1, x11-drivers/xf86-video-dummy-0.2.0, x11-drivers/xf86-video-siliconmotion-1.5.1, media-libs/mesa-6.5.2-r1, x11-libs/libXcomposite-0.3.1, x11-drivers/xf86-input-evdev-1.1.5-r1, media-fonts/font-adobe-75dpi-1.0.0, x11-proto/dmxproto-2.2.2, x11-drivers/xf86-video-trident-1.2.3, x11-drivers/xf86-video-nv-1.2.2.1, media-fonts/font-misc-misc-1.0.0, x11-libs/libdrm-2.3.0, x11-libs/libXaw-1.0.3, x11-drivers/xf86-video-vga-4.1.0, x11-misc/util-macros-1.1.5, x11-proto/xineramaproto-1.1.2, x11-drivers/xf86-video-voodoo-1.1.1, x11-drivers/xf86-video-i740-1.1.0, x11-proto/scrnsaverproto-1.1.0, x11-libs/liblbxutil-1.0.1, x11-apps/iceauth-1.0.1, x11-drivers/xf86-video-via-0.2.2, x11-proto/evieext-1.0.2, x11-libs/libXrender-0.9.2, x11-proto/fixesproto-4.0, x11-proto/fontsproto-2.0.2, x11-drivers/xf86-video-apm-1.1.1, x11-drivers/xf86-video-glint-1.1.1, x11-libs/libSM-1.0.2, media-fonts/font-adobe-100dpi-1.0.0, x11-apps/xprop-1.0.2, x11-drivers/xf86-video-rendition-4.1.3, x11-apps/xmodmap-1.0.2, x11-drivers/xf86-video-savage-2.1.2-r1, x11-proto/xextproto-7.0.2, x11-libs/libXext-1.0.3, media-fonts/font-util-1.0.1, x11-misc/makedepend-1.0.0, x11-drivers/xf86-video-cyrix-1.1.0, x11-proto/xf86bigfontproto-1.1.2, x11-proto/trapproto-3.4.3, x11-apps/sessreg-1.0.2, x11-proto/inputproto-1.4.1, media-fonts/font-alias-1.0.1, x11-libs/libdmx-1.0.2, x11-libs/libICE-1.0.3, x11-libs/libXres-1.0.3, x11-libs/libfontenc-1.0.4, x11-apps/xdpyinfo-1.0.2, x11-libs/libXxf86dga-1.0.1, x11-misc/xbitmaps-1.0.1, x11-drivers/xf86-video-tseng-1.1.1, x11-drivers/xf86-video-mga-1.4.6.1, x11-libs/libXv-1.0.3, media-fonts/font-bh-type1-1.0.0, x11-apps/bdftopcf-1.0.0, x11-libs/libxkbui-1.0.2, x11-libs/libX11-1.1.1-r1)

    然而升級有較大風險,尤其是更新X,更新失敗的話連X都沒有了。最後還是下定決心,更新一把。
    第一步自然是更新軟體包資料庫
    emerge --sync
    為了防止網路不好,更新到一半就失敗。我先用以下命令預先把原始碼包下載下來。
    emerge -fuDv world
    Total: 562 packages (269 upgrades, 1 downgrade, 268 new, 24 in new slots, 13 blocks), Size of downloads: 0 kB
    發現要更新的軟體包達500多個,沒辦法,這就是長期不升級的後果。大概花了整整一天,終於把所有原始碼包下載到了/usr/portage/下。
    終於可以升級了。
    emerge -uDv world
    還是不行。提示有很多軟體包block了其它軟體包(所謂block,簡單地理解就是軟體包之間的衝突,解決辦法是把衝突的軟體包卸載掉,然後系統會自動安裝新的不衝突的軟體包):
[blocks B     ] >=sys-fs/udev-089 (is blocking sys-apps/coldplug-20040920-r1)
[blocks B     ] app-admin/eselect-esd (is blocking media-sound/esound-0.2.36-r1)
[blocks B     ] sys-libs/libutempter (is blocking sys-apps/utempter-0.5.5.6)
[blocks B     ] virtual/xft (is blocking x11-base/xorg-x11-6.8.2-r6)
[blocks B     ] <=x11-base/xorg-x11-6.9 (is blocking x11-drivers/xf86-video-tga-1.1.0, x11-libs/libXdamage-1.1.1, x11-proto/xf86vidmodeproto-2.2.2, x11-drivers/xf86-video-fbdev-0.3.1, x11-drivers/xf86-video-nsc-2.8.2, x11-proto/xf86driproto-2.0.3, x11-libs/libXrandr-1.2.1, x11-apps/setxkbmap-1.0.2, x11-proto/glproto-1.4.8, x11-libs/libXfont-1.2.7-r1, media-fonts/encodings-1.0.2, x11-proto/bigreqsproto-1.0.2, x11-apps/xauth-1.0.2, x11-libs/libXdmcp-1.0.2, x11-apps/xkbcomp-1.0.3, x11-libs/libXinerama-1.0.2, x11-wm/twm-1.0.3, x11-libs/libXfixes-4.0.3, x11-proto/xcmiscproto-1.1.2, x11-apps/xclock-1.0.2, x11-drivers/xf86-video-ark-0.6.0, x11-drivers/xf86-video-s3virge-1.9.1, x11-libs/libXmu-1.0.3, x11-proto/xproto-7.0.10, x11-proto/xf86rushproto-1.1.2, x11-libs/libXxf86vm-1.0.1, app-doc/xorg-docs-1.4, x11-base/xorg-server-1.2.0-r3, x11-proto/damageproto-1.1.0, x11-libs/libXScrnSaver-1.1.2, x11-drivers/xf86-video-neomagic-1.1.1, x11-apps/mkfontdir-1.0.3, x11-libs/libXp-1.0.0, x11-apps/rgb-1.0.1, x11-proto/recordproto-1.13.2, x11-apps/luit-1.0.2, x11-libs/libXi-1.1.0, x11-proto/xf86dgaproto-2.0.2, x11-apps/xhost-1.0.1, x11-drivers/xf86-video-sisusb-0.8.1, x11-drivers/xf86-video-vesa-1.3.0, x11-drivers/xf86-video-ati-6.6.3, x11-drivers/xf86-video-s3-0.5.0, x11-drivers/xf86-video-i810-1.7.4, media-fonts/font-adobe-utopia-type1-1.0.1, x11-proto/printproto-1.0.3, x11-apps/xrdb-1.0.3, x11-proto/xf86miscproto-0.9.2, x11-proto/fontcacheproto-0.1.2, x11-libs/libXpm-3.5.6, x11-libs/libXau-1.0.3, x11-apps/xrandr-1.2.0, x11-drivers/xf86-video-tdfx-1.3.0, x11-libs/libxkbfile-1.0.4, x11-proto/resourceproto-1.0.2, x11-proto/kbproto-1.0.3, x11-libs/libXt-1.0.5, x11-proto/renderproto-0.9.2, x11-drivers/xf86-video-cirrus-1.1.0, x11-drivers/xf86-video-chips-1.1.1, x11-libs/libXvMC-1.0.4, x11-drivers/xf86-video-imstt-1.1.0, x11-libs/libXcursor-1.1.8, x11-apps/mkfontscale-1.0.3, media-fonts/font-cursor-misc-1.0.0, x11-proto/videoproto-2.2.2, x11-drivers/xf86-video-v4l-0.1.1, x11-drivers/xf86-video-vmware-10.15.0, x11-apps/xinit-1.0.3-r3, x11-apps/xsm-1.0.1, x11-proto/compositeproto-0.3.1, x11-drivers/xf86-input-keyboard-1.1.1, x11-libs/libXxf86misc-1.0.1, x11-libs/libXft-2.1.12, x11-libs/xtrans-1.0.3, x11-drivers/xf86-input-mouse-1.2.1, x11-libs/libXtst-1.0.1, x11-drivers/xf86-video-i128-1.2.1, x11-drivers/xf86-video-sis-0.9.1-r1, x11-proto/randrproto-1.2.1, x11-drivers/xf86-video-dummy-0.2.0, x11-drivers/xf86-video-siliconmotion-1.5.1, media-libs/mesa-6.5.2-r1, x11-libs/libXcomposite-0.3.1, x11-drivers/xf86-input-evdev-1.1.5-r1, media-fonts/font-adobe-75dpi-1.0.0, x11-proto/dmxproto-2.2.2, x11-drivers/xf86-video-trident-1.2.3, x11-drivers/xf86-video-nv-1.2.2.1, media-fonts/font-misc-misc-1.0.0, x11-libs/libdrm-2.3.0, x11-libs/libXaw-1.0.3, x11-drivers/xf86-video-vga-4.1.0, x11-misc/util-macros-1.1.5, x11-proto/xineramaproto-1.1.2, x11-drivers/xf86-video-voodoo-1.1.1, x11-drivers/xf86-video-i740-1.1.0, x11-proto/scrnsaverproto-1.1.0, x11-libs/liblbxutil-1.0.1, x11-apps/iceauth-1.0.1, x11-drivers/xf86-video-via-0.2.2, x11-proto/evieext-1.0.2, x11-libs/libXrender-0.9.2, x11-proto/fixesproto-4.0, x11-proto/fontsproto-2.0.2, x11-drivers/xf86-video-apm-1.1.1, x11-drivers/xf86-video-glint-1.1.1, x11-libs/libSM-1.0.2, media-fonts/font-adobe-100dpi-1.0.0, x11-apps/xprop-1.0.2, x11-drivers/xf86-video-rendition-4.1.3, x11-apps/xmodmap-1.0.2, x11-drivers/xf86-video-savage-2.1.2-r1, x11-proto/xextproto-7.0.2, x11-libs/libXext-1.0.3, media-fonts/font-util-1.0.1, x11-misc/makedepend-1.0.0, x11-drivers/xf86-video-cyrix-1.1.0, x11-proto/xf86bigfontproto-1.1.2, x11-proto/trapproto-3.4.3, x11-apps/sessreg-1.0.2, x11-proto/inputproto-1.4.1, media-fonts/font-alias-1.0.1, x11-libs/libdmx-1.0.2, x11-libs/libICE-1.0.3, x11-libs/libXres-1.0.3, x11-libs/libfontenc-1.0.4, x11-apps/xdpyinfo-1.0.2, x11-libs/libXxf86dga-1.0.1, x11-misc/xbitmaps-1.0.1, x11-drivers/xf86-video-tseng-1.1.1, x11-drivers/xf86-video-mga-1.4.6.1, x11-libs/libXv-1.0.3, media-fonts/font-bh-type1-1.0.0, x11-apps/bdftopcf-1.0.0, x11-libs/libxkbui-1.0.2, x11-libs/libX11-1.1.1-r1)
[blocks B     ] app-admin/fam (is blocking app-admin/gamin-0.1.8)
[blocks B     ] sys-apps/pam-login (is blocking sys-apps/shadow-4.0.18.1)
[blocks B     ] kde-base/kde-env (is blocking kde-base/kdelibs-3.5.5-r10)
[blocks B     ] sys-apps/coldplug (is blocking sys-fs/udev-104-r12)
[blocks B     ] <media-sound/esound-0.2.36-r2 (is blocking app-admin/eselect-esd-20060719)
[blocks B     ] sys-apps/utempter (is blocking sys-libs/libutempter-1.1.5)
[blocks B     ] <dev-python/pygtk-2.9 (is blocking dev-python/pygobject-2.12.3)
[blocks B     ] app-admin/gamin (is blocking app-admin/fam-2.7.0-r2, app-admin/fam-2.7.0-r4)
    其中最為可恨的是x11-base/xorg-x11-6.9這個軟體包。不過幹掉它,會使很多X應用程式運行不了。所以,需要用到的軟體,如firefox之類,一定要開啟。因為一關閉,在升級成功之前,就再也打不開啦。
    安全起見,先運行:
    emerge --pretend --unmerge xorg-x11
    確認沒有重要的包被刪除,才真正動手(以前不小心把python刪除了,結果連emerge都跑不起來,最後重裝了事。)
    運行:
    emerge --unmerge xorg-x11
    刪除總是比安裝順利:P
    然後重新安裝xorg-x11
    emerge xorg-x11
    出了點問題
>>> Emerging (94 of 143) x11-misc/xkeyboard-config-0.8-r1 to /
 * xkeyboard-config-0.8.tar.bz2 RMD160 ...                                                                                         [ ok ] * xkeyboard-config-0.8.tar.bz2 SHA1 ...                                                                                           [ ok ] * xkeyboard-config-0.8.tar.bz2 SHA256 ...                                                                                         [ ok ] * xkeyboard-config-0.8.tar.bz2 size ...                                                                                           [ ok ] * checking ebuild checksums ...                                                                                                   [ ok ] * checking auxfile checksums ...                                                                                                  [ ok ] * checking miscfile checksums ...                                                                                                 [ ok ] * checking xkeyboard-config-0.8.tar.bz2 ...                                                                                       [ ok ] * Directory /usr/lib/X11/xkb should be
 * manually deleted/renamed/relocated before installing!

!!! ERROR: x11-misc/xkeyboard-config-0.8-r1 failed.
Call stack:
  ebuild.sh, line 1631:   Called dyn_setup
  ebuild.sh, line 703:   Called qa_call 'pkg_setup'
  ebuild.sh, line 44:   Called pkg_setup
  xkeyboard-config-0.8-r1.ebuild, line 26:   Called die

!!! Manually remove /usr/lib/X11/xkb
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/x11-misc/xkeyboard-config-0.8-r1/temp/build.log'.

    不過這個簡單,把/usr/lib/X11/xkb/重新命名一下就行了(不要刪除,這樣不安全)
    之後一切順利。少了一個最可恨的block包
    其它的包也類似,凡是block的一律unmerge掉。
    有幾個包是互相衝突的,如app-admin/fam和app-admin/gamin-0.1.8,有我沒你,有你沒我。於是統統卸載掉。
    最後,所有的block包都被幹掉了,終於可以開始升級了。別急,麻煩還在後頭呢。
    emerge -uDv world
    開始時一切順利,看著滿屏的“g++ -I ”之類,我感到莫名的興奮。
    好景不長   
>>> Merging sys-apps/dbus-1.0.2-r2 to /
 WARN=BAD=HILITE=BRACKET=* Adding group 'messagebus' to your system ...
 WARN=BAD=HILITE=BRACKET=*  - Groupid: next available
/usr/portage/eclass/eutils.eclass: line 708: groupadd: command not found

!!! ERROR: sys-apps/dbus-1.0.2-r2 failed.
Call stack:
  ebuild.sh, line 1631:   Called dyn_preinst
  ebuild.sh, line 1079:   Called pkg_preinst
  dbus-1.0.2-r2.ebuild, line 99:   Called enewgroup 'messagebus'
  eutils.eclass, line 708:   Called die

!!! enewgroup failed
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/sys-apps/dbus-1.0.2-r2/temp/build.log'.

!!! FAILED preinst: 1
    沒有groupadd命令。
    安裝gentoolkit,用equery belongs groupadd,發現我把sys-apps/shadow給刪除了。
    原來我在開始時unmerge得太興奮,把sys-apps/shadow也刪除了。

    之後有些包是和核心相關的,所以要建一個/usr/src/linux連結,指向linux核心原始碼。該原始碼一定要make menuconfig過。

    之後出現了一個編譯錯誤。google之,找到一個patch .修改之。
    由於emerge時解壓到/var/tmp/portage/所以:
    ebuild /var/tmp/portage/XXX/.../XXX.ebuild compile(編譯)
    ebuild /var/tmp/portage/XXX/.../XXX.ebuild install(安裝)
    ebuild /var/tmp/portage/XXX/.../XXX.ebuild qmerge(告訴系統,這個包已經安裝完畢了。)

    在安裝最後50多個包時,又出了一次問題:
    安裝gnome-extra/gnome-keyring-manager-2.16.0-r1 時,出現如下錯誤:
http://www.oasis-open.org/docbook/xml/4.2/ent/iso-box.ent:1: parser error : Content error in the external subset
HTTP/1.1 200 OK
^
http://www.oasis-open.org/docbook/xml/4.2/ent/iso-box.ent:1: parser error : Content error in the external subset
HTTP/1.1 200 OK
   ^
http://www.oasis-open.org/docbook/xml/4.2/ent/iso-box.ent:1: parser error : Content error in the external subset
HTTP/1.1 200 OK
      ^
unable to parse es/gnome-keyring-manager.xml
make[2]: *** [gnome-keyring-manager-es.omf] Error 6
make[2]: Leaving directory `/var/tmp/portage/gnome-extra/gnome-keyring-manager-2.16.0-r1/work/gnome-keyring-manager-2.16.0/docs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/gnome-extra/gnome-keyring-manager-2.16.0-r1/work/gnome-keyring-manager-2.16.0'
make: *** [all] Error 2

!!! ERROR: gnome-extra/gnome-keyring-manager-2.16.0-r1 failed.
Call stack:
  ebuild.sh, line 1615:   Called dyn_compile
  ebuild.sh, line 972:   Called qa_call 'src_compile'
  ebuild.sh, line 44:   Called src_compile
  ebuild.sh, line 1305:   Called gnome2_src_compile
  gnome2.eclass, line 71:   Called die

!!! compile failure
!!! If you need support, post the topmost build error, and the call stack if relevant.
!!! A complete build log is located at '/var/tmp/portage/gnome-extra/gnome-keyring-manager-2.16.0-r1/temp/build.log'.
    經查,是由於app-text/docbook-xml-dtd這個軟體包已經裝了4.4-r1 4.3 4.1.2-r6這三個版本,但還缺少4.2-r1。這個軟體包沒有做到向下相容。所以解析檔案時出錯了。

    經過千辛萬苦,三天三夜的戰鬥,終於把系統升級到最新狀態。

    最贊的是在把軟體包卸載以後,原來開啟的對應的軟體還能繼續跑。當時把xorg-x11刪除後,X繼續運行沒有問題。怎樣做到的?(當然把X關掉再啟動就運行不了了。)windows下根本不允許你卸載,它會提示“程式正在運行,拒絕訪問”之類,不過這樣雖然不方便,的確是比較安全的做法。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.