(1) revdep-rebuild --library 'libmpfr.so.1'に失敗しているが、
rm '/usr/lib64/libmpfr.so.1'を行うと、その後インストールできなくなる。
バイナリパッケージをemergeでインストールできるので、1個前のバージョンを
再インストールして、/usr/lib64/libmpfr.so.1がある状態に戻す。
$ sudo PORTAGE_BINHOST=http://tinderbox.dev.gentoo.org/default-linux/amd64/ emerge -avgK --oneshot =dev-libs/mpfr-2.4.2_p3
(2) eselect pythonでバージョンを変更していないが、
emerge --depclean -av で消した場合にemergeなどが動作しなくなる。
emergeが動作しないのでバイナリパッケージのpython2.6を手動でダウンロードしてインストールする。
$ wget http://tinderbox.dev.gentoo.org/default-linux/amd64/dev-lang/python-2.6.6-r2.tbz2 $ tar xvjf python-2.6.6-r2.tbz2 $ cp -pri usr/ /
(3) crossdevでi686-pc-linux-gnu用のインストールをすると、
/usr/libexec/gcc/i686-pc-linux-gnu/ld: crt1.o: No such file: No such file or directoryで失敗する。
新しいcrossdevを使用する。
$ sudo ACCEPT_KEYWORDS="~amd64" emerge --oneshot -av =sys-devel/crossdev-20110310 $ sudo crossdev -t i686-pc-linux-gnu --binutils 2.20.1-r1 --gcc 4.4.5 --kernel 2.6.36.1 --libc 2.11.3
以下は詳細。
更新前のバージョンのバイナリをインストールする。
$ sudo PORTAGE_BINHOST=http://tinderbox.dev.gentoo.org/default-linux/amd64/ emerge -avgK --oneshot =dev-libs/mpfr-2.4.2_p3
cpuごとにURLを変更する。この場合x86だと下記のようなエラーになる。
- sys-devel/gcc-4.4.5 (masked by: CHOST: i686-pc-linux-gnu) - dev-libs/mpfr-2.4.2_p3 (masked by: ~amd64 keyword, CHOST: i686-pc-linux-gnu)
cpuごとのディレクトリの一覧が見える。
http://tinderbox.dev.gentoo.org/default-linux/
再度実行する。
$ sudo revdep-rebuild --library 'libmpfr.so.1' # これは成功時に実行する。 # rm '/usr/lib64/libmpfr.so.1'
エラーの内容。
$ sudo revdep-rebuild --library 'libmpfr.so.1' ... emerge: there are no ebuilds to satisfy "cross-powerpc-unknown-linux-gnu/gcc:powerpc-unknown-linux-gnu-4.3". emerge: searching for similar names... emerge: Maybe you meant any of these: dev-ruby/osmlib-base, dev-ruby/kirbybase, dev-ruby/snmplib? * * revdep-rebuild failed to emerge all packages.
黒箱用のコンパイラが古いままだった。古いので使う場合は再度入れるはずなので消す。
$ grep gcc /etc/portage/package.mask >cross-powerpc-unknown-linux-gnu/gcc-4.3.4 #>cross-i686-pc-linux-gnu/gcc-4.4.3-r2 >=cross-i686-pc-linux-gnu/gcc-4.4.4 $ grep cross-powerpc-unknown-linux-gnu /var/lib/portage/world cross-powerpc-unknown-linux-gnu/binutils cross-powerpc-unknown-linux-gnu/gcc cross-powerpc-unknown-linux-gnu/glibc cross-powerpc-unknown-linux-gnu/linux-headers $ sudo emerge -Cav cross-powerpc-unknown-linux-gnu/binutils cross-powerpc-unknown-linux-gnu/gcc cross-powerpc-unknown-linux-gnu/glibc cross-powerpc-unknown-linux-gnu/linux-headers
まずバイナリインストールの古いバージョンを手動で更新してからrevdep-rebuildする。
$ sudo emerge --oneshot -avt =dev-libs/mpfr-3.0.0_p3 $ sudo revdep-rebuild --library 'libmpfr.so.1'
lddなどで確認する。その後消す。
$ ldd /usr/libexec/gcc/x86_64-pc-linux-gnu/4.4.5/cc1 linux-vdso.so.1 => (0x00007fff8c7e2000) libmpfr.so.1 => /usr/lib/libmpfr.so.1 (0x00007fa81fc9e000) libgmp.so.3 => /usr/lib/libgmp.so.3 (0x00007fa81fa45000) libc.so.6 => /lib/libc.so.6 (0x00007fa81f6eb000) /lib64/ld-linux-x86-64.so.2 (0x00007fa81feed000)
$ ldd /usr/libexec/gcc/x86_64-pc-linux-gnu/4.4.5/cc1 linux-vdso.so.1 => (0x00007fff56fff000) libmpfr.so.4 => /usr/lib64/libmpfr.so.4 (0x00007f7092c8e000) libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00007f7092a35000) libc.so.6 => /lib64/libc.so.6 (0x00007f70926da000) /lib64/ld-linux-x86-64.so.2 (0x00007f7092ee2000) $ sudo rm '/usr/lib64/libmpfr.so.1'
カーネル更新する。
$ cd /usr/src/ $ sudo rm -i linux $ sudo ln -s linux-2.6.36-gentoo-r8 linux $ sudo genkernel --kernel-config=/etc/kernels/kernel-config-x86_64-2.6.36-gentoo-r5 all
/usr/share/genkernel/arch/x86_64/modules_loadはソフトを更新すると初期化するので、
たぶんコマンドで指定できるような気がする。
ブートローダーの再インストール。
$ grub device (hd0) /dev/sda root (hd0,0) setup (hd0) device (hd0) /dev/sdb root (hd0,0) setup (hd0) quit
depclean実行後にpython関連が動かなくなった。
$ sudo emerge --depclean -av
python-updaterが失敗しているっぽい。(eselectで変更していないのが原因)
手動でバイナリパッケージを再インストールする。
$ wget http://tinderbox.dev.gentoo.org/default-linux/amd64/dev-lang/python-2.6.6-r2.tbz2 $ tar xvjf python-2.6.6-r2.tbz2 $ cp -pri usr/ /
一応入れなおす。
$ sudo emerge --oneshot -avt =dev-lang/python-2.6.6-r2 上書きの警告が出る。 ... * This package will overwrite one or more files that may belong to other ...
2.7に変更する。
$ eselect python list $ sudo eselect python set --python2 2 $ sudo python-updater ${options} * Starting Python Updater... * Main active version of Python: 2.7 <= たぶんここが2.6だった。 * Active version of Python 2: 2.7 <= たぶんここが2.6だった。 * Active version of Python 3: 3.1 * Adding to list: app-admin/pessulus:0 ... 大量に続く。 ... >>> Emerging (1 of 78) app-emulation/emul-linux-x86-baselibs-20110129
trampは本体にあるので消す。
$ sudo emerge -Cav app-emacs/tramp $ equery files emacs | grep tramp | wc -l 25
確認して2.6を消す。
$ sudo emerge --depclean -av -p $ eselect python list $ sudo emerge --depclean -av
普通の更新コマンドを最初から。
$ sudo emerge --update --deep --newuse --verbose --tree --with-bdeps=y --ask world $ sudo emerge --depclean -av $ sudo revdep-rebuild ... * !!! /usr/lib64/python2.6/lib-dynload/_bsddb.so not owned by any package is broken !!! * /usr/lib64/python2.6/lib-dynload/_bsddb.so -> (none) ...
確認して消す。
$ equery belongs /usr/lib64/python2.6/lib-dynload/_bsddb.so [ Searching for file(s) /usr/lib64/python2.6/lib-dynload/_bsddb.so in *... ] $ equery belongs /usr/bin/less [ Searching for file(s) /usr/bin/less in *... ] sys-apps/less-436 (/usr/bin/less)
2.6のディレクトリは?
$ equery belongs /usr/lib64/python2.6 [ Searching for file(s) /usr/lib64/python2.6 in *... ] sys-libs/tdb-1.2.1 (/usr/lib64/python2.6)
再インストール。
$ sudo emerge --oneshot -avt =sys-libs/tdb-1.2.1
消えた。
$ equery belongs /usr/lib64/python2.6 [ Searching for file(s) /usr/lib64/python2.6 in *... ]
flashの更新をした。
http://labs.adobe.com/downloads/flashplayer10_square.html http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_2_p3_64bit_linux_111710.tar.gz $ ll ~/.mozilla/plugins/ 合計 0 lrwxrwxrwx 1 usui usui 36 2010-11-02 00:26:13 libflashplayer.so -> /home/usui/plugins/libflashplayer.so usui@amdgentoo ~ $ ll ~/plugins/ 合計 10360 -rw-r--r-- 1 usui usui 10606256 2010-11-17 09:10:13 libflashplayer.so
消した。
$ sudo rm -i /usr/lib64/python2.6/lib-dynload/_bsddb.so $ sudo revdep-rebuild -i
消した。なぜかroot権限では無いのでとりあえずsudo無しで消したら消えたのでびっくりした。
$ equery belongs /usr/lib64/python2.6/ [ Searching for file(s) /usr/lib64/python2.6 in *... ] $ ll /usr/lib64/python2.6/ 合計 28 drwxr-xr-x 3 usui usui 4096 2011-03-27 17:04:24 bsddb/ drwxr-xr-x 2 usui usui 4096 2011-03-28 06:23:43 lib-dynload/ drwxr-xr-x 2 usui usui 20480 2011-03-28 05:42:48 test/ $ rm -rf /usr/lib64/python2.6/
消した。
$ ll /usr/lib64/ | grep usui drwx------ 3 usui usui 4096 2011-03-28 06:00:38 mozilla/ $ equery belongs /usr/lib64/mozilla/ [ Searching for file(s) /usr/lib64/mozilla in *... ] $ rm -rf /usr/lib64/mozilla/
/usr/lib64/python2.6/のディレクトリがrootではなくなっていた、の関連で、
ディレクトリが一部rootではなくなっていた。操作したユーザーになっていた。
$ find /usr/ -user 1000 | grep -v /usr/local/ $ sudo chown root.root /usr $ sudo chown root.root /usr/share/ $ equery belongs /usr/share/mozilla $ sudo rm -rfi /usr/share/mozilla $ sudo chown root.root /usr/share/doc $ sudo chown root.root /usr/share/man $ sudo chown root.root /usr/share/man/man1 $ sudo chown root.root /usr/bin $ sudo chown root.root /usr/lib64 $ sudo chown root.root /usr/include/
他もおかしそうなので全部再インストールした。
# emerge -eav system # emerge -eav world
crossdevが失敗する。
* Emerging cross-glibc-headers ... * glibc failed :( * If you file a bug, please attach the following logfiles: * /var/log/portage/cross-i686-pc-linux-gnu-info.log * /var/log/portage/cross-i686-pc-linux-gnu-glibc-headers.log
/var/log/portage/cross-i686-pc-linux-gnu-glibc.log によればエラーはcrt1.oが無い。
/usr/libexec/gcc/i686-pc-linux-gnu/ld: crt1.o: No such file: No such file or directory
使用するバージョンを下げても関係なかったので少し新しいcrossdevを使用すると成功した。
$ sudo ACCEPT_KEYWORDS="~amd64" emerge --oneshot -av =sys-devel/crossdev-20110310 $ sudo crossdev -t i686-pc-linux-gnu --binutils 2.20.1-r1 --gcc 4.4.5 --kernel 2.6.36.1 --libc 2.11.3
自動で変わる。/etc/portage/package.mask
>cross-i686-pc-linux-gnu/binutils-2.20.1-r1 >cross-i686-pc-linux-gnu/gcc-4.4.5 >cross-i686-pc-linux-gnu/linux-headers-2.6.36.1 >cross-i686-pc-linux-gnu/glibc-2.11.3
使う側を書き換え。/etc/portage/package.mask
>sys-devel/binutils-2.20.1-r1 >sys-devel/gcc-4.4.5 >sys-kernel/linux-headers-2.6.36.1 >sys-libs/glibc-2.11.3同じバージョンにする前にdistccをoffにしたほうが安全。同じバージョンにした後に有効にする。
0 件のコメント:
コメントを投稿