学会四招让你在linux下安装程序变得简单
一、背景
由于最近想自己摸索一些linux下的东西,开始玩起了Linux系统,在安装软件的过程中有诸多的不解和困惑,现在终于搞明白了具体是怎么样的安装步骤和过程,先分享给你们同时也方便自己复习查阅。
二、基本概述
1.RPM
RedHat Package Manager的简称,即RedHat包管理器。
以数据库记录的方式将软件安装到Liunx。
软件包事先编译好并且打包成RPM机制的文件,类似于Windows的安装程序。
软件信息记录在本地数据库,方便查询、升级、卸载。
不允许自定义参数和设置,限制较多。
2.SRPM
Source RPM,附带源码的RPM包,扩展名为src.rmp。
不可以直接安装,需要通过编译后再安装。
可以修改参数文件自定义配置项。
和RPM比较类似。
3.YUM
Yellow dog Updater,Modified的简称,基于RPM包管理。
能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无需繁琐的一次次下载、安装。
使用简单、方便。
三、安装方式介绍
1.源码方式安装linux软件
下载源码包到/usr/local/src
解压缩源码包
查看install和readme档案安装相依性软件
./configure安装软件到特定位置
make clean清除目标档案
make编译
make install
修改PATH
2.rpm方式安装linux软件
明确安装包所在路径或者网站(find /dirname–name ‘name*’)
查找rpm库中是否已经安装 rpm -qa | grep 'softwareName'
安装rpm –ivh /path/to/file.rpm
rpm常用参数
-i:安装
-U:后接的软件如果没有安装过则安装,如果安装过且版本较旧则更新
-F:后接的软件如未安装则不进行安装,如果安装过且版本较旧则更新
-v:查看详细安装信息
-h:查看安装进度
rpm常用的长选项
--nodeps:忽略相依性强制安装
--replacepkgs:重复安装已安装过的软件档案
--force:强制安装
--nosignature:忽略数字签名认证
--prefix:指定安装路径
--relocate:改变安装路径
--justdb:完善RPM关于此软件档案的数据库文件
--initdb:初始化RPM数据库
--rebuilddb:重建RPM数据库
rpm查询:RPM [options] [filename]
-q:查询后面的软件是否有安装
-qa:列出此系统上已安装的所有软件
-ql:列出该软件安装后产生的所有文件完整目录列表
-qd:列出该软件安装后产生的所有man文件完整目录列表
-qf:列出该档案所属的已安装软件
-qi:列出该软件的详细信息
-qR:列出与该软件的相依软件有关的档案
-p:未安装的软件包
-e:移除某个软件(要从相依性的顶层开始)
rpm升级:rpm –V[apf] [filename/dirname]
-V:后面加软件名称,显示该软件所含的被更动过的档案
-Va:列出系统上所有被改动过的档案
-Vf:列出某个档案是否被更动过
rpm数字签名验证流程
获取公钥安装包
安装公钥rpm --import /path/to/GPG-KEY
得到gpg-pubkey*档案,包含签章信息
安装原厂软件时,rpm指令会去读取签章信息,与已导入的公钥相比较。如果相同则安装,不同则不允许安装
3.SRPM安装linux软件
进行编译源包:rpmbuild [options]
--rebuild:将***.src.rpm源码进行编译,并打包成rpm包
--recompile:将***.src.rpm源码进行编译、打包,并进行安装
-ba:将数据编译并同时产生RPM与SRPM
-bb:将数据仅编译程RPM档案
备注:SRPM包用rebuild创建成rpm包后,里边会有一个*.spec配置档案
后面步骤和rpm相同
4.YUM进行安装linux软件
配置yum仓库/etc/yum.repo.d/*
连接网络
yum install softwareName
yum clean all删除所有yum仓库中的数据
查询:yum[list|info|search|provides|whatprovides]参数
search:查询某个程序的名称或是描述(yum search mysql)
list:列出目前所有的管理的软件以及版本(rpm -qa)
info类似list,查询软件的功能、版本说明(rpm -qai)
provides:通过文件查询所属软件(rpm -qf)
安装、升级,yum [install|update]程序名
install:安装软件
update:升级软件、不指定名称则升级整个系统
卸载程序:yum[remove]程序名称
yum的配置
/etc/yum.repos.d/CentOS-Base.repo
yum clean[package|headers|all]
/var/cache/yum
四、总结
对于软件技术来说,我觉得最重要的是分享和开源精神,因为这和分享快乐的原理相同,如果你有一份技术,我有一份技术,那我们彼此分享以后,每个人都变成了两分技术,不但没有减少,反而增加了,这不正是我们所希望看到的么?何乐而不为呢?这也正是为什么我喜欢抽出休息时间来孜孜不倦的写技术博客的原因。
学会四招让你在linux下安装程序变得简单的更多相关文章
- Linux下安装protobuf并实现简单的客户端服务器端通信
http://code.google.com/p/protobuf/downloads/list上可以下载Protobuf的源代码. 安装步骤如下所示: 1>tar -xzf protobuf- ...
- linux下安装程序(dep/tgz/rpm)
1.tgz本身就是压缩包,所以前提是先解压出来 tar zxvf test.tgz 而对于安装,可以是程序包本身包含安装,也可以是通过特定shell脚本运行,毕竟这个是不安装包,而只是压缩包. 2.d ...
- Linux下安装Tomcat服务器和部署Web应用
一.上传Tomcat服务器
- CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)
在CentOS linux下安装SVN,我们可以进行以下步骤: 第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发 ...
- linux下安装jdk+tomcat+eclipse+mysql
我的环境:主机是win7的,虚拟机是VWare Workstation 6.0 ,linux系统为Red Hat Enterprise Linux 5 64位 各软件版本:jdk是jdk-6u ...
- 在Linux下安装和使用MySQL
[简 介] 想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL.本以为有Windows下使用SQL Server的经验,觉得在Linu ...
- 转】Linux下安装Tomcat服务器和部署Web应用
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4097608.html 感谢! 一.上传Tomcat服务器
- Linux下C程序的编辑,编译和运行以及调试
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- linux下安装jira详细步骤
首先从官网下载jdk的安装包,将jdk的安装包上传到虚拟机或者服务器,在./usr/local/目录下面创建一个java目录:mkdir java 等等,具体祥看本文,希望对你有所帮助 linux下安 ...
随机推荐
- java 获取浏览器类型
public String getBrowserType(HttpServletRequest request) { String type = "ie"; S ...
- ReportMachine 自定义代码 画细线
ReportMachine 自定义代码 画细线 procedure Memo3_OnBeforePrint(Sender: TObject); begin Memo3.Text := inttostr ...
- 行人检测(Pedestrian Detection)资源
一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...
- 使用docker部署WordPress博客系统(win10企业版)
docker介绍: docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相 ...
- fping常用参数介绍
fping的主要参数有以下两个: -a:只显示存活主机: -u:只显示不存活主机: -l:循环ping目标IP地址的输入方式: fping IP1 IP2 IP3 ...: fping -f file ...
- python36--将数据保存为excel
#!/usr/bin/env python # -*- coding: utf-8 -*- import xlwt import os class ExcelHelper(object): @stat ...
- socket粗解
百度定义:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket通信流程: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一 ...
- C#生成指定长度随机数
public static string GetRandomString(int iLength) { ";// 随机字符中也可以为汉字(任何) StringBuilder sb = new ...
- Flash插件flashplugin-nonfree的手动更新
Debian,nonfree库里有flashplugin-nonfree,这个就是网页浏览器的Flash插件了.不过它好像不会自动更新,每次更新网页浏览器后都会提示flashplugin版本过低.但f ...
- Google guava cache源码解析1--构建缓存器(2)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. CacheBuilder-->maximumSize(long size) /** ...