QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1108|回复: 6

更新后的 smart 在读取安装某些包时出错(已解决)

[复制链接]
发表于 2006-6-9 17:25:23 | 显示全部楼层 |阅读模式
比如搜索per-DBI和mozilla-devel,信息可以找到,但不能安装,我用其它方式下载这两个包正常安装,smart报错如下:

Traceback (most recent call last):

  File "/usr/lib/python2.4/site-packages/smart/interfaces/gtk/interactive.py", line 337, in <lambda>
    lambda x, y: self._pi.setPackage(y))

  File "/usr/lib/python2.4/site-packages/smart/interfaces/gtk/packageinfo.py", line 300, in setPackage
    for url in info.getURLs():

  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 81, in getURLs
    return [os.path.join(url, self._loader.getFileName(self))]

  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 507, in getFileName
    filename = h[CRPMTAG_FILENAME]

TypeError: unsubscriptable object
发表于 2006-6-9 19:44:53 | 显示全部楼层
我安装 perl-DBI 成功, mozill-devel 太大,俺用 apt 就象蜗牛,无法测试。
查 google 的结果如下:

TypeError: unsubscriptable object
This Error Reference applies to:   Any version.     
This Error Reference is intended for:   Any audience.   
"Type Error: unsubscriptable object" occurs in an Archetypes based object after pressing the save button of the base_edit form.
The above error occurs in Archetypes and rely on a bad naming of a field in the schema of the archetypes based class.
For example it results in this error:
if the name contains spaces, special characters, etc.,
if the name is a reserved word (like roles, portal, ...)
other naming-conflicts.

楼上可如下改一下 /usr/lib/python2.4/site-packages/smart/backends/rpm/header.py 的 507 行,在命令行下运行  smart install mozilla-devel 或 perl-DBI ,看看错误输出。
[code:1]
    try:
        filename = h[CRPMTAG_FILENAME]
    except TypeError:
        print "TypeError, h: ", repr(h)
        filename=None
[/code:1]
注意 try、except 要与下面的 if not filename: 对齐。
回复

使用道具 举报

发表于 2006-6-9 20:35:37 | 显示全部楼层
我试了,也正常。
回复

使用道具 举报

 楼主| 发表于 2006-6-9 21:29:34 | 显示全部楼层
smart install perl-DBI
Traceback (most recent call last):
  File "/usr/bin/smart", line 194, in ?
    main(sys.argv[1:])
  File "/usr/bin/smart", line 167, in main
    exitcode = iface.run(opts.command, opts.argv)
  File "/usr/lib/python2.4/site-packages/smart/interface.py", line 53, in run
    result = _command.main(self._ctrl, opts)
  File "/usr/lib/python2.4/site-packages/smart/commands/install.py", line 91, in main
    ctrl.reloadChannels()
  File "/usr/lib/python2.4/site-packages/smart/control.py", line 285, in reloadChannels
    self.rebuildSysConfChannels()
  File "/usr/lib/python2.4/site-packages/smart/control.py", line 258, in rebuildSysConfChannels
    channel = createChannel(alias, data)
  File "/usr/lib/python2.4/site-packages/smart/channel.py", line 160, in createChannel
    smart = __import__("smart.channels."+type)
  File "/usr/lib/python2.4/site-packages/smart/channels/apt_rpm.py", line 22, in ?
    from smart.backends.rpm.header import RPMPackageListLoader
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 508
    filename = h[CRPMTAG_FILENAME]
           ^
IndentationError: expected an indented block
回复

使用道具 举报

 楼主| 发表于 2006-6-9 21:35:15 | 显示全部楼层
如果不在smart-gui里尝试,用指令在没有修改header.py代码前可以安装,但给出这样的错误:

警告: 配置在只读模式!
警告: 组件 'experimental' 不在源 'Magic Linux 2.0 APT Os Repo
sitory' 的分发文件里
警告: 组件 'experimental' 不在源 'Magic Linux 2.0 APT Os Repo
sitory' 的分发文件里
警告: 组件 'experimental' 不在源 'Magic Linux 2.0 APT Os Repo
sitory' 的分发文件里
警告: 组件 'experimental' 不在源 'Magic Linux 2.0 APT Experim
ental Repository' 的分发文件里
警告: 组件 'updates' 不在源 'Magic Linux 2.0 APT Os Repositor
y' 的分发文件里
更新缓存...                                               (
更新缓存...                                               (
更新缓存...                                               (
更新缓存...                                               (
更新缓存...                 #                             (
更新缓存...                 #                             (
更新缓存...                 #                             (
更新缓存...                 ##                            (
更新缓存...                 ##                            (
更新缓存...                 ##                            (
更新缓存...                 ##                            ( 1
更新缓存...                 ###                           ( 1
更新缓存...                 ###                           ( 1
更新缓存...                 ###                           ( 1
更新缓存...                 ####                          ( 1
更新缓存...                 ####                          ( 1
更新缓存...                 ####                          ( 1
回复

使用道具 举报

发表于 2006-6-9 22:22:22 | 显示全部楼层
那是源的设置问题。不是出错。
回复

使用道具 举报

 楼主| 发表于 2006-6-10 08:57:18 | 显示全部楼层
到底哪里出问题不得而知,最后删除

/var/lib/smart
/usr/lib/smart
/etc/smart
/usr/lib/python2.4/site-packages/smart

重新下载smart包(没搞懂会不会上次下载时有错),然后重装smart后正常了。

没搞懂是否是没有删除smart直接updat安装导致smart部份更新?
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-24 19:00 , Processed in 0.043297 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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