LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: suran

libpng的问题

[复制链接]
发表于 2010-5-11 16:29:57 | 显示全部楼层
我升级libpng后若干个package出错,桌面崩溃,然后就重新 emerge 100+个package从中午到晚上还是不行;gnome-panel 不出来就是 bug budy 关了又来一个。
按这个简单的方法几分钟就好了。

有的package 用了1。4,多数用1。2。r1可能有bug而导致问题,r2和1。4若占同一slot就不能并存而导致问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-11 18:02:28 | 显示全部楼层
今天办公的主机sync了一下,重新revdep-rebuild居然没有碰到任何问题了.
一共51个包重新emerge,我用的WM/awesome
回复 支持 反对

使用道具 举报

发表于 2010-5-11 18:38:19 | 显示全部楼层
Post by pdfan;2089395
我升级libpng后若干个package出错,桌面崩溃,然后就重新 emerge 100+个package从中午到晚上还是不行;gnome-panel 不出来就是 bug budy 关了又来一个。
按这个简单的方法几分钟就好了。

有的package 用了1。4,多数用1。2。r1可能有bug而导致问题,r2和1。4若占同一slot就不能并存而导致问题。

更改了不同的slot以后。r2和1.4.2无法同时成功安装。在替换几个linpng*的时候,会出现冲突。

目前测试过,只有r1版本和1.4.2,才可以共存。
回复 支持 反对

使用道具 举报

发表于 2010-5-11 20:11:58 | 显示全部楼层
to 溺水三千:
我刚才也升级了一下,嘛问题都没碰到;我也有用ibus。你之前的python问题可能是某个USE参数变化影响的,不知道emerge -NuD world能否解决。

-------------------------------------------------------------------------------------------------------
对了,也说不准是ccache影响;如果真是这样就头大了,不管是revdep-rebuild还是emerge -NuD world都查不出问题了
回复 支持 反对

使用道具 举报

发表于 2010-5-11 20:37:32 | 显示全部楼层
Post by leisudong;2089437
to 溺水三千:
我刚才也升级了一下,嘛问题都没碰到;我也有用ibus。你之前的python问题可能是某个USE参数变化影响的,不知道emerge -NuD world能否解决。

-------------------------------------------------------------------------------------------------------
对了,也说不准是ccache影响;如果真是这样就头大了,不管是revdep-rebuild还是emerge -NuD world都查不出问题了


悲剧了。是否为ccache的问题,我还真没实验过。
回复 支持 反对

使用道具 举报

发表于 2010-5-11 21:24:15 | 显示全部楼层
经历了lafilefixer --justfixit,revdep-rebuild,重装了十几个包,只有emacs和texlive-core算是大包,删除了pidgin,顺利度险
回复 支持 反对

使用道具 举报

发表于 2010-5-12 09:51:58 | 显示全部楼层
看來不是只有我出事情了。。
1.2和1.4可以同時安裝么?
我昨天手動的把libpng14 鏈接為 libpng12 部分軟件還有問題。。
回复 支持 反对

使用道具 举报

发表于 2010-5-12 12:40:12 | 显示全部楼层
gentoo 提供了一個 shell script /usr/sbin/libpng-1.4.x-update.sh
  1. $ cat /usr/sbin/libpng-1.4.x-update.sh
  2. #!/bin/bash
  3. echo "Run revdep-rebuild before this. This brute force script fill rename"
  4. echo "rest of -lpng12 and libpng12.la entries in your systems .la files."
  5. [[ -d /usr/lib64 ]] && lib_suffix=64
  6. libdir=/usr/lib${lib_suffix}
  7. find ${libdir} -name '*.la' | xargs sed -i -e '/^dependency_libs/s:-lpng12:-lpng14:'
  8. find ${libdir} -name '*.la' | xargs sed -i -e '/^dependency_libs/s:libpng12.la:libpng14.la:'
  9. # WTFPL-2
复制代码
run 之前看清楚 echo 的兩行


我的 revdep-rebuild 後剩 5 個 failed,nm-applet 之類的,/usr/sbin/libpng-1.4.x-update.sh 後就沒問題了
回复 支持 反对

使用道具 举报

发表于 2010-5-12 12:55:11 | 显示全部楼层
發現1.2和1.4是可以同時安裝的。。
解決了一些軟件依賴於1.2,一些軟件依賴於1.4的問題。
emerge -av libpng:1.2
然後手動鏈接1.2庫到/usr/lib/libpng12.so.0
回复 支持 反对

使用道具 举报

发表于 2010-5-12 15:24:59 | 显示全部楼层
libpng-1.4 起初并没有删除png12的库(所以有人说两个版本可以共存),
11日更新的ebuild在remerge libpng后系统里就没有png12的库了。
此时grep "png12" /usr/lib/*.la 和 revdep-rebuild -L /usr/lib/libpng12.so.0 -pv 并不能解决问题。
借鉴以前expat、libdirect的做法:
  1. #!/bin/bash
  2. packages="emerge -D --oneshot "
  3. for dir in /var/db/pkg/*; do
  4.     if [[ -d ${dir} ]]; then
  5.         for package in ${dir}/*; do
  6.             if [[ -d ${package} ]]; then
  7.                 if [[ -e ${package}/NEEDED && -f ${package}/NEEDED ]]; then
  8.                     if grep "libpng12.so" "${package}/NEEDED"; then
  9.                         packages="${packages} =${package#/var/db/pkg/}"
  10.                         echo ${package}
  11.                     fi
  12.                 fi
  13.             fi
  14.         done
  15.     fi
  16. done
  17. echo ${packages}
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表