Ubuntu升级内核时出现依赖关系问题?

一个新用户经常问到的问题:“该将哪个Debian镜像发布站点加入source.list文件?”。有很多方法来选择镜像发布站点,专家们可能会写一个脚本去测试 不同站点的ping时间。不过其实有一个程序可以帮你: netselect

不带参数运行它时会显示它的帮助信息。运行它时加上以空格分隔的镜像主机列表, 它会返回一个分值和列表中的一个主机名。这个分值通过评估ping时间和hops数(一 个网络请求报文到达目标主机所经过的转发主机的个数)得出,它与镜像站点预计下 载速度成反比(数值越小越好)。返回的主机名是主机列表中得分最低的那个(查看列 表中所以主机的得分情况可使用-vv选项)。看出下的例子:

它表示,在netselect后列出的所有主机中,ftp.debian.org.br是下载速 度最快的主机,其得分为365。(注意!!这是在我电脑上的测试结果,不同的网络 节点网速会大不相同,所以这个分值不一定适用于其它电脑)

现在将netselect找到的连接速度最快的镜像站点加入/etc/apt/sources.list文件(参考)并按照中的技巧来做。

如果你用APT从CD-ROM上安装及升级软件包,你可以将它加入到sources.list文件中。完成该操作,可使用apt-cdrom程序:

将Debian光盘放入光驱,它将加载光盘目录,并在光盘上查找软件包信息。如果你 的光驱需要额外设置,可使用以下选项:

你还可以扫描一张光盘,但不将其加入列表:

注意,只有当你在系统的/etc/fstab中正确设置了光驱后,该程序才会工作。

PPA:Ubuntu里,PPA代表一种非稳定版本到发布,喜欢尝试鲜到人一般会加入很多PPA源。

介绍两个命令,用于添加和删除PPA源

下列apt-get选项也许对你有用:

-d 只下载——不安装或解压档案 -f 即便完整性检查失败了仍然继续 -s 不做什么。只是按顺序模拟 -y 对于所有问题都假定为Yes,不询问 -u 显示一系列已经将要更新的包
可以用一条命令安装多个软件包。包文件从网络上下载到本地 /var/cache/apt/archives目录,稍后再安装。

你可以用同样的命令行删除指定软件包,只需在软件包名称后紧跟一个“-”,如下所示:

假如你不小心损坏了已安装的软件包而想修复它,或者仅仅想重新安装软件包中某 些文件的最新版本,这是可以做到的,你可以用如下的--reinstall选项:

上例中运行apt-get会删除指定软件包以及与之有依赖关系的软件 包,但它们的配置文件,如果有的话,会完好无损地保留在系统里。如果想彻底删 除这些包及其配置文件,运行:

软件包更新是APT最成功的特点。只需一条命令即可完成更新: apt-get upgrade。你可以使用这条命令从相同版本号的发布版中更新 软件包,也可以从新版本号的发布版中更新软件包,尽管实现后一种更新的推荐 命令为apt-get dist-upgrade 在运行该命令时加上-u选项很有用。这个选项让APT显示完整的可更新 软件包列表。不加这个选项,你就只能盲目地更新。APT会下载每个软件包的最新 更新版本,然后以合理的次序安装它们。注意在运行该命令前应先运行 apt-get

本地软件库会不断膨胀占用大量硬盘空间,幸运的是,APT提供了工具来管理本地 软件库:apt-getclean方法和autoclean方法。

以root省份运行dselect,在dselect中选好了软件包后,运行:

 # apt-get -u dselect-upgrade
我们看到在前例中许多软件包被安装是其它软件包“推荐”或“建议”的结果。另外一 些软件包被安装或删除(例如lbxproxy软件包)是我们通过dselect工具作出的决定。 由此可见dselect与APT结合起来将是一个功能强大的工具。

dselect工具帮助用户选取想要安装的Debian软件包。它有点复杂甚 至令人望而生厌,但经过实践你就能掌握它恐怖的终端界面。

dselect高级功能之一就是它知道利用Debian软件包的“推荐”和“建议”能力。

人们有时会对这种情况有兴趣——使用一个版本的Debian作为其主发行版,但从另一 个分支上安装一个或多个包。

其中version是你希望作为主发行版使用的Debian版本。你可以使用的 版本有stabletestingunstable。 要从另外一个版本中安装软件包,你必须按照如下方式执行APT:

为了使其可以个工作,在你的/etc/apt/sources.list中至少有一行 是关于你要使用的那个版本的,而且要使用的软件包也必须存在于该版本中。

你也可以要求使用某个特定把本的软件包,如下所示:

例如,下面的命令将会安装2.2.4-1版的nautilus软 件包:

如何从Debian的专用版本下升级软件包

apt-show-versions提供了一个安全的途径,让那些使用混合系统的 用户放心升级他们的系统,不必担心升级会将原来属于stable的包升级成了unstable包。 例如,在安装了apt-show-versions软件包之后, 使用这条命令将只升级你的unstable软件包:

我们从apt-cache开始,APT系统使用 这个程序来维护它的数据库。

假设你十分怀念玩Atari 2600的好日子,你决定用APT安装一个Atari emulator, 随后再下载几个游戏,你可以这样:

想进一步获得某个软件包的 详细信息,你可以运行:

注意,首先列出的是可用软件包,接着列出的是已安装软件包。获取某个软件包的 常规信息可运行:

如果仅想了解某软件包的与哪些软件包关联,可运行:

使用dpkg查找软件包名称

另一个定位软件包的方法是知道软件包中某个关键文件的名称。例如,你编译时需 要某个“.h”头文件,查找提供该文件的软件包,你可以运行:

了解系统中已安装软件的软件包名称十分有用,譬如当你想清理硬盘空间时,可以运行:

如何“按需”安装软件包

你正在编译某段程序,突然,停住了!一条错误信息报告说你没有它需要的.h头文件。让auto-apt来救你吧,它问你是否要安装需要 的软件包,然后挂起编译进程,安装好软件包后再恢复编译进程。

这里“command”指在运行过程中可能出现“需求文件不存在”问题的命令。例如:

一会儿,它就会告诉你要安装所需的软件包并自动转到apt-get处理。如果你正在 运行X,就会一个图形界面提示窗口。

如何知道文件属于哪个软件包

如果你想安装某个软件包,但用apt-cache查不出它的名称,不过你 知道这个程序的文件名,或这个软件包中某些文件的文件名,那么你可以用apt-file来查找软件包名称。如下所示:

它用起来很象dpkg -S,不过它还会列出包含该文件的已删除软件包。它 也可以用来查找哪个软件包包含编译时所缺的文件,当然,解决这类问题auto-apt可能是更好的方案,

用这个命令,你可以列出软件包的内容:

apt-file用一个数据库来存放所有软件包的内容信息,和auto-apt 一样,这个数据库也需要实时更新,完成更新可以运行:

如何掌握软件包的变化情况

在每个软件包被安装以后,都会在文档目录(/usr/share/doc/packagename) 生成一个changelog.Debian.gz的文件,这个文件记录了该软件包最后一 次更新对系统做了哪些修改,你可以用zless阅读这些信息。不过当你对 整个系统进行升级以后,逐个查看软件包的更新信息可不是件容易事。

有一个工具能帮你完成这项任务,它就是apt-listchanges。首先你 要装上apt-listchanges软件包。在安装的过程中,为了进行配 置,Debconf会问你一些问题,按你的要求回答它们就行了。

第一个问题是问你希望apt-listchanges如何来显示修改日志。你可以让它把信息 通过邮件的方式发送给你,这对于自动更新是非常有用的。或者你可以让它在less等程序中显示修改日志,这样在继续升级前你就可以查看它们了。如果 你不希望apt-listchanges在升级的时候自动的运行,可以 回答none

安装了apt-listchanges后,每当apt下载软件包之后(不论来源是Internet、光盘 或是硬盘)都会显示这些软件包的系统更新信息。

用下面的命令下载源码包:

通常会下载三个文件:一个.orig.tar.gz、一个.dsc和一个.diff.gz。对于Debian专用的软件包,不会下载最后一个文件,第一个文件的文 件名中没有“orig”项。

想要下载的源码包自动编译成软件包,只需在命令行中加上-b,如下:

 编译源码包所需的软件包

通常,编译源码包时要用到某些头文件和共享库,所有的源码包的控制文件中都 有一个域“Build-Depends:”,域中指出了编译该源码包需要哪些附加包。

APT提供了一个简单的方法下载这些附加包,你只需运行apt-get build-dep package,其中“package”就是你打算编译的源码包 名称。见下例:

如果在安装过程中出现中断,然后你发现该软件包既不能重装又不能删除,试试下 面两个命令:

再试着安装那个软件包,如果不行再次运行上述命令后再试。这两个命令对于那些 使用unstable的玩家非常有用。

注:aptitude 没有,它会自动解决这件事

  • apt-get autoclean - 如果你的硬盘空间不大的话,可以定期运行这个程序,将已经删除了的软件包的.deb安装文件从硬盘中删除掉。如果你仍然需要硬盘空间的话,可以试试apt-get clean,这会把你已安装的软件包的安装包也删除掉,当然多数情况下这些包没什么用了,因此这是个为硬盘腾地方的好办法。
  • apt-get clean 类似上面的命令,但它删除包缓存中的所有包。这是个很好的做法,因为多数情况下这些包没有用了。但如果你是拨号上网的话,就得重新考虑了。
  • dpkg-reconfigure foo - 重新配置“foo”包。这条命令很有用。当一次配置很多包的时候, 要回答很多问题,但有的问题事先并不知道。例如,dpkg-reconfigure fontconfig-config,在Ubuntu系统中显示字体配置向导。每次我安装完一个 Ubuntu 系统,我都会运行这行命令,因为我希望位图字体在我的所有应用程序上都有效。
  • apt-show-versions -u apt-show-versions工具可以告诉你系统中哪些包可以更新以及其它 一些有用的信息。-u选项可以显示可更新软件包列表,这个工具默认没有安装,但是每次update完了以后,用这个工具看看非常方便,值得一装。
(2) 查看当前内核版本
通过命令uname -r查看当前内核版本,
  1. 解压缩后将会空出 99.3MB 的空间。
  2. 您希望继续执行吗?[Y/n]Y
  • dpkg -L foo - 显示名为“foo”的包都安装了哪些文件以及它们的路径,很有用的命令。
  • dlocate foo - 在已安装的包中搜索“foo”的文件。对于回答“这个文件来源于哪个包”这个问题,是非常实用的。dlocate是一个软件包,必须安装它才能使用本命令。
  • apt-file search foo - 类似dlocate和dpkg -S,但搜索所有有效软件包,不单单只是你系统上的已安装的软件包。-- 它所回答的问题是“哪些软件包提供这些文件”。你必须安装有apt-file软件包,并且确保apt-file数据库是最新的。
  • apt-cache dumpavail - 显示所有可用软件包,以及它们各自的详细信息(会产生很多输出)。
  • /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的话,这样做是有帮助的)。
  • 可以通过三种方法为apt-get设置http代理

    注意:在Ubuntu 10.10及以后版本中,apt-get不再读取$http_proxy变量,因此只能使用方法2设置apt-get代理。另外,如果使用新立得软件包管理器,则可以在新立得中设置网络代理(设置——首选项——网络)

    这是一种临时的手段,如果您仅仅是暂时需要通过http代理使用apt-get,您可以使用这种方式。

    这种方法要用到/etc/apt/文件夹下的apt.conf文件。如果您希望apt-get(而不是其他应用程序)一直使用http代理,您可以使用这种方式。

    注意: 某些情况下,系统安装过程中没有建立apt配置文件。下面的操作将视情况修改现有的配置文件或者新建配置文件。

    这种方法会在您的主目录下的.bashrc文件中添加两行。如果您希望apt-get和其他应用程序如wget等都使用http代理,您可以使用这种方式。

    保存文件。关闭当前终端,然後打开另一个终端。

    使用apt-get update或者任何您想用的网络工具测试代理。我使用firestarter查看活动的网络连接。

    如果您为了纠正错误而再次修改了配置文件,记得关闭终端并重新打开,否自新的设置不会生效。

    如果代理服务器需要登录,那么可以在指定代理服务器地址的时候,用如下格式(根据情况把username,password, yourproxyaddress和proxyport替换为相应内容):

/var/lib/dpkg/available 文件的内容是软件包的描述信息, 该软件包括当前系统所使用的 Debian 安装源中的所有软件包,
其中包括当前系统中已安装的和未安装的软件包.

 (12)清除所有已删除软件包的残馀配置文件

 (20)查看软件包在服务器上面的地址

aptitude是基于APT的又一个包管理的前端,aptitude似乎在处理依赖问题上更佳一些。据说aptitude 另外用一份数据量很小的扩展标记来实现所谓更佳的管理,我没有发现有什么比apt命令更加牛逼的功能,不过看起来命令比apt要简洁。

将系统升级到新的发行版
}

server,网上有网友说是直接在终端输入:suo kill gdm或者按Ctrl+Alt+F1,进入后输入用户名和密码,然后再输入:sudo /etc/init.d/gdm stop,这两种方法我均试过了,也就是不进入图形界面,请问在这样的情况下要怎样才能顺利安装

}

我要回帖

更多关于 ubuntu依赖关系不满足 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信