红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Ubuntu

Ubuntu从源升级的一点心得

发布时间:2007-09-24 21:08:32来源:红联作者:orbirds
  使用Ubuntu,从5.10 Breezy到6.06 Dapper, 6.10 Edgy, 7.04 Feisty一路走来,每次都是直接从源升级,因为update-manager对我来说太慢了,算是有了一点点经验吧,不成系统,仅供参考。

  速度与耐心
  升级的下载速度和处理速度都要耗费大量时间,最好有一个快点的源,关掉其他任务,以提高效率。

  vi /etc/apt/source.list
  sudo aptitude update
  sudo aptitude upgrade
  sudo aptitude install
  sudo aptitude dist-upgrade

  aptitude带上install, upgrade, dist-upgrade要多运行几遍,确认确实没有问题了再重启,有的时候第一次运行未必就能把所有软件更新到最新。

  另外aptitude和apt-get可以来回混着用用,这两个软件看似相似,又似乎有一些不太一样的地方,有时候这个卡住了,用那个就可以继续。

  一般认为aptitude比apt-get能够更好的解决包依赖性问题,不过有的时候我们的确需要绕过依赖关系,这时候用哪个就自己尝试喽。

  老大难的Python
  Ubuntu中最难升级的不是内核(别人都编译好了的嘛),而是Python,每次升级都会遇到和Python相关的一大堆依赖性问题,处理方式主要有两种:

  通过aptitude install指定安装部分python包,这样依赖性关系更好解决一些,处理完一部分,再处理另外一部分就轻松些了。aptitude提示删除的时候要小心一些,如果是正常删除旧包用新的替代还好,有时候遇到难解决的问题经常让你删了xserver或者ubuntu-desktop什么的,一般不要同意。python版本升级会带来更大的灾难,实在没办法的时候可以考虑修改/usr/bin/python,这个文件是一个链接文件,如果他是指向python2.5,那么就修改为python2.4试试,反正升级完成之后再修改回来,有的时候包升级的顺序不同,会导致青黄不接的情况,需要把python暂时降级。

  配置文件尽量单独保存
  这样在升级的时候不容易被覆盖,同时把自己的个性设置和系统默认设置分开,管理起来更方便。

  及时删除不用的内核版本
  本身不影响使用,就是升级的时候影响处理速度,反正也没用了,干嘛不删,注意当前正在使用的内核版本不要删除。

  敢于拔掉钉子户
  有些包有着乱绕或者互锁的依赖性关系,无法处理的时候不妨删除一个试试,不过最好记下来包的名字方便以后查找问题,另外一些关键的包比如apt, aptitude, dpkg, tar, zip什么的千万别删。

  不要傻等
  如果出现:
  Resolving dependencies...
  Open:5953; closed: 4999; defer: 0; conflict: 11
  No solution found within the allotted time. Try harder? [Y/n]

  这样的文字,提示在指定的时间内没有找到解决依赖性问题的方案时,趁早用其他的方式吧,如果你回答Y,不仅要不厌其烦的等待下一次提示,而且找到天亮也找不出方案来。

  零敲碎打
  永远不要太着急,装上一个是一个,更新一个是一个,问题需要一个一个的解决。

  最好还能有另外一台能用的电脑,这样即方便查一些包的资料,还能打发升级中的空闲时间。

  学会“忘记”
  有时候走进依赖陷阱之后,动弹不得,安也不让,卸也不让,实在没法作什么了,试试:

  cd /var/lib/dpkg
  mv status status.bak
  touch status

  然后再继续upgrade什么的,系统就会忘记以前已经成为死套的依赖性问题,重新开始计算了。不过此招慎用,文件删除之后,系统要把所有已经安装过的程序全部都configure一遍,极其耗时。

  其实真正起作用的,是这个文件中和结成死套的那几个包相关的内容,用vi编辑,把那几个包的内容删除就可以了,注意备份。
文章评论

共有 1 条评论

  1. chiyb 于 2010-04-24 00:55:47发表:

    Ubuntu是一款非常优秀的Linux操作系统,近年来日渐成熟。Linux世界中有很多工具,本文将介绍Ubuntu中的工具Darkstat。 Darkstat是一款网络统计数据收集程序。它以后台进程的形式运行于cable/DSL路由器上,并通过HTTP提供服务。

      在Ubuntu中安装Darkstat

      安装Darkstat,可以命令行方式运行:
      sudo apt-get install darkstat

      完成安装后,你需要编辑/etc/darkstat/init.cfg文件:
      sudo gedit /etc/darkstat/init.cfg

      然后,要将START_DARKSTAT=no改为START_DARKSTAT=yes

      最后,用下面的命令启动darkstat:
      sudo /etc/init.d/darkstat start

      启动了Darkstat进程后,如果你想查看网络通信统计数据,请进入这个地址:http://youripaddress:666

      Darkstat的功能
      在打开http://youripaddress:666之后,你会看到darkstat的屏幕界面:

      其中,通过hosts screen(主机屏幕)可以看到所有参与通信的计算机。可以根据进入的数据量(In)、输出的通信量(Out)、总的通信量(Total)、主机名(Hostname)以及主机的IP地址来对计算机进行排序。(出于安全考虑,笔者擦掉了IP地址。)

      通过Ports screen(端口屏幕),可以看到服务器和客户端应用程序所使用的端口。在这里,可以看出有两个进程Darkstat和HTTP分别使用端口666和80。

      在Protocols Screen(协议屏幕)中,可以看出系统使用的用于文件传输的协议。

      在Graphs Screen(图像屏幕)中,可以看出一段时间以来的通信统计数据。

      总之,如果你的Ubuntu系统的通信细节,例如,你想要了解进入和输出端口的通信等,这个工具还是较为实用的。