2012.09

09.07 glproto-1.4.6 明明装了,可是装 mesa 的时候提示找不到 glproto,提示 PKG_CONFIG_PATH 的问题,尼马,这货我可从来没有 export 过。后来想了想,试着删除 pkgconf 改装旧版的 pkgconfig,问题解决。
09.07 可以欺骗 emerge 己安装了该软件,这办法可用来 block 一些你觉得明明不该需要的依赖,例如:
cat /etc/portage/profile/package.provided
net-misc/curl-7.26.0
dev-cpp/libcmis-0.1.0
以上两个,是被版本锁定了不能升级,于是我在这里把版本号输进去,然后手动去更新到最新版。
这次没有提示 emerge @preserved-rebuild
尼马,下午在搞这个升级锁定的时候,居然出现了为 dev-libs/mpc-1.0 重新编译 gcc-4.6.3 的扯淡事。
09.07 这个该死的包需要升级,但 ebuild 里面又瞎写了两句 rm 不存在的东西,导致编译成功之后安装失败,修改它
ebuild ./util-linux-2.22.ebuild digest
ebuild ./util-linux-2.22.ebuild merge
这样编译成功,ebuild 的好处是可以接着断掉的部分继续编译(以上 merge 就行)。
网上另抄了一句,ebuild xxx.ebuild compile install qmerge clean
09.08-00:04
运用以上的 ebuild digest 的办法,想起来 xchm 1.21 虽然前几天放出更新了,但源里还是一年前的 1.20,于是做如下动作,
cd /usr/portage/app-text/xchm
cp xchm-1.20.ebuild xchm-1.21.ebuild
nano ./xchm-1.21.ebuild
进去里面看到一句,
SRC_URI=”mirror://sourceforge/xchm/${P}.tar.gz”
想了想,前面也有没有指定 P 这个变量,于是估计它就是 ebuild 文件名,事实证明,反正是不管它。(它不验证源码包的值)
也就是说,以上只做了复制 ebuild 重命名的工作,然后我之前手动下载了 1.21 的源码包放在 /usr/portage/distfiles 底下,直接执行
ebuild ./xchm-1.21.ebuild digest
ebuild ./xchm-1.21.ebuild merge
就成了。
xchm 这货还是看不了俺那个神级 chm,曾经,n 年前只有一个 gnochm 可以做到。后来出现了新开发的 sb chmsee 要更新换代一统江湖赶紧给它 ppa,后来这货早就停止开发了,后来我又曾经在 freebsd 底下重见 gnochm 的容颜。后来,也就是 n 年后的今天,竟然找不到一个可用的 chm 查看器,于是使用 kchmviewer,编过 okular 让它支持 chm,但是太渣了。
xchm 居然死了一年又发了个新版本,终究是件令人欣慰的事。
我基本上是完完全全不看 chm,但知道有个神级 chm 在那里,在 linux 底下编码不能正确识别。这些年沧海变迁,就是想说,傻逼。
09.08-00:24 今天,也就是昨天做的事比较多,早上在研究 gcc-4.7.1 不能编译成功的原因最后居然是 tmpfs 2g 不够,后来就用新的 gcc-4.7.1 编译了一下午一晚上,最后是系统更到最新,外加 kde 也升到 4.9.1。我好像是之前有一个来月没升级 world。
09.08 上回搞了几天 cups-pdf 居然没成功,傻逼阿,而且 cups 这货还不能彻底用 use 去掉,google-chrome 就有依赖,然后发现在
/etc/portage/profile/package.provided 里面添加
net-print/cups-1.6.1
net-print/cups-filters-1.0.23-r1
app-text/ghostscript-gpl-9.06
之后卸载它们,就没有 emerge @preserved-rebuild 之类的提示了。
但还是不行,虽然没上面的缺失提示,但 google-chrome 不能启动,opera 也不能打印 pdf 了,于是只能去掉上面的 cups 那行,重新装上。firefox pdf 就不依赖 cups!
09.09 下载了一个 draftsight rpm,解压之后 cp 到系统,执行提示 libaudio.so.2 不存在,我看了一下 /usr/lib/ 果然没有相关文件,于是查了一下,需要装 media-libs/nas,一共 8 个依赖装上去,装完是有了,可是提示依旧,于是想这玩意儿应该是需要 32 配套。
然后只能网上下载了 nas-1.8-4.el4.i386.rpm 来解压使用。只下载了这么一个,装了就能用 draftsight。怎么看这都是瞎依赖嘛!
我想知道,如何编译 32 位到 /usr/lib32 里面,而不是整个网站上找,和下载解压,还是用之前我提到的 chroot 或者 crossdev?
另外一件事就是,如果不是用 debian 系,下载二进制包最好下载 rpm 的比较通用。另外,在 gentoo 里面用 rpm -i 或者 dpkg -i 虽然可行,但不能用它们卸载!尤其是怀疑 dpkg -r!这货会造成系统坏掉!!我当时莫名其妙地坏了两次,但不想再试试,去明确是 dpkg 还是 rpm 造成。
—————————
上面提到编译 32 位程序的问题,找到两篇答案(chroot/crossdev 也是一种方法)
使用 multilib
http://www.gentoo.org/proj/en/base/amd64/howtos/chroot.xml
http://wiki.gentoo.tw/index.php/AMD64_32bitCompatibility
方法就是,(确保)你的 gcc 有 multilib 的 USE 支持。默认肯定是支持。
然后在 /etc/make.conf 里面,临时对开头的 CFLAGS/CXXFLAGS 这两行添加 -m32 选项。至于 -m64 肯定不需要添加啦。
或者执行 emerge 前先
export CFLAGS=’-m32′
export CXXFLAGS=’-m32′

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s