Linux软件管理

Linux软件管理

一、RPM 软件包管理

1、RPM 安装命令(rpm -ivh)

1、 基本语法
rpm -ivh RPM包全名
2、选项说明
选项功能
-iinstall, 安装
-v–verbose, 显示详细信息
-h–hash, 进度条
–nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了–nodeps你就能装上了
–force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用–force强制安装
3、安装firefox软件
[root@smx ~]# rpm -ivh firefox-68.10.0-1.el7.centos.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
1:firefox-68.10.0-1.el7.centos     ################################# [100%]

2、RPM 查询命令(rpm -qa)

1、基本语法
语法说明
rpm -q 程序包名称查询指定程序包是否安装
rpm -qa显示当前系统中所有rpm程序包列表
rpm -qi 程序包名称查看指定程序包的名称、版本、许可协议、用途描述等详细信息
rpm -ql 程序包名称显示指定的程序包在当前系统中安装的所有目录、文件列表
rpm -qf 文件名或目录查看指定的文件或目录是由哪个程序包所安装的
2、 查询firefox软件安装情况
[root@smx ~]# rpm -qa | grep firefox
firefox-68.10.0-1.el7.centos.x86_64

3、RPM 卸载命令(rpm -e)

1、基本语法
  • rpm -e RPM软件包
  • rpm -e —nodeps 软件包
2、选项说明
选项功能
-e卸载软件包
–nodeps卸载软件时,不检查依赖,这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。
3、卸载firefox软件
[root@smx ~]# rpm -e --nodeps firefox

4、RPM包升级

rpm -Uvh 包全名

​ -U:升级安装,如果没有安装过,则直接安装;如果安装的版本太旧,则升级;

​ -F:升级安装,必须有旧版本,才能够升级;没有旧版本,则不会安装;

5、Rpm工具管理RPM软件包实战

RPM安装
	[root@smx ~]# rpm -ivh 软件包名称
	-i install
	-vh verbose human	

	[root@smx ~]# rpm -ivh lftp-4.0.9-1.el6.x86_64.rpm

查询软件安装路径
	[root@smx ~]# rpm -ql 软件名称
	-q query
	-l list
	[root@smx ~]#  rpm -ql lftp-4.0.9-1.el6.x86_64

查询软件的名称
	[root@smx ~]# rpm -qa
	[root@smx ~]# rpm -qa | grep lftp
	lftp-4.0.9-1.el6.x86_64
	-a all
查询软件详细信息
	[root@smx ~]# rpm -qi 软件名称
	[root@smx ~]# rpm -qi gedit-2.28.4-3.el6.x86_64
	-i information

查询某一个文件是哪个软件产生的
	[root@smx ~]# rpm -qf /etc/passwd
	setup-2.8.14-20.el6.noarch
	[root@smx ~]# rpm -qf /bin/rpm
	rpm-4.8.0-32.el6.x86_64
	-f file

软件卸载
	[root@smx ~]# rpm -e 软件名称
	-e erase

查询软件的配置文件
  [root@smx ~]# rpm -qc  软件名称

--force  在安装的时候用(强制安装)
--nodeps 在卸载的时候用(卸载的时候不检查依赖关系)
-test: 测试安装,不会实际安装,仅仅检测依赖性;

二、YUM软件包管理(重点)

基本语法

yum [参数] [选项]

选项说明

选项说明
install安装软件
update更新软件
remove卸载软件
list显示软件包信息
clean清理过期的yum缓存
deplist显示yum软件包的所有依赖
check-update显示软件是否有更新

1、yum工具使用大全

安装wget软件

[root@smx ~]# yum install -y wget

卸载wget软件

两种方法第一种好使
[root@smx ~]# yum remove -y wget
[root@smx ~]# yum erase  -y wget

清理Yum缓存

[root@smx ~]# yum clean all

缓存软件包信息
提高搜索/安装软件的速度

[root@smx ~]# yum makecache

查询yum源信息

[root@smx ~]# yum repolist

查找软件

[root@smx ~]# yum search  mysql
此命令会搜索到系统已经安装和yum源里没有安装的软件信息,可以用他简单测试yum是否好用

查看软件依赖性关系

[root@smx ~]# yum  deplist 包名

查看文件属于哪个软件

[root@smx ~]#  yum provides ld-linux.so.2

查看系统已经安装好的软件组和没有安装的软件组

[root@smx ~]# yum grouplist

查看软件组包含的具体软件

[root@smx ~]# yum  groupinfo

重装软件

root@smx ~]# yum  reinstall    软件名

2、配置网络YUM源

替换阿里源

https://developer.aliyun.com/mirror/

yum的软件源配置文件默认是在/etc/yum.repos.d 目录下

先备份原来的软件源配置文件
[root@smx ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
配置阿里云yum源:
[root@smx ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
配置阿里云epel仓库这是一个扩展源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

然后再生成一下yum的缓存

# 生成缓存前,先清理一下缓存 
[root@smx ~]# yum clean all
# 生成缓存 
[root@smx ~]# yum makecache

3、配置本地YUM源

1.备份/etc/yum.repos.d的文件
[root@smx ~]# cd /etc/yum.repos.d/
[root@smx yum.repos.d]# ls
CentOS-7-base.repo CentOS-7-epel.repo myrepo
[root@smx yum.repos.d]# mv *.repo myrepo/
[root@smx yum.repos.d]# ls myrepo/
CentOS-7-base.repo CentOS-7-epel.repo
2.先创建一个挂载目录
mkdir /opt/myyum
3.挂载本地镜像到挂载目录
mount /dev/cdrom /opt/myyum
4.写一个配置文件
[root@smx yum.repos.d]# vim myyum.repo
[myyum]
name=bendijingxiangcangku
baseurl=file:///opt/myyum
enabled=1
gpgcheck=0
5.查看
yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
myyum | 3.6 kB
00:00:00
(1/2): myyum/group_gz | 153 kB
00:00:00
(2/2): myyum/primary_db | 6.1 MB
00:00:00
repo id repo name
status
myyum bendijingxiangcangku
10,072
repolist: 10,072

4、自建YUM仓库(补充老师没讲,需要自己准备rpm包)

自建yum仓库

1.创建一个软件目录
[root@167 ~]# mkdir /0224_software

2.准备软件的所有rpm包,你可以选择用光盘仓库,也可以用这个神奇的办法
# 拿vim举例,安装vim以及它的依赖包

yum install --downloadonly  --downloaddir=/0224_software/     vim

--downloadonly 只下载不按照
--downloaddir  指定本地下载目录
3.使用命令,让该目录成为yum可识别仓库
yum install createrepo -y

4.使用该命令,创建本地仓库
[root@167 0224_software]# 
[root@167 0224_software]# createrepo /0224_software/
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 1 pkgs
Spawning worker 2 with 0 pkgs
Spawning worker 3 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@167 0224_software]# ll /0224_software/ -a
总用量 7156
drwxr-xr-x   3 root root     114 330 11:56 .
dr-xr-xr-x. 30 root root    4096 330 11:46 ..
drwxr-xr-x   2 root root    4096 330 11:56 repodata
-rw-r--r--   1 root root 6205700 1218 2020 vim-common-7.4.629-8.el7_9.x86_64.rpm
-rw-r--r--   1 root root 1106008 1218 2020 vim-enhanced-7.4.629-8.el7_9.x86_64.rpm


5.此时,创建repo文件,指向这个目录即可,就是一个本地仓库目录
你先移除其他的repo文件,让yum被识别

cat >> /etc/yum.repos.d/my_dir.repo <<EOF
[base]
name=0224-linux-my_dir
baseurl=file:///0224_software/
enabled=1 # 这个参数是控制,该repo启用,还是关闭的
gpgcheck=0
EOF


6.此时yum本地仓库就好使了
yum install vim -y                                             
完毕!

三、编译安装LNMP(大实战)

准备好安装包
linux:centos7-9
nginx:nginx-1.22.0
http://nginx.org/download/nginx-1.22.0.tar.gz
mysql-boost-5.7.20.tar.gz
https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.20.tar.gz
php:php-7.1.10.tar.bz2
https://www.php.net/distributions/php-7.1.10.tar.bz2
1、关闭防火墙和selinux
1.关闭防火墙
[root@smx ~]# systemctl stop firewalld
[root@smx ~]# systemctl disable firewalld
2.关闭selinux
[root@smx ~]# setenforce 0
2.编译安装mysql
1.清理原有环境
# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
# userdel -r mysql
# rm -rf /etc/my*
# rm -rf /var/lib/mysql
2.安装mysql相关的依赖关系软件
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make glibc
automake autoconf cmake wget vim
2.创建运行用户
useradd -M -s /sbin/nologin mysql
3.编译安装,安装到/opt目录下
cd /opt
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-
5.7.20.tar.gz
tar zxvf mysql-boost-5.7.20.tar.gz
cd /opt/mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
4.编译和安装
make && make install
如果安装出错,想重新安装:
不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt
5.修改mysql配置文件
vim /etc/my.cnf --如果打开文件有内容将文件中所有内容注释掉,在添加如下内容
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_
VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_C
ONCAT,ANSI_QUOTES
6.设置环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
7.更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
8.初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
9.修改mysql 的登录密码
3.编译安装nginx
mysqladmin -u root -p passwd "123"
10.登录数据库 授权远程登录
mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
11.查看myql端口
[root@smx bin]# netstat -tunlp | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
21481/mysqld
3、编译安装nginx
1.安装依赖包
yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perldevel
perl-ExtUtils-Embed gd-devel
2.创建nginx用户不指定家目录和禁止登录
useradd -M -S /sbin/nologin nginx
3,编译安装nginx,指定目录到/opt下
wget http://nginx.org/download/nginx-1.20.0.tar.gz
tar zxvf nginx-1.20.0.tar.gz -C /opt/
cd nginx-1.20.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
4.编译且安装
make && make install
5.创建一个软链接
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
6.配置nginx系统服务
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
7.添加权限,启动服务,并设置开机自启
chmod 754 /lib/systemd/system/nginx.service[root@smx ~]#
8.查看端口
netstat -tunlp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
31490/nginx: master
4.编译安装php

image-20240107230712197

解压时出现这个报错就是没装bz2
yum -y install bzip2

1.安装依赖包
yum -y install gd libjpeg libjpeg-devel libpng libpng-devel freetype freetypedevel
libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssldevel
2.编译安装到/opt目录下
cd /opt
wget https://www.php.net/distributions/php-7.1.10.tar.bz2
tar jxvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
3.编译且安装
make && make install
4.创建软链接
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
5.修改配置文件
php有三个配置文件:
php.ini 主配置文件
php-fpm.conf 进程服务配置文件
www.conf 扩展配置文件
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai
php -m #验证安装的模块
#调整进程服务配置文件:
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid
#调整扩展配置文件:
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
6.启动php=fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
7.检查端口 (9000是php=fpm监听端口)
netstat -tunlp | grep 9000
#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于
Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
cd /opt/php-7.1.10/sapi/fpm
备份配置文件,重启服务
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service
8.配置nginx支持php解析
vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
#将 /scripts 修改为nginx的工作目录
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#$document_root 代表当前请求在root指令中指定的值
include fastcgi_params;
}
重启服务
systemctl restart nginx.service
9.浏览器访问
http://10.0.0.120/index.php

image-20240107230740197

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux 软件管理的重点可以归纳为以下几个方面: 1. 包管理器:Linux 发行版通常都提供了包管理器来管理软件安装和升级。常见的包管理器有 apt (Debian/Ubuntu),yum/dnf (Red Hat/CentOS/Fedora),zypper (openSUSE),pacman (Arch Linux) 等。通过包管理器,你可以方便地搜索、安装、升级和卸载软件包。 2. 依赖管理Linux 软件通常有依赖关系,依赖管理是确保软件能够正确运行的关键。包管理器可以自动解决软件包依赖关系,并自动安装所需的依赖项。如果你手动下载软件包,可能需要手动解决依赖关系。 3. 软件管理:包管理器从软件源中获取软件包。软件源是存储软件包的服务器或镜像站点。你可以配置包管理器使用特定的软件源。合理选择软件源可以提高下载速度和软件包的更新频率。 4. 软件仓库:除了官方软件源外,许多 Linux 发行版还提供了额外的软件仓库,如 Ubuntu 的 Universe、Multiverse,Fedora 的 RPM Fusion 等。这些仓库提供了更多的软件选择,但需要手动添加并更新。 5. 编译和源码管理:有些软件可能没有预编译的软件包可用,你需要手动编译源代码。在这种情况下,你需要了解如何使用编译器、解决编译依赖关系,并配置编译选项。 6. 软件更新与安全性:及时更新软件是保持系统安全和稳定的重要措施。包管理器可以轻松地进行系统和软件包的更新。确保及时启用自动更新功能,并定期检查和安装可用的安全更新。 以上是 Linux 软件管理的一些重点。不同的发行版可能有细微的差异,但核心原则是相似的。熟悉你所使用的发行版的软件管理工具和流程,可以更好地管理和维护你的 Linux 系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习运维的欣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值