柏拉图于是按照老师说的去做了。结果他两手空空的走出了田地。老师问他为什么摘不到?
他说:因为只能摘一次,又不能走回头路,期间即使见到最大最金黄的,因为不知前面是否有更好的,所以没有摘;走到前面时,又发觉总不及之前见到的好,原来最大最金黄的麦穗早已错过了;于是我什么也没摘。
老师说:“这就是婚姻!”
#
aptitude5
aptitude 的主视图组织的非常有条理,而且界面布局清爽.上部窗口列出的是软件包根据类别和它们在本地系统的状态排序.这里是 aptitude 的操作界面.底部窗口给出主窗口的状态描述信息.
Actions Undo Package Search Options Views Help |
f10: Menu ?: Help q: Quit u: Update g: Download/Install/Remove Pkgs |
aptitude 0.2.15.9 Will use 25.9MB of disk space DL Size: 27.7MB |
-- Installed Packages |
-- Not Installed Packages |
-- Obsolete and Locally Created Packages |
-- Virtual Packages |
-- Tasks |
在aptitude主菜单提供了七个选项,这依赖于您系统中选用的软件包的状态.
此选项列出在归档库中出先新版本的软件包.通常,当用户完成选择处理,aptitude下载安装了请求的软件包后,这里的软件包都将被升级.
更新(aptitude update,或在 aptitude 中键入[u])软件包列表后所增加的软件包,让用户了解 Debian 归档库增加了哪些内容.每次更新,新的软件包就会累加到这里,直至您键入[f]将累加清除,并将它们集合到主包库中.
这些软件包已经安装在您的机器上,但资源库软件包列表显示不需要对它们进行升级.
就象名称标识的,这些软件包当前没有安装在您的机器上.当您清除未安装的新软件包时,将会进入这部分.
这些软件包目前已安装在您的机器上,但是它们并未出现在 /etc/apt/sources.list 为 APT 配置的资源库中.
虚拟包是由一些软件包提供的逻辑概念.例如,mail-transport-agent 就是由 postfix 和 sendmail, 以及其它等等软件包提供的.
任务是一组软件包,它们提供了一种简单的方法来选择一组预定义的完成特定任务的软件包.在后面将对此做更进一步的讲解.aptitude 允许对任务进行浏览和安装.
aptitude 是以树状结构组织的,相关节点以细线相连.可以使用方向键, [PageUp] 和 [PageDown] 进行定位.[Return] 或 [Enter] 用于展开或收起某个节点.aptitude 的开视图分为四列: 软件包状态和请求动作, 软件包名称, 当前安装版本(或<
none>
), 最新版本.
aptitude软件包列表中的软件包状态:
v | 虚拟 |
B | 损坏 |
u | 解包 |
C | 预配置 |
H | 预安装 |
c | 卸载未清除 |
p | 清除软件包 |
i | 已经安装 |
E | 内部错误 |
在aptitude软件包列表中的请求操作:
h | 保持 |
p | 清除 |
d | 删除(卸载) |
B | 损坏 |
i | 安装 |
r | 重装 |
u | 升级 |
底部窗口给出主窗口当前显示的上下文信息.可以用[a]和[z]实现滚屏,[i]在不同信息视图间切换.最后,[D]则用于显示和隐藏信息区.
颜色 | 意义 红 |
绿 | 安装新软件包 |
青 | 将软件包升级的最新 |
品红 | 删除(或清除)软件包 |
白 | 保存版本(禁止升级) |
aptitude是基于apt机制的, 因此在进一步操作前你需要正确的配置sources.list8文件.并确保 软件包列表得到了及时的更新. [u](update)命令就是为此设计的, 这类似于 apt-get update 操作.
如果出现了新的软件包(也就是说, 至上次软件包列表更新时, 仍为出现的软件包), 将会在 New Packages 选项下显示. 您可以键入[f](forget that packages are new)命令, 将它们清除到可用软件包选项中去.
移动光标到您感兴趣的行, 然后键入回车, 将选项展开. 选定一个软件包后, 有关软件包的信息将会出现在屏幕底部. 如果要查看更详细的信息, 则需要键入[i](information). 键入 [q] (quit)则会退出信息显示屏幕.
对于没有安装的软件包(位于 New Packages 或 Not Installed Packages 区域), 可以选定后, 键入[+](add package), 以标示安装.
对于已经安装的软件包, 则可以进行保持, 删除, 或清除等操作. 保持[=](hold)是指保持软件包的现有版本, 而禁止对其升级. 删除 [-](remove package) 标记已安装软件包为删除状态. [_](purge package) 命令则将软件包标记为清除状态.
一旦您标记完感兴趣的软件包, 就可以键入 [g](go )以保存修改, 使其生效.
[/]
, 并提供一些判断语句, 来查询软件包的名称. [\]
用于查询下一个匹配. 就象正则表达式一样, 可以用 ^
和 $ 匹配名称的起始字符和结束字符. 使用[l]
,用户可以以某种标准限制软件包的显示,这同样适用于查询9.下边是一些重要的判断谓词:aptitude的搜索谓词
谓词 | 用途 |
~ahold | 保持现有版本的软件包 |
~b | 损坏的软件包 |
~d< text> | 描述中含有< text> 内容的软件包 |
~g | 无用的软件包 |
~m< maint> | 由< maint> 维护的软件包 |
~n< text> | 名称中含有< text> 的软件包 |
~V< version> | 版本号中含有< version> 的软件包 |
这些谓词是可以联合起来使用的.例如,~ahold~dmail 选择在描述字中含有 mail 的被保持现有版本的软件包.在两个谓词间使用管道符号(|
),可以对两个表达式进行逻辑或(OR) 操作: ~v|
~b 选择所有受损软件包或虚拟软件包. 查询不会忽略两个谓词间的空格! 因此,~V.0 和 ~V .0 是不一样的, 后边的一个不会有匹配结果.感叹号对表达式取反: !~b 查询所有未受损的软件包.可以使用括号来表达复杂的布尔逻辑:~g(~dmanual|
~sdoc) 将查询所有包含manual或在 doc 部分的受损软件包.
需要注意的是, 当搜寻正则表达式中含有某些特殊字符, 象 '()',代字号(~),和感叹号时, 则必须使用代字号进行转义.
软件包的选择可以通过浏览,然后按下对应键进行操作:
[+] | 选定要安装的软件包. |
[-] | 选定要删除的软件包. |
[_] | 选定要清除的软件包. |
[=] | 保持软件包的当前版本,阻止其被升级. |
[:] | 仅在aptitude会话期间锁定软件包. |
[L] | 请求重装软件包. |
[M] | 将软件包标记为自动安装.自动安装的软件包 |
在手动安装的包对其没有依赖需求时会自动删除. | |
[m] | 将软件包标记为手动. |
[R] | 请求重新配置软件包. |
[I] | 请求立即安装软件包(以其依赖包)并暂时锁定其它升级和 |
安装的软件包.作用与apt-get install 相同. | |
[F] | 禁止安装某个版本的软件包.但是,对更高版本正常使用. |
[B] | 调用reportbug,申报一个软件包的错误. |
[C] | 下载并显示一个软件包的变更日志. |
[g] | 进入所有请求变更的预览窗口.如果在预览屏键入此键, |
将执行变更操作. | |
[d] | 查询相关软件包: suggest/recommanded/depends |
[r] | 查询依赖包 |
[/] | 搜索 |
[\] | 继续搜索 |
注: Control-u组合键可用于取消上一步的动作.
展开一个软件包的节点,将会在屏幕上输出软件包的详细信息.除了有关软件包的有用信息外,在发现aptitude给出的解决方案不能满足您的需求时, 可以在屏幕中方便的浏览相关声明并交互的解决依赖问题. 还可以使用[Return]展开节点,在主窗口用于操作软件包选择的按键也可在遵循相关声明的情况下,应用于这里列出的软件包.键入[q]令您回退一级,关闭软件包详述窗口,返回软件包列表.
当aptitude遇到不能解决依赖问题时,会以红色背景高亮显示有问题的软件包,并显示标题窗口中错误数量.
并会在标题窗口中显示受损包的数量, 例如: #
Broken: 2
mygray Actions Undo Package Search Options Views Help | ||
mygrayf10: Menu ?: Help q: Quit u: Update g: Download/I | ||
mygrayaptitude 0.2.15.9 #Broken: 2 Will use 1118kB of | ||
mygray--- Packages being automatically installed to satisfy | ||
mygray--\ Packages being deleted due to unsatisfied depende | ||
mygrayid postfix -1974kB 2.1.5-9 | ||
mygrayiB postfix-mysql 2.1.5-9 | ||
mygrayiB postfix-tls 2.1.5-9 | ||
mygrayi webmin-postfix 1.180-4 | ||
mygray--\ Packages to be installed | ||
mygraypi exim4 +32.8kB | ||
mygray--- Packages which are suggested by other packages | ||
mygray |
受损的软件包是指那些不能满足依赖关系的,或相互冲突的软件包(这种情况下两个软件包都是 broken 的). aptitude 显然不会允许用户选择安装 broken 的软件包. 因此,需要首先修正这种问题:
当 broken 软件包的个数非零,并且 aptitude 被告知动作未定时(用户键入了 [g] 键),在显示这些未决问题摘要之前aptitude将试图解决所有的问题.通常,使用保守的方法进行自动修正,所以前面的所做的选择有可能被丢弃.在键入 [g] 前将一直检查 broken 软件包的数量,或者详细显示 broken 软件包的信息,这将丢弃前边所做的修改.幸运的是,aptitude 允许通过 [C_] 或 [C_u]
来取消最后的操作,然后进行手动解决.
当在aptitude中修复broken软件包时,它的过滤(或限制)功能非常的有用.键入 [I] 进入 ~b,aptitude 将会只显示 broken 的软件包.使用软件包细节列表,通过选择缺少的依赖包,手动解决冲突,稍做努力就可修正出现的问题.另外,您也可以简单的键入 [b],找到第二个 broken 软件包.
当 broken 的软件包数量增加时,可能需要过滤显示软件包列表.键入 [I] 应用前面的过滤设置,以缩小仍处于 broken 状态的软件包列表(希望少了很多). 重复操作,在短时间内就会修复所有 broken的 软件包.
虽然aptitude的这一功能非常的不错,但是deborphan也提供近似的功能,并且操作起来更加灵活.
mygrayv --\ mail-transport-agent | ||
mygray --- Packages which depend on mail-transport-agent | ||
mygray --\ Versions | ||
mygrayp xmail 1.21-3sarge1 | ||
mygrayp masqmail 0.2.20-1sarge1 | ||
mygrayp courier-mta 0.47-4sarge4 | ||
mygrayp xmail 1.21-3 | ||
mygrayp ssmtp 2.61-2 | ||
mygrayp sendmail-bin 8.13.4-3 | ||
mygrayi postfix 2.1.5-9 | ||
mygrayp nullmailer 1.00RC7-22 | ||
mygrayp masqmail 0.2.20-1 | ||
mygrayp exim4-daemon-light 4.50-8 | ||
mygrayp exim4-daemon-heavy 4.50-8 | ||
mygrayp exim 3.36-16 | ||
mygrayp esmtp-run 0.5.0-4 | ||
mygrayp courier-mta 0.47-4 |
aptitude 的 Virtual Packages(虚拟包)选项可以用于快速定位提供同一功能的软件包列表. 这样当默认设置不能满足您的需求时, 可以使用这一功能快速的完成调整.
mygray--\ Tasks | ||
mygray --\ End-user | ||
mygray --\ Desktop environment | ||
mygrayp fortune-mod | ||
mygrayp gdm | ||
mygrayp gimp | ||
mygrayp gnome | ||
mygrayp gnome-desktop-environment | ||
mygrayp kde | ||
mygrayp kde-core | ||
mygrayTasks are groups of packages which provide an easy way to select a | ||
mygraypredefinedset of packages for a particular purpose. | ||
mygrayIf you select a package, an explanation of its current state will appear | ||
mygrayin this space. |
传统的程序tasksel提供了一个选择这些软件集合的界面,不过它的功能被集成到了aptitude中,并进行了扩展,因此aptitude更受欢迎.
任务就是选择一个抽象的概念,然后安装一系列的所必需的软包件,让本地系统可以运行为典型的环境.本质上来讲,任务与关联包(或伪软件包)相似,依赖于扮演着不同角色的所需软件包,它只是一个虚拟软件包,并没有相关的真实 deb 文件.另外,任务仅仅是个建议,用户可以不选择任务建议中的一些软件包.您可能会觉得更喜欢aptitude主选择屏幕最下边的任务界面.与处理软件包相似,任务可以视作单个的实体,或展开展示的建议的软件包.另外,用户也可将任务展开,检查一下建议安装的软件包列表.可以只简单的安装任务所包含软件包的一部分,而不是全部安装.您会发现aptitude中的任务有点象软件包的规则匹配.
也可以通过将任务描述文件放置到/usr/share/tasksel目录下10,来自定义任务.在tasksel软件包安装的README文件中提供了有关如何构建任务的文档11.
通常, aptitude的命令行请求形如:
# aptitude
action [arguments...]
常用的一些操作:
# aptitude update
* 更新软件包列表, 同图形界面的[u]键 *
# aptitude upgrade
* 升级软件包, 等同与 apt-get upgrade *
# aptitude dist-upgrade
*升级系统, 等同与 apt-get dist-upgrade *
# aptitude [ install | remove | purge ]
pkg1 [pkg2...] * ...*
#
aptitude search pattern1 [pattern2...] * ...*
就象 apt-get,可以在交互界面使用拼接字符将多个不同的查询动作置于同一命令行中.下面的情况中,安装A,删除B,清除C,保持D.'+'是冗余的,因为默认为安装.
# aptitude install A+ B- C_ D=
aptitude的命令行界面的优越之处在于在统一界面下集成了很多程序以及它们的功能.另外,响应安装请求时,aptitude 可以解决依赖问题,并且在不再需要这些软级包时,将其自动卸载.
ubuntu下apt-get 命令参数
常用的APT命令参数
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装"-f = ――fix-missing"
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
其中:
1 有sudo的表示需要管理员特权!
2 在Ubuntu中命令后面参数为短参数是用“-”引出,长参数用“――”引出
3 命令帮助信息可用man 命令的方式查看或者
命令 -H(――help)方式查看
4 在man命令中需要退出命令帮助请按“q”键!!
选项 含义 作用
sudo -h Help 列出使用方法,退出。
sudo -V Version 显示版本信息,并退出。
sudo -l List 列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
sudo -u username|#uid User 以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是#uid。
sudo -k Kill 清除“入场卷”上的时间,下次再使用sudo时要再输入密码。
sudo -K Sure kill 与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。
sudo -b command Background 在后台执行指定的命令。
sudo -p prompt command Prompt 可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。非常人性化的设计。
sudo -e file Edit 不是执行命令,而是修改文件,相当于命令sudoedit。
VirtualBox设置好共享后,
mkdir /mnt/share 新建挂载点(mountpoint)
mount -t vboxsf F_DRIVER /mnt/share 挂载共享文件夹