LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 672|回复: 7

portage中的texlive2011有些问题

[复制链接]
发表于 2011-8-3 09:44:02 | 显示全部楼层 |阅读模式
系统里只装了texlive-basic及相关的包,
执行updmap有如下错误:
  1. $ updmap
  2. Can't locate TeXLive/TLUtils.pm in @INC (@INC contains: /usr/share/tlpkg /etc/perl /usr/lib/perl5/site_perl/5.12.4
  3. /i686-linux /usr/lib/perl5/site_perl/5.12.4 /usr/lib/perl5/vendor_perl/5.12.4/i686-linux /usr/lib/perl5/vendor_perl
  4. /5.12.4 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.12.4/i686-linux /usr/lib/perl5/5.12.4
  5. /usr/local/lib/site_perl .) at /usr/bin/updmap line 18.
  6. BEGIN failed--compilation aborted at /usr/bin/updmap line 18.
复制代码

系统中好像没有/usr/share/tlpkg ,不知道这是怎么回事?

另外,如果升级包没有出现在world中,
但是与world中的包有依赖关系(world中的相应包并没有更新包),
这样的依赖包如何升级?
是不是要等到world中的包升级才会升级相应的依赖包?
发表于 2011-8-3 20:25:36 | 显示全部楼层
Post by easior lars;2145830

另外,如果升级包没有出现在world中,
但是与world中的包有依赖关系(world中的相应包并没有更新包),
这样的依赖包如何升级?
是不是要等到world中的包升级才会升级相应的依赖包?


  • 在emerge -u @world时加--deep(-D)即可;
  • 直接emerge该包。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-4 06:19:24 | 显示全部楼层

  • 在emerge -u @world时加--deep(-D)即可;


    这样的方法好像不适用于perl-cleaner吧?
    感觉依赖包的升级好像没有这么简单。


  • 直接emerge该包。

    这样做的话包就会被加入world吧?
    是不是要加--oneshot才好?
回复 支持 反对

使用道具 举报

发表于 2011-8-4 08:25:06 | 显示全部楼层
Post by easior lars;2145890
  • 在emerge -u @world时加--deep(-D)即可;


    这样的方法好像不适用于perl-cleaner吧?
    感觉依赖包的升级好像没有这么简单。

  • 直接emerge该包。

    这样做的话包就会被加入world吧?
    是不是要加--oneshot才好?


  • 这个与perl-cleaner有什么关系?
  • 关于依赖包的升级的方法,“信不信由你,反正我是信了。”
  • 对,直接emerge时要加--oneshot。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-4 10:16:16 | 显示全部楼层
Post by RichardGv;2145894

  • 这个与perl-cleaner有什么关系?

关于这个,问题是这样的,在不执行perl-cleaner之前,
实际上有很多与perl相关的更新包存在,但是不在world中,因而不会升级。
但是在执行perl-cleaner的时候,所有与系统中perl相关的依赖包都会被更新(记得上一次执行时共更新了200个左右的相关的包,但在更新world时,它们并没有被同时升级)。

而这个问题与texlive的关系是这样的,尽管没有完全安装texlive(它不再world中,而且应该只是个meta包),但是eix app-text/texlive的时候,会发现它处于的状态,由此,我就想到了依赖包升级的问题。

大侠,能不能帮我考虑一下与texlive有关的问题?
我感觉是texlive项目组的人在拆解ctan中的texlive2011时忘了修改updmap的脚本。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-4 18:32:05 | 显示全部楼层
今天升级texlive-core之后,updmap好了。

感谢。。。
回复 支持 反对

使用道具 举报

发表于 2011-8-4 21:38:48 | 显示全部楼层
Post by easior lars;2145907
关于这个,问题是这样的,在不执行perl-cleaner之前,
实际上有很多与perl相关的更新包存在,但是不在world中,因而不会升级。
但是在执行perl-cleaner的时候,所有与系统中perl相关的依赖包都会被更新(记得上一次执行时共更新了200个左右的相关的包,但在更新world时,它们并没有被同时升级)。


如果一个有新版本且未被mask的包在emerge -uD --with-bdeps y @world时没有被更新,那么它一定既不处于@world中,也不被@world中任何一个包所直接或间接依赖。这样的包在执行emerge -c时会被移除。

perl-cleaner的目的是修复perl本身版本升级所导致的一些perl module包的损坏,和revdep-rebuild相似,不过是针对perl modules。perl-cleaner只在dev-lang/perl版本变化时才需要执行。perl-cleaner所安装的并不是软件包的新版本,而是重新将原版本安装一次以修复其中的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-5 06:02:25 | 显示全部楼层
Post by RichardGv;2145941
如果一个有新版本且未被mask的包在emerge -uD --with-bdeps y @world时没有被更新,那么它一定既不处于@world中,也不被@world中任何一个包所直接或间接依赖。这样的包在执行emerge -c时会被移除。

perl-cleaner的目的是修复perl本身版本升级所导致的一些perl module包的损坏,和revdep-rebuild相似,不过是针对perl modules。perl-cleaner只在dev-lang/perl版本变化时才需要执行。perl-cleaner所安装的并不是软件包的新版本,而是重新将原版本安装一次以修复其中的问题。


前一部分非常同意你的看法。

至于perl-cleaner,我仍然认为不只会重新安装,实际上也会更新包,这是因为我的系统就经历过。其中的原因可能是perl的前几次版本升级没有执行过perl-cleaner,导致这一次版本升级时所累积的错误需要安装新包来解决。
回复 支持 反对

使用道具 举报

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

本版积分规则

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