linux安装软件三种方式

397 阅读9分钟

1. 源码编译安装

含义: 程序是由开发人员写代码一个一个单词敲出来的

源码:编写好的.c .java 文件
编译:将人类写的代码翻译成二进制语言
安装:将二进制保存在键盘上
编译需要什么  源码包  *.tar.gz   *.tar.bz

缺点:

  • 如果编译出了问题,你看不懂源代码,无法解决
  • 安装过程复杂
  • 没有统一的管理人员

优点

  • 契合系统兼容性强
  • 如果你可以看懂源代码,修改新增功能
  • 比较自由

编译安装(三步)

第一步  ./configure  软件作者写的脚本(安装包中会有)

  • 可以更改你的安装路径,
  • 选择你要安装软件的功能
  • 检测你的安装环境

第二步  make   将源代码 编译成二进制语言,让电脑可以看懂

常见的编译软件  gcc   gcc-c++

第三步 make install  将二进制 数据写入硬盘,安装进系统

例:

 [root@localhost ~]# mkdir /app  ##在根目录下创建app目录
 [root@localhost ~]# cd /data   ##进入data目录
 [root@localhost data]# tar xf httpd-2.4.29.tar.bz2   ##解压httpd-2.4.29.tar.bz2
 [root@localhost httpd-2.4.29]# cd httpd-2.4.29  ##进入httpd-2.4.29目录
 [root@localhost httpd-2.4.29]#systemctl stop firewalld  ##关闭防火墙
 [root@localhost httpd-2.4.29]#setenforce 0  ##关闭核心防护
 [root@localhost httpd-2.4.29]#yum install apr* gcc* pcre* -y ##下载编译软件
 [root@localhost httpd-2.4.29]#./configure --prefix=/app  ##更改的安装路径
 [root@localhost httpd-2.4.29]#make -j2      ##编译成二进制语言,j2带表使用2颗cpu编译   
 [root@localhost httpd-2.4.29]#make install   ##数据写入硬盘
 [root@localhost httpd-2.4.29]#cd /app/bin
 [root@localhost bin]#/app/bin/apachectl start   ##开启服务
 [root@localhost bin]#ss -ntap | grep 80   ##有就没问题
LISTEN   0   128   [::]:80   [::]:*   users:(("httpd",pid=1700,fd=4),("httpd",pid=1618,fd=4),("httpd",pid=1617,fd=4),("httpd",pid=1616,fd=4),("httpd",pid=1615,fd=4))

ss    系统活动的状态
-n   以数字形式显示
t     tcp 协议   
u    udp协议
a    所有的详细信息
p   端口

 [root@localhost bin]#/app/bin/apachectl stop  ##停止服务

报错处理方式: 如果make出错要删除这个文件后再,make不然一直报错  

2. rpm安装(安装包管理工具)            

优点:

  • 统一的安装包格式
  • 已经帮你编译完成
  • 使用简单

缺点:

  • 有依赖关系(安装a 我需要先安装b)

下载安装包: .rpm  结尾

2.1 查询

对已安装程序查询

[root@localhost Packages]#rpm -qa  ##-q加上软件名字是否已安装了某软件
[root@localhost Packages]#rpm -q tree  
tree-1.6.0-10.el7.x86_64
[root@localhost Packages]#rpm -qi  tree  ##-qi 软件包名(软件包的详细信息)
[root@localhost Packages]#rpm -ql  tree  ##-ql 软件名,该软件的所有文件列表

-qc  配置文件  更详细的分类
-qd  文档                                   
-qf  软件名   该软件出自哪个安装包

[root@localhost Packages]#rpm -qf /bin/bash
bash-4.2.46-28.el7.x86_64

对未安装程序查询

rpm 要知道包的全部名称

选项说明
q使用询问模式,当遇到任何问题时,rpm指令会先询问用户
p    查询指定的RPM套件档
i安装显示套件的相关信息
l 显示套件的文件列表。
c只列出组态配置文件
d只列出文本文件
v     显示详细过程
h   进度条 #######   
e卸载
U升级
卸载:rpm  -e   软件名(缩写)
升级:rpm  -U  软件名(要升级包)
辅助选项
--force、   强制安装
--nodeps   不检测依赖关系

RPM-GPG-KEY-CentOS-7 验rpm包完整性和安全性

[root@localhost Packages]#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  ##导入验证包
[root@localhost Packages]#rpm -K  httpd-2.4.6-67.el7.centos.x86_64.rpm  ##验证rpm包
httpd-2.4.6-67.el7.centos.x86_64.rpm: rsa sha1 (md5) pgp md5 确定

3.yum仓库

yum仓库也是用rpm包,他是为了解决rpm包管理工具的依赖关系
想用系统自带的yum仓库  网络要配置好。
yum [options] [command] [package ...]
-   options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
-   command: 要进行的操作。
-   package: 安装的包名。

3.1yum常用命令

  1. 列出所有可更新的软件清单命令:yum check-update
  2. 更新所有软件命令:yum update
  3. 仅安装指定的软件命令:yum install <package_name>
  4. 仅更新指定的软件命令:yum update <package_name>
  5. 列出所有可安裝的软件清单命令:yum list
  6. 删除软件包命令:yum remove <package_name>
  7. 查找软件包命令:yum search <keyword>
  8. 清除缓存命令:
    -   yum clean packages: 清除缓存目录下的软件包
    -   yum clean headers: 清除缓存目录下的 headers
    -   yum clean oldheaders: 清除缓存目录下旧的 headers
    -   yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
-   **options:** 可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
-   **command:** 要进行的操作。
-   **package:** 安装的包名。

yum客户端安装的过程

- 客户端第一次连接会将元数据文件下载下来
- 根据元数据中 的依赖关系和包的路径,将所需要的安装包全部下载下来,放到缓存目录
- 安装结束后,将缓存目录中的安装包全部删除

yum是c/s架构

    c   client     
    s   server
    服务端  需要一台服务器来提供服务

服务器

成为服务器一定要有以下两个文件夹:
     安装包(Packages固定,但是同一都叫Packages)
     元数据 (repodata 固定的)
        A. 安装包的路径
        B. 依赖关系
        C. 权限

配置文件不建议修改保持默认
[root@localhost yum]#vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever   #下载安装包的目录
keepcache=0
debuglevel=2
logfile=/var/log/yum.log  #日志文件
exactarch=1
obsoletes=1
gpgcheck=1      #是否检测包的安全性
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release

客户端

客户端需要配置一个文件指明服务器的路径
客户端的配置文件固定位置在 /etc/yum.repos.d/     
注意:客户端配置文件 必须以.repo结尾

3.2 挂载

linux 当中一切皆文件,无论硬件软件都要当成文件来使用,硬件不能直接当成文件来使用的,再加硬盘只能在根分区下进行操作
挂载:将硬件和根分区下某一文件夹做关联,相当于这个文件夹是进入硬盘的一个入口

linux 当中使用命令的 修改的操作 基本上都是一次性的,重启会失效。

例:

挂载光驱:mount  /dev/cdrom    /mnt
                硬件设备    挂载点
[root@localhost Packages]#mount /dev/cdrom /mnt/  ##将光盘挂载到到/mnt上
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost Packages]#df -h   ##查看挂载情况
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   12M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   38G  2.2G   35G    6% /
/dev/sda1               1014M  183M  832M   18% /boot
/dev/mapper/centos-home   19G   33M   19G    1% /home
tmpfs                    378M     0  378M    0% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /mnt   ##已挂载上

解挂载

umount  /挂载的目录   

3.3 搭建一个本地yum仓库

服务端需要以下内容:

安装包:1通过挂载    2复制
元信息:1自行生成    2复制

客户端需要:

手写配置文件
[base]   ##仓库的名字   无特殊需求,子定义
name=CentOS-$releasever - Base     ###仓库的描述  自定义
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/    ###仓库服务器的路径
gpgcheck=1                                             ####检验包的安全性完整性
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7   ###如果gpgcheck=1     需要指明 验证文件的位置
enabled=1   ###代表启用该仓库     enabled=0  代表停用该仓库   不写默认开启


baseurl 有四种表示方式:
    file://     本地的路径(当前系统的路径)
    http://   网页的形式
    https://  加密
    ftp://      文件共享服务来实现

3.3.1 创建本地yum仓库具体过程

[root@localhost yum.repos.d]# mount /dev/sr0 /mnt/  ##挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost yum.repos.d]# cd /etc/yum.repos.d/   ##进入/etc/yum.repos.d/目录
[root@localhost yum.repos.d]# mkdir bak  ##新建bak目录
[root@localhost yum.repos.d]# mv C* bak/  ##将当前目录下的所有C开头的文件移动到bak目录下
[root@localhost yum.repos.d]# vim local.repo   ##新建本地yum配置文件
[loacl]
name=loacl
baseurl=file:///mnt
gpgcheck=0
enabled=1

##:wq保存退出

[root@localhost yum.repos.d]#yum clean all ##清除缓存
[root@localhost yum.repos.d]#yum makecache  ##重新建立元数据
[root@localhost yum.repos.d]# yum -y install vim  ##下载vim实验是否成功
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
软件包 2:vim-enhanced-7.4.160-2.el7.x86_64 已安装并且是最新版本
无须任何处理

查看系统的硬件信息:

1.查看内存

[root@localhost ~]#free -h  ##友好显示
              total        used        free      shared  buff/cache   available
Mem:           3.7G        192M        3.1G         11M        359M        3.3G
Swap:          3.9G          0B        3.9G

buff   写缓存
cache 读缓存
Swap:  当机器的内存不足  将硬盘上的空间当做内存使用。

2.查看硬盘    

[root@localhost ~]#lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0   37G  0 lvm  /
  ├─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.1G  0 lvm  /home
sr0              11:0    1  4.2G  0 rom  /mnt

[root@localhost ~]#fdisk             
A. 大小
B. 读性能
C. 写性能

3.查看磁盘的读写性能

[root@localhost ~]# iostat
Linux 3.10.0-1160.71.1.el7.x86_64 (localhost.localdomain) 	20220728日 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.03    0.00    0.04    0.01    0.00   99.93

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.64        16.63         4.93     296166      87804
scd0              0.03         0.74         0.00      13168          0
dm-0              0.60        14.72         4.70     262258      83688
dm-1              0.00         0.12         0.00       2204          0
dm-2              0.01         0.07         0.11       1260       2048

4.查看cpu

[root@localhost ~]#lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    2
座:                 2
NUMA 节点:         1
厂商 IDGenuineIntel
CPU 系列:          6
型号:              126
型号名称:        Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz
步进:              5
CPU MHz1497.598
BogoMIPS2995.19
虚拟化:           VT-x
超管理器厂商:  VMware
虚拟化类型:     完全
L1d 缓存:          48K
L1i 缓存:          32K
L2 缓存:           512K
L3 缓存:           8192K
NUMA 节点0 CPU0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid avx512f avx512dq rdseed adx smap clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec arat pku ospke avx512_vpopcntdq md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities

5.系统架构

[root@localhost ~]#arch
x86_64

6.内核版本

[root@localhost ~]#uname -r
3.10.0-1160.71.1.el7.x86_64