赞
踩
注意:本文采用CentOS7.6
软件名.rpm
)yum
命令安装软件)编译
后的软件包,直击安装就能使用了.exe
软件包类似源代码
,不能在计算机上直击运行编译
生成二进制软件包后,才能安装使用,源码包一般可以在任何计算机上使用.tar.gz
.tar.bz2
tar.xz
zip
rpmbuild
工具重建成真正的rpm
包或者重建成源码包才可安装使用src.
rpmsrc
.rpm系统平台 | 包类型 | 工具 | 在线安装 |
---|---|---|---|
RedHat/CentOS/Fedora/SUSE | rpm | rpm,rpmbuild | yum |
Ubuntu/Debian | deb | dpkg | apt |
软件包类型 | 是否编译 | 安装难易程度 | 可定制性 |
---|---|---|---|
二进制包 | 否 | 直接安装 | 差 |
源码包 | 是 | 麻烦(配置+编译+安装) | 好 |
rpm
进行安装(先下载软件到本地再进行安装)yum
进行安装(在线下载然后进行安装)命令:rpm -ivh 软件包名
注意:软件包名必须写全
命令:rpm -e [软件包名]
命令:rpm -Uvh 软件包
或者:rpm -Fvh
常用选项:
-v
:输出详细信息-h
:打印散列标记,一般和-v一起使用-U
:升级软件包,如果该软件包没安装,会自动帮你安装-F
:升级软件包,如果该软件包没安装,不会自动帮你安装rpm -ql 软件包名
rpm -qa 软件包名
rpm -qlp 软件包(xxx.rpm)
rpm -qd 软件包名
rpm -qc 软件包名
rpm -qi 软件包名
rpm -qf 文件名
--force
:表示强制
强制安装软件包:rpm -ivh [软件包名] --force
强制卸载软件包:rpm -e [软件包名] --force
--nodeps
:忽略依赖关系
忽略依赖关系卸载:rpm -e [软件包名] --nodeps
忽略依赖关系安装:rpm -ivh [软件包名] --nodeps
其它:
rpm --import key_file
导入公钥用于检查rpm文件的签名rpm --checksig package.rpm
检查rpm包的签名Linux只是内核,Linux发行版本:GNU/Linux
注意:建议不要跨大版本号去安装软件包,尽量使用当前系统版本自带软件包安装
yum就是一个软件包管理器,不同版本的Linux的软件管理器名字可能会有差异,Centos上就是使用的yum
命令:yuim -y install [软件包名]
安装包组命令:`yum -y groupinstall [包组名]
注意:包组里面包含很多的软件包
命令:yum -y remove [软件包名]
卸载一组包:yum -y groupremove [包组名]
命令:yum update [软件包名]
yum list
yum repolist
yum clean all
yum makecache
源码安装一般可以去软件的官网,官网的源码包一般都是xxx.tar.gz
格式
.configure
(配置软件安装路径,也可以不配置,不配置使用默认路径)make
(把软件的源代码编译成类似于rpm可以直接安装的软件)make install
(把编译好的程序安装到Linux系统)使用源码安装安装cmarix
代码雨
对软件进行解压缩
命令:tar -zxf cmatrix-1.2a.tar.gz
进入到cmatrix-1.2a文件夹,对软件进行配置
使用命令:./configure
执行配置文件,没有指定安装目录,就会安装到默认路径
编译软件
命令:make
常见错误
cmatrix.c:37:20: fatal error: curses.h: No such file or directory
出现以上问题的主要原因在于系统中没有找到ncurses-devel软件包
因为这个软件是 C/C++
写的,需要C/C++
的编译器
安装命令:yum install gcc gcc-c++ ncurses-devel -y
如果遇到这种情况,把原来的解压目录删了,重洗解压安装
4. 安装软件
命令:make install
命令:cmatrix
一条命令解决编译安装:./configure && make && make install
cd [软件源码包]
./configure [选项]
查看./configure
用法
./configure --help
--prefix=...
Directories to put files in /usr/local 软件家目录
–bindir=...
$prefix/bin 命令的目录
--etcdir=...
$prefix/etc 配置文件的目录 httpd => /etc/httpd/httpd.conf
--mandir=...
$prefix/share/man man 文档路径
--locale=...
$prefix/share/locale 语言编码
tar -xzf axel-2.4.tar.gz
2. 进入axel
目录进行配置(不采用默认配置)
指定新的安装目录 /opt/axel
编译安装
命令:make && make install
测试和使用
命令:axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
出现以上问题的主要原因在于:我们没有采用默认的安装方式,所以导致当我们执行axel
命令的时候,找不到对应命令
解决这个问题有两种方式
找不到是因为我指定的安装目录不是默认的安装目录,指定安装到了/opt/axel/bin
解决方案:
给/opt/axel/bin/axel
创建一个快捷方式到/usr/local/bin
注意:这几个目录都是一些命令
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin
命令:ln -s [源文件路径] [软连接路径]
执行命令:ln -s /opt/axel/bin/axel /usr/local/bin/axel
查看/usr/local/bin/
目录
相当于在usr/local/bin
目录下创建了一个快捷方式
执行命令:axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
下载完成
其实我们的命令都是通过环境变量执行的
终端 => 命令 => 系统的环境变量(PATH => /etc/profile) => 一些命令的存放路径
axel多线程下载软件,通过源码的方式安装成功后,由于没有使用默认的安装路径,导致axel这个命令没有出现在系统的环境变量中,所以其会出现command not found。
查询当前系统的环境变量
命令:echo $PATH
把acel所在目录添加到环境变量
export PATH=$PATH:/opt/axel/bin
追加到最后一行echo 'export PATH=$PATH:/opt/axel/bin' >> /etc/profile
追加到最后一行再执行命令:source /etc/profile
,让配置文件马上生效
使用axel
命令下载文件
解决方案
命令:vim /etc/man.config
在最后一行增加MANPATH /opt/axel/share/man
进入到源码安装包中
安装软件的安装包等程序
命令:make uninstall
卸载编译与配置过程
命令:``make distclean
删除软件的目录
rm -rf /opt/axel
yum类似于手机的应用商店
RPM安装(下载软件、单独安装、需要解决依赖关系)
源码安装(下载软件的源码包,解压,进入目录=>配置+编译+安装)
yum源:相当于rpm软件包管理的升级版
能够解决软件包之间的依赖关系,提高工作效率
注意: yum源底层还是基于RPM进行软件安装操作的,所以yum安装软件后,我们也可以通过rpm -qa |grep 软件名称
yum仓库在本地(系统光盘/镜像文件) => 不需要网络的支持
yum仓库不在本地,在远程
国内比较知名的网络源
国外比较知名的网络源
centos源、redhat源、epel源等
特定软件:相关的网络源(Nginx、MySQL、Zabbix等),一般的源里找不到它们
在/etc/yum.repos.d
目录里
使用命令:tar -zcf repo.tar.gz *.repo
,对本地yum源进行备份
再用命令:rm -rf *.repo
,删除以.repo
结尾的文件
本机yum源,可以使用光盘镜像作为YUM源仓库,或者下载很多软件,使用软件包作为YUM源仓库
使用光盘镜像作为yum源仓库
在VM系统中装在CentOS7.8系统的光盘镜像
把光盘挂载到某个目录(mount)
命令:mount 设备文件原始地址(/dev目录) 要挂载的位置路径(盘 符)
常用选项:
-o
:挂载范式ro
:ro代表以readonly,只读的方式进行挂载rw
:rw表示以read/write,读写的方式进行挂载挂载到/mnt
目录下
先把目录清空:rm -rf /mnt/*
挂载命令:mount -o ro /dev/sr0 /mnt
sr0
是光盘文件
使用lsblk
命令:用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,CD-ROM等等
解挂命令:umount /mnt
把光盘故挂载添加到开机启动文件中
命令:echo 'mount -o ro /dev/sr0 /mnt' >> /etc/rc.local
/etc/rc.local,属于系统的开机启动文件。系统启动后,会自动加载并执行这个文件
编写本地yum本地仓库文件
第一步:创建一个以*.repo
结尾的文件,名称随意
第二步:编写yum.repo
文件
yum仓库的标准格式
[仓库标识名称]
,名称任意,在一个文件中可以拥有多个标识 name=仓库名称
baseurl=仓库的路径
,支持多种格式,file://本地路径,ftp://,http://或https:// gpgcheck=gpg密钥
,值可以是0(代表不检测),1(代表检测,如果是1,下方还要定义一个gpgkey=密钥连接) enabled=是否启动当前仓库
,值可以0,也可以是1,默认为1,代表启动仓库yum clean all
yum makecache
yum repolist
安装Apache
命令:yum -y install httpd
在Linux系统中,给定我们一个配置文件,怎么查询这个文件中每一个选项的作用呢?
命令:man 5 [配置文件名]
比如:man 5 yum.conf
https://opsx.alibaba.com/mirror
http://mirrors.163.com/
https://mirrors.tuna.tsinghua.edu.cn/
https://mirrors.huaweicloud.com/home
百度搜索 某某 mirror镜像源即可
知道想要的yum源官网,找到CentOS
根据官网提示,配置
cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
配置方案
命令:wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
4. 执行yum clean all
清除原有yum缓存
5. 执行yum makecache
(刷新缓存)或者yum repolist all
(查看所有配置可以使用的文件,会自动刷新缓存)
6. 测试
安装php:yum -y install php
什么是EPEL源?
答:EPEL是对官网源的一个扩展。
CentOS-Base.repo文件 => 基础源(官方在带的YUM源)
epel.repo文件 => 扩展源,是对官方YUM源的一个补充
命令:yum install epel-release -y
测试:一般源是没有小火车sl的,但epel
源有
比如特殊的几个软件,如Nginx、MySQL、Zabbix
找到官方文档,把YUM源配置,写入到一下文件中(repo文件)
找到官网
在/etc/yum.repos.d
目录下创建nginx.repo
把一下配置文件写入保存
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
清理缓存:
yum clean all
yum makecache
下载:yum -y install nginx
什么时候需要缓存软件?
编辑配置文件/etc/yum.conf
keepcache
:为1代表开启缓存,为0代表关闭缓存
只下载不安装软件:可以获得软件的软件包
命令:yum install --downloadonly --downloaddir=[保存路径] [软件名称]
createrepo
制作仓库的软件yum -y install createrepo
custom
文件夹做成一个本地的自建仓库createrepo custom
/etc/yum.repos.d
目录中创建一个custom.repo仓库vim custom.repo
[soft]
name=customyum
baseurl=file:///custom
gpgcheck=0
enabled=1
yum clean all
yum makecache
注意:这个是本地仓库目录,仓库里要提前保存有软件包,才能使用yum安装
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。