+ -
当前位置:首页 → 问答吧 → pacman升级到3.4后makepkg出错 [已解决,把cw卸了就好了]

pacman升级到3.4后makepkg出错 [已解决,把cw卸了就好了]

时间:2010-06-24

来源:互联网

最新的pacman-3.4.0-2-i686.pkg.tar.gz,makepkg打包软件过程中出错导致失败:
代码:
/usr/bin/makepkg: line 902: * 1024 : syntax error: operand expected (error token is "* 1024 ")
pacman 3.3.3版本没有问题,打包正常。

3.4.0版本的/usr/bin/makepkg 902行是:
代码:
size="$(( ${size%%[^0-9]*} * 1024 ))"
3.3.3版本的/usr/bin/makepkg第902行是:
代码:
local size=$(du -sk | awk '{print $1 * 1024}')
是bug吗,还是我自己的配置问题,请高手看看,多谢了!

作者: davidlone   发布时间: 2010-06-24

将翻译文件换成原来3.3.3版的就ok了
在英文环境下没这个问题的

作者: 沙漠之子   发布时间: 2010-06-24

用makepkg前先export LC_ALL=C吧

作者: yafeng   发布时间: 2010-06-24

唉,怎么每次中文都杯具阿。。。

作者: xiaohuli1239   发布时间: 2010-06-24

问甘露啊,他负责的。

作者: zhuqin_83   发布时间: 2010-06-24

我查查怎么回事,好像是一个%s之类出了错误。

作者: ganloo   发布时间: 2010-06-24

但是我在po文件里根本没有发现这个句子,甚至连个相像的都没有。

作者: ganloo   发布时间: 2010-06-24

你makepkg的参数是什么?

作者: ganloo   发布时间: 2010-06-24

记得以前也提示过这个错误,后来就像前面说的那样设置语言环境可以暂时解决,可能又是像上次那样的翻译问题

作者: axlrose   发布时间: 2010-06-24

原因是 gettext 命令行貌似不支持类似于 %2$ 这样的表示参数位置的特殊符号。在 pacman 的中文 po 中就有一些这样的符号。需要把这些符号去掉,然后调整中文语序就可以了。

我已经给维护者发邮件了。

作者: tocer   发布时间: 2010-06-24

可能不光是这样,因为我测试中,-c参数是没有问题的,而 -sifr 参数会出现
引用:
==> 完成创建:plymouth-git 20100624-1 (2010年 06月 24日 星期四 15:48:46 CST)
> /usr/bin/makepkg: line 93: printf: `$': invalid format character
这样的错误,跟1楼的出错信息又有所不同,但软件包似乎是正确创建了的,待我问问pacman的开发者。

作者: ganloo   发布时间: 2010-06-25

引用:
作者: tocer
原因是 gettext 命令行貌似不支持类似于 %2$ 这样的表示参数位置的特殊符号。在 pacman 的中文 po 中就有一些这样的符号。需要把这些符号去掉,然后调整中文语序就可以了。

我已经给维护者发邮件了。
我已经修改了所有这样的翻译,但是错误还是在,是另外的问题吗?你可以试试附件,这是已经修改过的翻译。
上传的附件
pacman.zh_CN.po.tar.gz (15.4 KB, 3 次查看)

作者: ganloo   发布时间: 2010-06-25

引用:
作者: ganloo
我已经修改了所有这样的翻译,但是错误还是在,是另外的问题吗?你可以试试附件,这是已经修改过的翻译。
我使用 make -sifr 没有发现问题。

作者: tocer   发布时间: 2010-06-25

看看。。。。。。。。。。。。。。。。。。。。。。

作者: 李明_   发布时间: 2010-06-25

重新试了一下,没有问题了。着急的可以用附件的翻译文件,直接解压到/usr/share/locale/zh_CN/LC_MESSAGES/,覆盖原pacman.mo即可。
上传的附件
pacman.mo.tar.gz (17.2 KB, 5 次查看)

作者: ganloo   发布时间: 2010-06-25

还有一个问题,verbose不要翻成循环之类的啊,明明是详细信息或者详述。

作者: zhuqin_83   发布时间: 2010-06-25

http://bugs.archlinux.org/task/19932
http://bugs.archlinux.org/task/19865
找到两个类似的
安装了cw后which du输出就成了/usr/lib/cw/du,应该就是/usr/lib/cw/du导致了问题。
然后我就把cw删了,然后就好了。

谢谢各位的热心。

作者: davidlone   发布时间: 2010-06-26

引用:
作者: zhuqin_83
还有一个问题,verbose不要翻成循环之类的啊,明明是详细信息或者详述。
fixed for next version.

作者: ganloo   发布时间: 2010-06-26