LinuxSir.cn,穿越时空的Linuxsir!

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

[解决]麻烦大了,终止emerge后无法继续编译了

[复制链接]
发表于 2011-3-28 23:52:14 | 显示全部楼层 |阅读模式
以前经常这么干,emerge world的时候经常ctrl+c终止编译,然后再编译,没有出现过问题,但是今天问题来了。在下载glib的时候嫌下得太慢,想终止一下重新下载,然后停在这里不动了
>>> Emerging (1 of 1) dev-libs/glib-2.28.4

用ctrl+c终止后出现:
^CTraceback (most recent call last):
  File "/usr/lib64/portage/bin/lock-helper.py", line 27, in <module>


Exiting on signal 2
    rval = main(sys.argv[1:])
  File "/usr/lib64/portage/bin/lock-helper.py", line 19, in main
    lock_obj = portage.locks.lockfile(args[0], wantnewlockfile=True)
  File "/usr/lib64/portage/pym/portage/locks.py", line 138, in lockfile
    fcntl.lockf(myfd, fcntl.LOCK_EX)
KeyboardInterrupt

!!! select error: (4, 'Interrupted system call')
Traceback (most recent call last):
  File "/usr/bin/emerge", line 43, in <module>
    retval = emerge_main()
  File "/usr/lib64/portage/pym/_emerge/main.py", line 1773, in emerge_main
    myopts, myaction, myfiles, spinner)
  File "/usr/lib64/portage/pym/_emerge/actions.py", line 439, in action_build
    retval = mergetask.merge()
  File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1186, in merge
    rval = self._merge()
  File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1532, in _merge
    self._main_loop()
  File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1673, in _main_loop
    while self._schedule():
  File "/usr/lib64/portage/pym/_emerge/PollScheduler.py", line 104, in _schedule
    return self._schedule_tasks()
  File "/usr/lib64/portage/pym/_emerge/Scheduler.py", line 1707, in _schedule_tasks
    if q.schedule():
  File "/usr/lib64/portage/pym/_emerge/SequentialTaskQueue.py", line 55, in schedule
    task.start()
  File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 23, in start
    self._start()
  File "/usr/lib64/portage/pym/_emerge/MergeListItem.py", line 90, in _start
    self._start_task(build, self._default_final_exit)
  File "/usr/lib64/portage/pym/_emerge/CompositeTask.py", line 146, in _start_task
    task.start()
  File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 23, in start
    self._start()
  File "/usr/lib64/portage/pym/_emerge/EbuildBuild.py", line 87, in _start
    self._prefetch_exit(prefetcher)
  File "/usr/lib64/portage/pym/_emerge/EbuildBuild.py", line 137, in _prefetch_exit
    self._build_dir.lock()
  File "/usr/lib64/portage/pym/_emerge/EbuildBuildDir.py", line 57, in lock
    builddir_lock.wait()
  File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 40, in wait
    self._wait()
  File "/usr/lib64/portage/pym/_emerge/AsynchronousLock.py", line 77, in _wait
    self.returncode = self._imp.wait()
  File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 40, in wait
    self._wait()
  File "/usr/lib64/portage/pym/_emerge/AsynchronousLock.py", line 217, in _wait
    self.scheduler.schedule(self._reg_id)
  File "/usr/lib64/portage/pym/_emerge/PollScheduler.py", line 291, in _schedule_wait
    handler(f, event)
  File "/usr/lib64/portage/pym/_emerge/SpawnProcess.py", line 224, in _dummy_handler
    self._unregister_if_appropriate(event)
  File "/usr/lib64/portage/pym/_emerge/AbstractPollTask.py", line 61, in _unregister_if_appropriate
    self.wait()
  File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 41, in wait
    self._wait_hook()
  File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 123, in _wait_hook
    self._exit_listener_stack.pop()(self)
  File "/usr/lib64/portage/pym/_emerge/AsynchronousLock.py", line 207, in _proc_exit
    % (proc.returncode,))
AssertionError: lock process failed with returncode 1

在distfiles下面没有lock文件,google了一百遍啊一百遍都找不到答案。
发表于 2011-3-28 23:56:24 | 显示全部楼层
# cd /tmp
# tar jxvf /usr/portage/distfiles/portage-2.1.9.45.tar.bz2
# cd portage-2.1.9.45/bin
# ./emerge -av1 portage
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-29 00:10:26 | 显示全部楼层
Post by sipingal;2132541
# cd /tmp
# tar jxvf /usr/portage/distfiles/portage-2.1.9.45.tar.bz2
# cd portage-2.1.9.45/bin
# ./emerge -av1 portage


你的意思是叫我重新编译一下portage?
但是我的emerge对其他包都没有问题,用了--resume --skipfirst后升级继续进行啊。
回复 支持 反对

使用道具 举报

发表于 2011-3-29 03:17:26 | 显示全部楼层
lock 文件不在 distfiles 下,而在编译过程的临时目录下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-29 18:54:35 | 显示全部楼层
Post by adaptee;2132554
lock 文件不在 distfiles 下,而在编译过程的临时目录下


这个我也想到过,清空了/var/tmp/portage/目录下的所有文件,问题依然。
回复 支持 反对

使用道具 举报

发表于 2011-3-29 19:07:06 | 显示全部楼层
我从LZ的表述上看,现在是没有问题。

Post by flies;2132545
你的意思是叫我重新编译一下portage?
但是我的emerge对其他包都没有问题,用了--resume --skipfirst后升级继续进行啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-29 19:13:29 | 显示全部楼层
ok,今天突然发现,好了,都不知道为什么。
回复 支持 反对

使用道具 举报

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

本版积分规则

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