2022年Linux下的软件安装 .pdf
Linux下的软件安装一 源码安装1.解压源码软件2.进入到软件所在目录3./configure 执行编译前的准备, 参数为默认, 若改变参数可用./configure help 查看;4.make 开始编译;5.make install 安装软件。6.若要卸载软件,可执行make uninstall 。二 RPM 安装1. 安装*这里以foo-1.0-1.i386.rpm 为例说明,先说明一下软件参数:foo 为软件名, 1.0 为版本号, 1 为发行号, i386 为硬件平台;*命令格式:rpm i【v】 【h】 【option 】 file1.rpm fileN.rpm 可同时安装多个软件包*【】中的内容为可选项:i 表示安装;v 表示显示状态;h 表示以# 输出显示进度;*【option 】包含的参数有:-test=-t 只对安装进行测试,并不实际安装-percent=-p 以百分比的形式输出安装的进度-replacepkgs 强制重新安装已经安装的软件包-replacefiles 替换属于其它软件包的文件-nodeps 不检查依赖性关系-excludedocs 不安装软件包中的文档文件-force 忽略软件包及文件的冲突2. 升级*命令格式:rpm -【U| F】 【v】 【h】 【 option 】 file1.rpm fileN.rpm *说明:U 表示升级; F 表示更新;*【option 】包含的参数有:-prefix 将软件包安装到由指定的路径下名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - -oldpackage 允许 升级 到一个老版本其它参数和安装选择的参数相同;3. 查询*命令格式rpm q 【option 】*【option 】包含的参数有:-a 查询所有已安装的软件包-all 查询所有已安装的软件包数据-i 查询软件的信息-l 查询软件包里的内容-f 查询属于哪个软件包-p 查询软件包文件名为。 。 。的软件包例:1) 查询一个包是否被安装:rpm q * 2) 查看软件包里的内容:rpm qpi * 3) 查看软件包将会在系统里安装哪些部分:rpm qpl * 4) 快速判定某个文件属于哪个软件包:rpm qf * 5) 列出所有被安装的rpm 软件包: rpm qa 6) 查询已安装软件包都安装到何处:rpm ql7) 查看一下已安装软件所依赖的软件包及文件:rpm -qR 软件名8) 查看一下已安装软件的配置文件:rpm -qc 软件名9) 查看一个已经安装软件的文档安装位置:rpm -qd 软件名*对未安装的软件进行查询:1) 查看一个软件包的用途、版本等信息:rpm -qpi file.rpm 2) 查看一件软件包所包含的文件:rpm -qpl file.rpm 3) 查看软件包的文档所在的位置:rpm -qpd file.rpm 4) 查看一个软件包的配置文件:rpm -qpc file.rpm 5) 查看一个软件包的依赖关系:rpm -qpR file.rpm4. 验证*命令格式:rpm V file.rmp *软件包状态标签:5 - MD5 校验和S - 文件长度L - 符号链接T - 文件修改日期D - 设备U - 用户G - 用户组名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - M - 模式(包含许可和文件类型) ? - 不可读文件5. 卸载*命令格式:rpm e 软件包名三 YUM 安装& 建立 YUM 下载源的步骤:1) 将所有 RPM文件放入同一个目录中;2) 在该目录中建立YUM 下载源数据,执行createrepo + 软件包绝对路径3) 通过本地 file、HTTP 、FTP分享这个目录&yum 的配置一般有两种方式:其一是直接配置/etc 目录下的yum.conf文件,& /etc/yum.conf 文件说明:main cachedir=/var/cache/yum #yum 下载的 RPM 包的缓存目录keepcache=0 #缓存是否保存,1 保存, 0 不保存debuglevel=2 #调试级别 (0-10) ,默认为2logfile=/var/log/yum.log #yum 的日志文件所在的位置exactarch=1 #在更新的时候,是否允许更新不同版本的RPM 包obsoletes=1 #update 参数,允许更新陈旧的RPM 包gpgcheck=1 #是否检查GPG(GNU Private Guard),一种密钥方式签名plugins=1 #是否允许使用插件,默认是0 不允许installonly_limit=3 #允许保留多少个内核包。exclude=selinux* #屏蔽不想更新的RPM 包,多个 RPM 包之间使用空格分离# This is the default, if you make this bigger yum wont see if the metadata# is newer on the remote and so youll gain the bandwidth of not having to# download the new metadata and pay for it by yum not having correct# information.# It is esp. important, to have correct metadata, for distributions like# Fedora which dont keep old packages around. If you dont like this checking# interupting your command line usage, its much better to have something# manually check the metadata once an hour (yum-updatesd will do this).# metadata_expire=90m# PUT YOUR REPOS HERE or IN separate files named file.repo# in /etc/yum.repos.d 其二是在 /etc/yum.repos.d目录下增加 .repo 文件。&/etc/yum.repos.d目录下*.repo 文件详解:Fedora #方括号里面的是软件源的名称,将被yum 取得并识别名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - name= Fedora $releasever - $basearch #这里也定义了软件仓库的名称, 通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字, $basearch变 量定义了系统的架构,可以是i386 、x86_64 、ppc 等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum 升级的时候选择适合当前系统的软件包,以下同failovermethod=priority #failovermethod 有两个值可以选择,priority 是默认值,表示从列出的baseurl 中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择exclude=compiz* *compiz* fusion-icon* #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔, 可以视情况需要自行添加#baseurl=http:/download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/#上面的一行baseurl 第一个字符是 #表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl (源的镜像服务器地址)#mirrorlist=http:/mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch#上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和 i386 ,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。选择自己访问速度较快的镜像服务器地址复制并粘贴到repo 文件中,我们就能获得较快的更新速度了,格式如下baseurl 所示:baseurl=ftp:/ftp.sfc.wide.ad.jp/pub/Linux/Fedora/releases/10/Everything/i386/os http:/ftp.chg.ru/pub/Linux/fedora/linux/releases/10/Everything/i386/os http:/ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os http:/mirror.nus.edu.sg/fedora/releases/10/Everything/i386/os http:/mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/os http:/ http:/ftp.itu.edu.tr/Mirror/Fedora/linux/releases/10/Everything/i386/os enabled=1 #这个选项表示这个repo 中定义的源是启用的,0 为禁用gpgcheck=1 #这个选项表示这个repo 中下载的rpm 将进行 gpg 的校验,已确定 rpm 包的来源是有效和安全的gpgkey =file:/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定义用于校验的gpg密钥Yum 选项及命令:check-update 列出所有可更新的软件清单update 更新一个或多个包在你的系统,或不加包名以安装所有更新软件clean 删除缓存数据deplist 列出包依赖相关erase 移除一个或多个包从你的系统groupinfo 显示关于包组的细节groupinstall 从组里安装软件包到你的系统grouplist 列出当前的组名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - groupremove 在一个组中移除包从您的系统help 显示帮助用法信息info 显示关于包或一组包的细节信息install 安装一个或多个软件包在你的系统list 列出一个包或某组的包all列出所有的软件包installed 仅列出已安装的软件包available仅显示可安装的软件包updates 仅显示可以更新的软件包recent仅显示近期的软件包localinstall 安装本地RPM makecache 生成原数据缓存provides Find what packagee provides the given value reinstall 重新安装一个包remove 删除软件包repolist 显示软件仓库的配置resolvedep 决定哪个包提供了给定的依赖search 查找软件包shell 运行交互式的yum shell update 更新一个或多个包在你的系统upgrade Update packages taking obsoletes into account -R minutes 最大化的命令等待时间-y 回答所有的问题为是& 清除 YUM 缓存:yum clean packages :清除缓存目录/var/cache/yum下的软件包;yum clean headers :清除缓存目录/var/cache/yum下的 headers ;yum clean oldheaders :清除缓存目录/var/cache/yum下旧的 headers ;yum clean all :清除所有缓存信息。1. 列出所有可更新的软件清单命令: yum check-update 2. 安装所有更新软件命令: yum update 3. 仅安装指定的软件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 命令: yum install 4. 仅更新指定的软件命令: yum update 5. 列出所有可安裝的软件清单命令: yum list 用 YUM 安装删除软件装了系统添加删除软件是常事,yum 同样可以胜任这一任务,只要软件是 rpm安装的。安装的命令是, yum install xxx,yum 会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装 ; 如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断。删除的命令是, yum remove xxx, 同安装一样, yum也会查询数据库,给出解决依赖关系的提示。1. 用 YUM 安装软件包命令: yum install 2. 用 YUM 删除软件包命令: yum remove 用 YUM 查询软件信息我们常会碰到这样的情况,想要安装一个软件,只知道它和某方面有关,但又不能确切知道它的名字。这时yum的查询功能就起作用了。你可以用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - yum search keyword这样的命令来进行搜索,比如我们要则安装一个Instant Messenger,但又不知到底有哪些,这时不妨用yum search messenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的 rpm包,于是我们可能得到gaim ,kopete等等,并从中选择。有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yum info packagename这个指令来获取信息。1. 使用 YUM 查找软件包命令: yum search 2. 列出所有可安装的软件包命令: yum list 3. 列出所有可更新的软件包命令: yum list updates 4. 列出所有已安装的软件包命令: yum list installed 5. 列出所有已安装但不在Yum Repository 內的软件包命令: yum list extras 6. 列出所指定的软件包命令: yum list 7. 使用 YUM 获取软件包信息命令: yum info 8. 列出所有软件包的信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 命令: yum info 9. 列出所有可更新的软件包信息命令: yum info updates 10. 列出所有已安裝的软件包信息命令: yum info installed 11. 列出所有已安裝但不在Yum Repository 內的软件包信息命令: yum info extras 12. 列出软件包提供哪些文件命令: yum provides 清除 YUM 缓存yum 会把下载的软件包和header存储在 cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确的用法是 yum clean headers清除 header ,yum clean packages清除下载的rpm包, yum clean all一股脑儿端1. 清除缓存目录 (/var/cache/yum)下的软件包命令: yum clean packages 2. 清除缓存目录 (/var/cache/yum)下的headers 命令: yum clean headers 3. 清除缓存目录 (/var/cache/yum)下旧的headers 命令: yum clean 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - oldheaders 4. 清除缓存目录 (/var/cache/yum)下的软件包及旧的headers 命令: yum clean, yum clean all (= yum clean packages; yum clean oldheaders)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -