• 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   软件名   //卸载

  • 相关阅读:
    【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 删除并获得点数(难度⭐⭐)(76)
    Kotlin第七弹:Kotlin条件控制
    nvm安装与使用
    51单片机DHT11温湿度控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)
    内存空间的分配与回收之连续分配管理方式
    面试官:你说说 Mysql 索引失效有哪些场景?
    Android recycleview瀑布流中间穿插一行占满一屏
    AI工具-PPT-SlidesAI
    蓝桥杯每日一题2023.10.22
    谁说.NET没有GC调优?只改一行代码就让程序不再占用内存
  • 原文地址:https://blog.csdn.net/2401_87121330/article/details/143325235