1.
RedHat与Ubuntu软件安装对比
RedHat:
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件(rpm包)的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。。
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
Ubuntu:
dpkg用于对基于Debian的系统(Ubunut是debian的变种)进行软件(deb包或源代码)的安装及升级,dpkg同样不能很方便地处理包的依赖关系。
apt-get(Advanced Packaging Tools)适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载二进制或者源代码格式的软件包。apt-get命令一般需要root权限执行,所以一般跟着sudo命令。
2.apt-get常用命令
-
apt-get update
在修改/etc/apt/sources.list或/etc/apt/preferences之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表(保存在本地)是最新的。一般我们用apt-get安装软件前都要执行此命令。
-
apt-get install packagename
安装一个新软件包,软件包会被下载到/var/cache/apt/archives 稍后进行安装如果一个软件包坏了,或者你只是想重新安装一个软件的最新版本 ,可以使用–reinstall参数,如:
# apt-get –reinstall install packagename
在安装软件时,可以用apt-get install package/distribution或apt-get install package=version来指定软件的安装版本,如
# apt-get install nautilus/unstable
-
apt-get remove/autoremove package
apt-get remove package 删除包
apt-get remove package –purge 删除包+配置文件
apt-get autoremove packagename 删除包及其依赖的软件包
apt-get autoremove –purge packagname 删除包及其依赖的软件包+配置文件
-
apt-get clean/autoclean
apt-get clean 安装软件时,软件包会被先下载到/var/cache/apt/archives/目录下,然后安装,apt-get clean可以删除/var/cache/apt/archives/ 和/var/cache/apt/archives/partial/目录下所有包(锁定的除外)。
apt-get autoclean 仅删除已卸载掉的软件包
-
apt-get upgrade
apt-get upgrade 更新已安装的包,加-u这个选项让APT显示完整的可更新软件包列表
-
apt-cache search/show/showpkg/depends string
apt-cache search string 在软件包列表中搜索字符串
apt-cache show string 显示软件信息,如果已经安装,并且又有了新版本,那么都会显示,安装版本在后
apt-cache showpkg string 获取更多信息
apt-cache depends string 查询软件的依赖性
3. 用dpkg查询软件名
dpkg -S filename 这个文档属于哪个已安装软件包。
dpkg -l 列出所有已安装的软件包
4.用apt-file查询包与文件的关系
apt-file search filename 就象dpkg -S 但可以查未安装软件包
apt-file list packagename 也可以查询一个包所含文件
apt-file update 更新数据库
5.利用apt-get下载程序源码
apt-get source packagename 下载三个文件 a .orig.tar.gz, a .dsc 和 a .diff.gz
apt-get -b source packagename 下载的源码包自动编译成软件包
apt-get的source命令与它的其它命令有所不同,普通用 户就可以运行source命令。文件被下载到用户调用apt-source package 命令时所处的目录中
6.编译软件
apt-get build-dep package
通常,编译源码包时要用到某些头文件和共享库,所有的源码包的控制文件中都 有一个域“Build-Depends:”,域中指出了编译该源码包需要哪些附加包。APT提供了一个简单的方法下载这些附加包,你只需运行apt-get build-dep package,其中“package”就是你打算编译的源码包 名称。见下例:
1
2
3
4
5
6
7
8
9
|
# apt-get build-dep gmc Reading Package Lists... Done Building Dependency Tree... Done The following NEW packages will be installed: comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev libgpmg1-dev 0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded. Need to get 1069kB of archives. After unpacking 3514kB will be used. Do you want to continue ? [Y /n ] |
这些将要被安装的包是用于正确编译gmc的。注意这个命令不 能用来搜索某个软件的源码包,你得另外运行apt-get source下载源码包。如果你想做的是检查要编译一个软件包需要哪些其它的软件包,apt-cache show可以显示它.