知识点
rpm安装,yum工具,源码包安装
rpm
redhat package manager 是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
rpm 选项
-ivh rpm包文件 安装
-Uvh rpm包文件 升级
-e(erase)包名 卸载
-qa(query all)包名 查询已安装的包
-q 包名 查询指定包是否安装
-qi 包名 查询指定包信息
-ql 包名 列出包安装的文件
-qf 文件绝对路径 查看一个文件是由哪个包安装的
[root@localhost /]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载 //挂载光驱
[root@localhost /]# cd /mnt/Packages/ //rpm包都在这个目录里
[root@localhost Packages]# du -sh
3.8G .
[root@localhost Packages]# rpm -ivh zenity-3.22.0-1.el7.x86_64.rpm
错误:依赖检测失败:
libcairo-gobject.so.2()(64bit) 被 zenity-3.22.0-1.el7.x86_64 需要
libgdk-3.so.0()(64bit) 被 zenity-3.22.0-1.el7.x86_64 需要
libgtk-3.so.0()(64bit) 被 zenity-3.22.0-1.el7.x86_64 需要
libnotify.so.4()(64bit) 被 zenity-3.22.0-1.el7.x86_64 需要
//随便找个安装都有依赖性冲突!
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:zsh-5.0.2-28.el7 ################################# [100%]
[root@localhost Packages]# rpm -qa |grep zsh //换一个就成功了!
zsh-5.0.2-28.el7.x86_64
[root@localhost Packages]# rpm -ql zsh //查询安装包的文件
/bin/zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
....
[root@localhost Packages]# rpm -qf /usr/share/zsh/5.0.2/functions/_finger //可以通过rpm -qf 查询该文件是由哪个包安装的
zsh-5.0.2-28.el7.x86_64
[root@localhost Packages]# rpm -qf `which cd` //配合which使用!
bash-4.2.46-28.el7.x86_64
[root@localhost Packages]# rpm -e zsh //卸载该包
[root@localhost Packages]# rpm -qa |grep zsh
[root@localhost Packages]# rpm -q zsh
未安装软件包 zsh
yum
1.rpm软件包形式的管理虽然方便,但是需要手工解决软件包的依赖关系。很多时候安装一个软件安装一个软件需要安装1个或者多个其他软件,手动解决时,很复杂,yum解决这些问题。Yum是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系,其特点:
- 自动解决依赖关系;
- 可以对rpm进行分组,基于组进行安装操作;
- 引入仓库概念,支持多个仓库;4)配置简单
2.yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库。
3.仓库的配置文件/etc/yum.repos.d目录下
yum 选项
yum list //列出可用yum包
yum search 包名 //搜索包
yum install {-y} 包名 //安装该包 加-y 不询问直接安装
yum grouplist //列出可用的组
yum groupinstall {-y} //安装该组
yum remove {-y} //卸载
yum update {-y} //升级
yum provide "/*/vim" //搜索一个命令由哪个包安装支持的
yum install 包名 --downloadonly --downloaddir=/test //下载包到/test目录下!
[root@localhost ~]# yum install httpd --downloadonly --downloaddir=/test
[root@localhost ~]# ls /test
apr-1.4.8-3.el7_4.1.x86_64.rpm httpd-tools-2.4.6-80.el7.centos.1.x86_64.rpm test.zip xxoo
apr-util-1.5.2-6.el7.x86_64.rpm mailcap-2.1.41-2.el7.noarch.rpm tt.txt
httpd-2.4.6-80.el7.centos.1.x86_64.rpm semanage.conf www
yum默认下过来的文件,安装完毕后都会被删除,可以通过修改/etc/yum.conf里的参数。 将值改为1.
[root@localhost ~]# yum groupinstall GNOME Desktop
Transaction Summary
==================================================================================================================
Install 91 Packages (+562 Dependent packages)
Upgrade 2 Packages (+ 32 Dependent packages)
Total download size: 411 M
Is this ok [y/d/N]: //不加-y选项 到最后会提示是否安装!
[root@localhost ~]# yum install -y expect //安装一个已经被安装了的程序
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 166 kB 00:00:00
(2/4): extras/7/x86_64/primary_db | 204 kB 00:00:00
(3/4): updates/7/x86_64/primary_db | 6.0 MB 00:00:01
(4/4): base/7/x86_64/primary_db | 5.9 MB 00:00:01
Determining fastest mirrors
* base: mirrors.cn99.com
* extras: mirrors.aliyun.com
* updates: mirrors.cn99.com
Package expect-5.45-14.el7_1.x86_64 already installed and latest version
Nothing to do //最后提示该包已经被安装,而且是最新版本,nothing to do!
yum安装包很简单,但是需要联网!如果不能联网就不能用了,所以我们搭建yum本地仓库!
[root@localhost /]# cp -r /etc/yum.repos.d/ /etc/yum.repos.d.bak //将文件备份一下
[root@localhost /]# rm -f /etc/yum.repos.d/* //然后删掉
[root@localhost /]# vi /etc/yum.repos.d/dvd.repo //自己创建一个库
[hello]
name=local
baseurl=file:///mnt
enable=1
gpcheck=0 //输入该文本内容 保存退出
[root@localhost /]# yum clean all
[root@localhost /]# yum list //就可以看到自己库里的rpm包了!
yum安装包的时候默认的地址是在国外的,我们也可以手动更改地址。
[root@localhost ~]# rm -rf /etc/yum.repos.d/CentOS-Base.repo //删除老源
[root@localhost ~]# curl -o www.163.com.centos.repo //去正规网站找个源 下载下来!
源码包
一、源代码形式
1.绝大多数开源软件都是直接以原码形式发布的
2.源代码一般会被打成.tar.gz的归档压缩文件
3.源代码需要编译成为二进制形式之后才能够运行使用
4.源代码基本编译流程:
-
.configure 检查编译环境;
-
make对源代码进行编译;
-
make insall 将生成的可执行文件安装到当前计算机中
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.5.tar.gz
[root@localhost src]# ls
apr-1.6.5.tar.gz //下过来一个打包过的压缩包
[root@localhost src]# tar -zxvf apr-1.6.5.tar.gz //解压缩
[root@localhost src]# ls
apr-1.6.5 apr-1.6.5.tar.gz
[root@localhost src]# ls ./apr-1.6.5
CHANGES README apr.pc.in config.layout file_io locks random time
CMakeLists.txt README.cmake apr.spec configure helpers memory shmem tools
LICENSE apr-config.in atomic configure.in include misc strings user
Makefile.in apr.dep build docs libapr.dep mmap support
Makefile.win apr.dsp build-outputs.mk dso libapr.dsp network_io tables
NOTICE apr.dsw build.conf emacs-mode libapr.mak passwd test
NWGNUmakefile apr.mak buildconf encoding libapr.rc poll threadproc
///为什么这个里面没有INSTALL....
搭建局域网yum
1.创建一个专门目录
[root[@localhost](https://my.oschina.net/u/570656) /]# mkdir -p /data/yum
2.将光盘里资源复制进去
[root[@localhost](https://my.oschina.net/u/570656) /]# cp /mnt/Packages/a*rpm /data/yum
3.创建仓库
[root[@localhost](https://my.oschina.net/u/570656) /]# yum install -y createrepo
[root[@localhost](https://my.oschina.net/u/570656) /]# createrepo /data/yum
Spawning worker 0 with 138 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
4.安装扩展源,Nginx
[root[@localhost](https://my.oschina.net/u/570656) /]# yum install -y epel-release
[root@localhost /]# yum install -y nginx
5.修改配置文件,开启服务
[root@localhost ~]# vi /etc/nginx/nginx.conf
[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost test]# systemctl start nginx
6.关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
7.测试
rsync同步
本地的资源不够,可以使用rsync同步网上的资源到自己的库中!
[root@localhost ~]# rsync -av rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ /data/yum
_______________________________________________________________
| University of Science and Technology of China |
| Open Source Mirror (mirrors.ustc.edu.cn) |
|===============================================================|
| |
| We Mirror a great many OSS projects & Linux distros. |
| |
| Currently we don't limit speed. To prevent overload, Each IP |
| is only allowed to start upto 2 concurrent rsync connections. |
| |
| This site also provides http/https/ftp access. |
| |
| Supported by USTC Network Information Center |
| and USTC Linux User Group (http://lug.ustc.edu.cn/). |
| |
| Sync Status: https://mirrors.ustc.edu.cn/status/ |
| News: https://servers.ustclug.org/ |
| Contact: lug@ustc.edu.cn |
| |
|_______________________________________________________________|
receiving incremental file list
./
389-ds-base-1.3.7.5-18.el7.x86_64.rpm
389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm
389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm
更新完之后记得要 createrepo --update /data/yum 和 yum clean all!