linux系统安装软件的三种方式
一些概念介绍
- 程序:未执行的代码。
- 进程:执行起来的代码。
- 线程:进程运行起来之后,线程执行运行过程中的代码。
- 源码包:由一大推源代码程序组成,是由程序员按照特定的格式和语法编写好的,现成的安装包。它又叫做二进制包,是成功编译之后产生的包。
- 二进制:是计算机语言,计算机语言只有0和1。
- 安装源文件的位置:ubuntu /etc/apt/sources.list 在线源 ; centos /etc/yum.repos.d/*.repo 在线源和本地源(光盘镜像)。
- centos关闭防火墙 systemctl stop firewalld ,关闭srtenforce的安全机制 setenforce 0 ; ubuntu关闭防火墙 ufw disable。
一、编译安装
软件依赖关系既不查找也不安装,需要自己查找安装依赖环境。
1.安装依赖环境
ubuntu:
apt -y install libpcre3-dev zlib1g-dev libssl-dev build-essential
centos:
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel
2.创建程序用户
useradd -M -s /sbin/nologin nginx
-M 只创建用户,不创建家目录
-s 指定创建用户的登录shell
nologin 禁止该用户登录系统
nginx 用户名nginx
3. 解包-->配置-->编译-->安装
配置、编译、安装哪一步出错都要回到配置,重新配置
以nginx为例
(1)解包
apt install -y lrzsz //lrzsz是一个用于文件传输的软件包
tar xf nginx-1.22.0.tar.gz
(2)配置
cd nginx-1.22.0/
ls
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
//安装到指定的路径 /usr/local/ngin,规定所有者和所在组都为nginx
(3)编译
make -j 4
//-j 4 用4核,安装速度快
(4)安装
make install
//编译、安装命令可以用&&连接起来,一起执行
如 make -j 4 && make install
4.对程序进行配置
对权限、系统控制的配置
//让系统识别nginx的操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/bin/
//修改权限
cd /usr/local
ll
chown -R nginx.nginx nginx/ //-R递归修改nginx安装目录的所有者和所在组都为nginx
cd nginx
mkdir run //给进程号创建一个目录
chown nginx.nginx run
cd conf/
ll
vim nginx.conf //nignx的主配置文件nignx.conf
//修改pid的路径
pid /usr/local/nginx/run/nginx.pid;
nginx -t //检查配置文件的语法是否正确
vim /lib/systemd/system/nginx.service //编辑 nginx 服务的 systemd 配置文件
//以下为编辑的内容
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/run/nginx.pid
#注意文件位置,如果不对 启动不了
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target//重新加载 systemd 配置
systemctl daemon-reload
//重启服务以应用更改
systemctl restart nginx
cd //usr/local/nginx/html
vim index.html //修改内容
根据ip地址访问nginx的web页面
5.编译安装的好处和缺点
好处
-
源码包是开源,如果你会代码,可以修改源代码
-
可以自定义模块和功能
缺点
-
繁琐
-
对新手非常不友好
二、rpm和dpkg
rpm和dpkg,他们会自动查找安装软件的依赖关系,但不会安装这些依赖关系。
rpm
rpm只限于centos,包都是以.rpm为结尾
rpm -ivh 软件包.rpm //centos安装rpm包的方法
rpm -e 应用名称 //卸载应用
参数 | 功能 |
-i | 安装 |
-e | 卸载 |
-v | 显示安装过程 |
-h | 以#显示安装进度 |
-q | 查询当前系统中是否安装了该软件,编译安装的软件查询不出来 |
dpkg
dpkg一般用于ubuntu,包是以.deb结尾的
参数 | 功能 |
-i | 安装 |
-r | 卸载 |
-l | 查询当前系统中是否安装了该软件 |
-p | 完全清除软件包(不推荐) |
三、apt和yum
自动化一键式安装
yum、apt 只要有源即可,自动下载自动安装,自动解决依赖关系
apt和yum的安装 ------> 安装完成之后软件的默认位置都在/etc
linux系统的硬件设备必须要和本地目录做挂载才能使用
设备的挂载命令mount
挂载的规则:
1.一个设备只能挂载一个目录
2.挂载点就是linux系统中的一个目录,这个目录最好是一个空目录(新建目录)
例如:
mount /dev/sr0 /mnt/
前一个是设备,后一个是本机的目录(必须绝对路径表示)
df -h 查看挂载
参数 | 命令 |
-o | 可以指定挂载的参数,比如指定挂载目录的权限和配额 |
-a | 自动挂载,根据/etc/fstab的配置实现 |
-t | 指定文件系统的类型,系统可以自动识别,可以不加 |
-v | 显示详细过程,可以不加 |
做yum的本地源
-
使用iso镜像文件,设备状态的两个连接选项勾上
-
进行挂载
mount /dev/sr0 /mnt
-
对yum仓库的配置文件进行配置
cd /etc/yum.repos.d/ //进入配置文件
vim local.repo //新建配置文件
[local]
#[ ]里的名称必须和文件名一致
name=local
#这个是描述信息,name=可以是任意内容
baseurl=file:///mnt
#指定光盘镜像的挂载目录作为软件的仓库源
enabled=1
#开启此yum源,可以不加,默认是开启的
gpgcheck=0
#不检查软件的序列号,加快下载速度
Esc键 :wq
yum clean all && yum makecache
清除之前的缓存信息 && 更新并同步元数据
不清除缓存也没事,但是一定要同步更新元数据
元数据保存软件之间的依赖关系
每次有新的源配置加入到/etc/yum.repos.d/都需要执行更新同步元数据
添加yum的在线源
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum update
yum的安装软件和卸载软件
//以软件tree为例
yum install -y tree 安装
yum remove -y tree 卸载
添加apt的在线源
cd /etc/apt/
vim sources.list
//可以添加阿里源,比如以下的几行
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted......
Esc键 :wq
apt-get update //同步并更新
apt的安装软件和卸载软件
apt -y install 软件名 //安装
apt -y remove 软件名 //卸载