一、检查环境:
1、下载ios系统文件
2、打开ultraiso->菜单->文件->打开系统.ios镜像
3、启动->写入硬盘镜像->(勾选刻录校检)->写入
注意:
不是“制作硬盘镜像” 这个是把当前盘做成镜像
勾选刻录校检 , 不勾选有时会有错,不太稳
注意驱动器: 到时在bios也就是显示这个
bios 设置:
Boot->Option #1 //这些就是硬盘
Boot->Option #2
调风扇:
开机按F2进入在 “ iDRAC Settings(iDRAC 设置) → Thermal ” 里面调(这个要下拉才能看到,我以为没有)->
Fan Speed Offset -> 下拉中 ->
Off
Low(+23%)
Medium(+45%)
High(+68%)
Maximum(+100%) //用这个最快的风速
查看当前操作系统是ubuntu还是centos
1、执行: lsb_release -a
2、命令: cat /etc/redhat-release
3、命令: cat /etc/issue
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
查看当前操作系统cpu信息
cat /proc/cpuinfo
lscpu #这个是更好
[web@localhost ~]$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 72 # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l
On-line CPU(s) list: 0-71
Thread(s) per core: 2
Core(s) per socket: 18 # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq
座Socket(s): 2 # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
NUMA 节点: 2
厂商 ID: GenuineIntel
CPU 系列: 6
型号: 79
型号名称: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
步进: 1
CPU MHz: 1199.835
CPU max MHz: 3000.0000
CPU min MHz: 1200.0000
BogoMIPS: 4599.87
虚拟化: VT-x
L1d 缓存: 32K
L1i 缓存: 32K
L2 缓存: 256K
L3 缓存: 46080K
NUMA 节点0 CPU: 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70
NUMA 节点1 CPU: 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 invpcid_single ssbd rsb_ctxsw ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap intel_pt xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts spec_ctrl intel_stibp flush_l1d
华为的:
[root@wll-88 ~]# lscpu
CPU(s): 1 # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1 # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq
Socket(s): 1 #座 # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Gold 6161 CPU @ 2.20GHz
Stepping: 4
CPU MHz: 2200.000
BogoMIPS: 4400.00
Hypervisor vendor: KVM #虚拟化
Virtualization type: full
L2 cache: 1024K
L3 cache: 30976K
NUMA node0 CPU(s): 0
查看内存:
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 125G 994M 124G 10M 302M 124G
Swap: 4.0G 0B 4.0G
查看硬盘:
df -h
lsblk -f
lsblk 这个更好
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3.7T 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 3.7T 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 4G 0 lvm [SWAP]
└─centos-home 253:2 0 3.6T 0 lvm /home
sdb 8:16 0 3.7T 0 disk
禁用多余的用户:
在Linux中,可以使用usermod命令来禁用或启用用户。
要禁用用户,需要使用-L选项并指定要禁用的用户名。下面是示例命令: usermod -L username
启用用用户,-U 参数表示解锁用户的账户。启用用户后,该用户可以登录系统: usermod -U username
查看用户:
cat /etc/passwd
sudo yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel openssl-devel
sudo yum -y install gcc automake autoconf libtool make
复制
cp -rf /usr/local/servers/web/nginx.conf /usr/local/servers/nginx19/conf/nginx.conf
cp -Rp hyperf hyperf_back_3
scp -o "StrictHostKeyChecking no" -r web@40.73.71.100:/usr/local/servers/down /usr/local/servers/down //拷贝 服务器对拷贝 复制
scp -r -o port=62210 "StrictHostKeyChecking no" -r web@www.diyyq.com:/home/data/docker/web/www/wll/public/images/ ./ ##linux scp 非22端口,scp 、ssh非22端口的服务器方法 //拷贝 服务器对拷贝 复制
大小
du -sh down/*
df -h
echo "">pic_duzunlife_cn.log
du -sh ./* | sort -h 从小到大
du -sh ./* | sort -hr 从大到小
du -sh ./* | sort -hr | grep '4.0K'
du -sh ./* | sort -hr | grep '4.0K' | awk '{print $2}' | xargs rm -rf #删除4.0K的文件
安全设置:
1.关闭邮箱服务占用端口。
systemctl stop postfix //停止25端口邮箱服务
systemctl disable postfix //关闭邮箱服务自动启动
//systemctl enable postfix //开启邮箱服务自动启动
linux命令查看开放哪些端口
/usr/local/qcloud/wll/squid.sh >/tmp/wll_squid.log & 黑洞: 把squid.sh的输出入到/tmp/wll_squid.log 中 并后台运行
ps -fe (查看所有的父ID,这个才是核心)
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
netstat -an | grep 3306 查看所有3306端口使用情况·
netstat -anp |grep 3306 查看某一端口的连接客户端IP 比如3306端口
netstat -pnt |grep :3306 |wc 查看某一端口的连接数量,比如3306端口
#这用这何以看是哪个程序在运行这个端口, 看到的是 159928/python , pid为159928
[web@localhost ~]$ sudo netstat -lenp | grep 8201
tcp 0 0 0.0.0.0:8201 0.0.0.0:* LISTEN 0 20194510 159928/python
[web@localhost ~]$ ps aux | grep 159928
root 159928 1.7 0.2 27468828 701276 pts/1 Sl+ 18:29 0:21 python desc_face_fastapi_cpu_v2.py
web 160563 0.0 0.0 112824 984 pts/3 S+ 18:49 0:00 grep --color=auto 159928
网络说明: https://zhuanlan.zhihu.com/p/458631078 --network-alias 与 –-network=host
查看端口: sudo netstat -tanlp 查看使用的端口情况, 查看端口
netstat -nap | grep 10493
yum -y install net-tools
查看进程端口:
(mygpt) root@dz-desktop:/home/ftp/chatglmTran# ps aux
root 3397 0.0 0.1 716244 19812 pts/1 Sl+ 16:33 0:00 /home/down/frp_0.38.0_linux_amd64/frps -c /home/down/frp_0.38.0_linux_amd64/frps.ini
(mygpt) root@dz-desktop:/home/ftp/chatglmTran# netstat -nelp
tcp6 0 0 :::7000 :::* LISTEN 0 43683 3397/frps
rm ~/.bash_history 彻底 清除历史记录,要不到时有关机命令错误操作----------------
查看dns: cat /etc/resolv.conf
---------------- CentOS 7官方停止维护yum源安装报错,如何修改yum源为阿里云 ----------------
方式一、感觉已失效
centos7,2024年6月30日停止维护(EOL,End Of Life),自此时间后Centos7将无法使用Centos社区官方提供的yum源下载软件,当使用默认源下载时会报如下错误:
curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
...
Cannot find a valid baseurl for repo: base/7/x86_64
或者
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
表示官方软件仓库的域名地址(mirrorlist.centos.org)已经被删除了解析,已无法访问,建议用户更换其他系统,如果您一定要使用CentOS 7.x,那么只能将系统的yum源更换为第三方yum源。
以下是将yum源更换为阿里云的教程。
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
如果你是完全mini安装的centos还没有 curl工具,可以尝试以下命令然后再 clean和make。
cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.aliyun.com/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
然后安装测试:
yum install epel-release -y
yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm # 必须安装 RPM Fusion 仓库
yum update
yum install ffmpeg ffmpeg-devel -y
ffmpeg -version
pip install ffmpeg-python -i https://pypi.tuna.tsinghua.edu.cn/simple
方式二、有效
1. 重命名原来的文件:
cd /etc/yum.repos.d/
mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak
mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak
vim CentOS-SCLo-scl-rh.repo
2. 粘贴以下内容:
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
3. 再次安装
yum install wget
方式三、在docker中测试
357 cat /etc/yum.repos.d/CentOS-Base.repo
358 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
359 curl -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
360 yum clean all
361 yum makecache
362 cat /etc/yum.repos.d/CentOS-Base.repo
363 yum install zip unzip
更新排除kernel 更新方法 防止centos7.5突然升级到7.9:
ll /var/cache/yum
rm -rf /var/cache/yum #删除之前的缓存
sudo vi /etc/yum.conf
在 [main] 最后添加以下配置:
exclude=kernel*
exclude=centos-release*
sudo yum clean all
----------------
禁ping ip :
方法二:修改sysctl.conf文件
1、 连接到Linux服务器的终端。
使用文本编辑器打开sysctl.conf文件:
sudo vi /etc/sysctl.conf
2、 在文件的末尾添加以下行:
net.ipv4.icmp_echo_ignore_all = 1
3、 保存并退出编辑器。
运行以下命令使修改生效:
sudo sysctl -p
----------------
linux获取当前ip
curl ip.sb
shell获取ip
ip=$(curl ip.sb)
echo $ip
----------------
ip addr //查看ip
useradd -d /usr/local/servers/ web //增加用户web,并制定web用户的主目录为/usr/local/servers/
passwd web //为web设置密码
cat /etc/passwd 查看用户路径
whoami //查看当前登陆的用户
su web //切换用户
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //更新时间, 填: yes
date -R # 查看当前时间
//用上面的sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 无效后,要手动改
sudo date -s "2021-07-07 15:57"
sudo hwclock -w
----------------
回复用户ssh权限,以前是(/sbin/nologin):
sudo useradd -M -s /sbin/nologin mysql #-M:不要自动建立用户的登入目录 /sbin/nologin mysql //限定用户mysql不能telnet,只能ftp
sudo usermod mysql -s /bin/bash #恢复
cat /etc/passwd
mysql:x:1001:1001::/home/mysql:/bin/bash
sudo mkdir /home/mysql
sudo chown -R mysql:mysql /home/mysql
如果已存在的用户可以更新目录 : usermod -d /usr/local/servers/ vmuser (vmuser为你的用户名),
----------------
查看网络堵塞:traceroute yangkeduo.com
查大文件:sudo find / -type f -size +300M -print0 | xargs -0 du -h | sort -nr
----------------
sudo yum install -y unzip zip
tar -zxvf nginx-1.9.12.tar.gz #解压
tar -zcvf /usr/local/servers/back/web_back.tar.gz /usr/local/servers/nginx/html/wkb/* /usr/local/servers/nginx/html/led/* 压缩
vi /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
----------------
文件权限:
chmod 0775 11.txt
[web@localhost images]$ ll
-rwxrwxr-x 1 web web 6 3月 16 18:17 11.txt
-rwxr--r-- 1 web web 74800 4月 23 2021 1.jpg
drwxrwxr-x 2 web web 4096 5月 7 2022 20210803
drwxrwxr-x 2 web web 54 5月 7 2022 20210903
说明:
https://blog.csdn.net/RachelCSDN/article/details/102060939
● drwxrwxr-x
第1个字母代表文件的类型:
d代表文件夹、- 代表普通文件、c代表硬件字符设备、b代表硬件块设备、l代表软链接文件
● rwx rwx r-x 共三组
r 可读
w 可写
x 可执行
- 没有任何权限
字母法:
u 文件的拥有者的权限(第一组)
g 文件的拥有的组的权限(第二组)
o 其他用户的权限(第三组)
a 所有用户
● + 添加权限
- 删除权限
= 设置权限(把之前的权限换成新的权限)
例子:
chomd u+r test.txt 给文件的拥有者添加 r(读)权限
chmod u=r,g+w,o-r test.txt 给自己设置 r 权限,给自己组添加 w 权限,给其他人删除 r 权限
数字法:
r 4
w 2
x 1
- 0
3=1+2 代表wx权限
例子:
chmod 123 test.txt
第一位数字代表自己的权限,第二位数字代表自己组的权限,第三位数字代表其他人的权限
还有更多说明:
https://blog.csdn.net/whatday/article/details/104108642
读取权限 r = 4
写入权限 w = 2
执行权限 x = 1
775 这三个数字代表拥有者,组用户,其他用户的权限。
例如:
7 拥有者有 读取,写入,执行权限
7 组用户有 读取,写入,执行权限
5 其他用户有 读取,执行权限(4+1 = 5)
777 与 775的区别是
其他用户有写入权限,而775的没有。
举个例子:
文件A,权限是775
root是拥有者
www-data是组用户
ooo 是其他用户
那么
root,www-data,ooo都能对文件A读取和执行。
root,www-data 能对文件A写入。
ooo不能对文件A写入。
如果是777
则三个用户都能读取,写入,执行文件A
二、 ip设置 :
1、网络(备用,当找不到网卡的时候才会用):
centos添加网卡 找不到ip addr命令对应的网卡 : https://blog.csdn.net/qq_51313111/article/details/116233082
用命令:nmtui
服务器有4个网卡(em1,em2,em3,em4):
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 14:18:77:5d:4d:c3 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.244/24 brd 10.10.10.255 scope global noprefixroute dynamic em1
valid_lft 86303sec preferred_lft 86303sec
3: em2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 14:18:77:5d:4d:c4 brd ff:ff:ff:ff:ff:ff
4: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 14:18:77:5d:4d:c5 brd ff:ff:ff:ff:ff:ff
5: em4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 14:18:77:5d:4d:c6 brd ff:ff:ff:ff:ff:ff
多卡时默认使用哪个卡:
之前遇到就是 : ping 不通, curl 不通
主查改的是: vim /etc/sysconfig/network-scripts/ifcfg-em2:
DEFROUTE=yes #这个只有一个设置为主,其它的都为否 no 就可以了,坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑
[web@localhost network-scripts]$ ip route
default via 10.10.10.1 dev em2 proto static metric 101 #这里显示默认 10.10.10.1 卡口1用的是 : em2
10.10.10.0/24 dev em2 proto kernel scope link src 10.10.10.244 metric 101
8.148.117.133/28 dev em1 proto kernel scope link src 8.148.217.123 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev br-8f143c8d58ed proto kernel scope link src 172.18.0.1
2、ip设置 - 查看当前有哪个网卡,比如我的有: ifcfg-eth0 与 ifcfg-em1 网张网卡
ll /etc/sysconfig/network-scripts/
sudo vi /etc/sysconfig/network-scripts/ifcfg-em1
TYPE=Ethernet
BOOTPROTO=static #这个得注意是静态
DEFROUTE=yes #是否做为默认卡,多个卡中只能有一个是yes,其它都为no
ONBOOT=yes #系统启动时自动激活这个网络接口
DEVICE=em1 #传统的以太网卡 - 实际的设备名称(必须与系统中的一致)DEVICE=eth0
#NAME=em1 #可以省略 - 配置文件的逻辑名称(可以自定义)
#UUID=11e74d39-ba0e-4413-bc5b-0afe91694555 #可以省略 - 在同一系统中防止网卡配置文件重名
# IP地址配置
IPADDR=192.168.1.100 # 本机IP地址
PREFIX=28 # 子网掩码位数(/28 = 255.255.255.240)
GATEWAY=192.168.1.1 # 网关地址
# 注意:192.168.1.100必须在192.168.1.96-192.168.1.111这个范围内才有效
# DNS服务器配置
DNS1=202.96.128.86 # 主DNS服务器
DNS2=114.114.114.114 # 备用DNS服务器
# IPv4配置
IPV4_FAILURE_FATAL=no # IPv4配置失败时不终止网络服务
# IPv6配置
IPV6INIT=no # 不启用IPv6
# 其他配置
PROXY_METHOD=none # 不使用代理
BROWSER_ONLY=no # 不仅限浏览器使用
3、wq! 保存后重启才能生效
/etc/rc.d/init.d/network restart
cat /etc/resolv.conf #查看当前使用的dns
ip addr 查看ip
curl http://www.baidu.com三、 新建用户:
yum -y install net-tools
netstat -nap | grep 10493 #netstat -tanlp 查看使用的端口情况, 查看端口
netstat -nelp //查看端口 - 这个现在用得最多
[web@localhost ~]$ vi /etc/selinux/config #将 SELINUX 配置文件设置为 disabled 模式,禁用SELinu //msyql 共享都会有影响
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
#SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
验证
[root@MongoDB ~]# grep "SELINUX=disabled" /etc/selinux/config
SELINUX=disabled
然后reboot重启生效
必须新建一个叫web的账号,并且路径必须为:/home/data/
cat /etc/passwd 看所有系统用户信息
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
useradd -d /home/data/ web 注意此目录不能是已存在的目录 更改目录命令: usermod -d /home/data/ web 报错: usermod: user web is currently used by process 14171 那么退出当前web用户, kill -9 14171 再次执行:usermod -d /home/data/ web 就ok了
passwd web #设置web用户的密码
cat /etc/passwd 发现用户不用修改:
usermod -u 1002 weililong #修改用户UID
groupmod -g 1002 weililong #修改用户GID
usermod -u 1000 web
groupmod -g 1000 web
//cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //更新时间, 填: yes
//date -R # 查看当前时间
添加 sudo 权限
yum -y install sudo
vi /etc/sudoers
查: root ALL=(ALL) ALL
加: web ALL=(ALL) ALL
wq! 强行保存四、 挂载硬盘(可选) 当空间不够,需要提前规划挂载:
挂载:
[web@localhost home]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3.7T 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 3.7T 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 4G 0 lvm [SWAP]
└─centos-home 253:2 0 3.6T 0 lvm /home
sdb 8:16 0 3.7T 0 disk
1、挂载
sudo mkfs -t ext4 /dev/sdb #必须先执行成ext4格式 #备注 sdb都盘 都是存在在/dev 下面的
sudo mkfs.xfs -f -n ftype=1 /dev/sdb #可以改成xfs格式
mkdir -p /home/data/docker/web
sudo mount /dev/sdb /home/data/docker/web #临时挂载到 测试上面的格式化好的盘(#直接格式化成 xfs格式) sudo umount /dev/sdb 取消挂载
df -h #查看挂载
2、开机自动挂载
sudo vi /etc/rc.local
mount /dev/sdb /home/data/docker/web
4、
chmod +x /etc/rc.local
5、
vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。四、 安装gpu(可选) 有英伟达显卡即可,我用的是3090rtx:
查看linux系统有没有gpu设备
1、Linux查看显卡信息:(ps:若找不到lspci命令,可以安装 yum install pciutils)
[root@localhost ~]# lspci | grep -i vga
0a:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. G200eR2 (rev 01)
2、使用nvidia GPU可以:
[root@localhost ~]# lspci | grep -i nvidia
82:00.0 3D controller: NVIDIA Corporation GP102GL [Tesla P40] (rev a1)
//3、查看显卡驱动
// cat /proc/driver/nvidia/version
3、查看需要下载的是哪个版本的 kernel 内核
[root@localhost ~]# ls /boot | grep vmlinu
vmlinuz-0-rescue-7991be6d8f7c4a0f8c0930b12dc0aa5d
vmlinuz-3.10.0-862.el7.x86_64
[root@localhost ~]#
[root@localhost ~]# rpm -aq | grep kernel-devel #没有内核,需要手动下载安装。 因为 检查内核版本和源码版本,保证一致: 下载 http://rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
[root@localhost ~]#
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
[root@localhost ~]#
[root@localhost ~]#
#没有内核,需要手动下载安装。:
kernel-devel-3.10.0-862.el7.x86_64.rpm
链接:https://pan.baidu.com/s/1OkI18JFDSM2puTD2vaNweQ
提取码:zzjt
4、屏蔽系统自带的nouveau
[root@localhost ~]# lsmod | grep nouveau
nouveau 1662531 0
video 24538 1 nouveau
mxm_wmi 13021 1 nouveau
i2c_algo_bit 13413 2 mgag200,nouveau
drm_kms_helper 176920 2 mgag200,nouveau
ttm 99555 2 mgag200,nouveau
drm 397988 5 ttm,drm_kms_helper,mgag200,nouveau
i2c_core 63151 6 drm,ipmi_ssif,drm_kms_helper,mgag200,i2c_algo_bit,nouveau
wmi 19086 2 mxm_wmi,nouveau
[root@localhost ~]# vi /lib/modprobe.d/dist-blacklist.conf
将nvidiafb注释掉:
#blacklist nvidiafb
然后添加以下语句:
blacklist nouveau
options nouveau modeset=0
重建initramfs image步骤
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak33333333333333
dracut /boot/initramfs-$(uname -r).img $(uname -r)
修改运行级别为文本模式
systemctl set-default multi-user.target
[root@localhost ~]# lsmod | grep nouveau #这回再看就已经没有了
[root@localhost ~]#
5、继续安装kernel 内核
//yum install kernel-devel gcc -y #这一步很重要,先安装: kernel-devel 再删除,要不然下面就没办法安装指定版本 , 我装u2需要,u3的时候就不需要了,哈哈.. 能不用就不用
yum install -y numactl-devel*x86_64 make gcc libpcap libpcap-devel
[root@localhost downs]# rpm -aq | grep kernel-devel #看看已经安装了内核了,虽然版本不对,但是必须得安装,要不然下面的指定版本安装不上
kernel-devel-3.10.0-1160.108.1.el7.x86_64
[root@localhost downs]# rpm -e kernel-devel-3.10.0-1160.108.1.el7.x86_64 #删除自动安装的版本内核
[root@localhost downs]# rpm -aq | grep kernel-devel #看看已经被删除了空了
[root@localhost downs]#
[root@localhost downs]# pwd
-rw-r--r--. 1 root root 16424580 3月 14 13:43 kernel-devel-3.10.0-862.el7.x86_64.rpm
[root@localhost downs]# rpm -ivh kernel-devel-3.10.0-862.el7.x86_64.rpm #有了之前安装过自动版,现在安装指定版就不会报错了
准备中... ################################# [100%]
正在升级/安装...
1:kernel-devel-3.10.0-862.el7 ################################# [100%]
[root@localhost downs]#
再次查看版本已对上了:
[root@localhost downs]# ls /boot | grep vmlinu
vmlinuz-0-rescue-7991be6d8f7c4a0f8c0930b12dc0aa5d
vmlinuz-3.10.0-862.el7.x86_64
[root@localhost downs]# rpm -aq | grep kernel-devel
kernel-devel-3.10.0-862.el7.x86_64
[root@localhost downs]# uname -r
3.10.0-862.el7.x86_64
6、安装CUDA 驱动 (之前window是老大安装好了,我没有装,所以导致装linux时感觉老不对劲)
https://www.nvidia.cn/Download/index.aspx?lang=cn
Data Center Driver for Linux x64
版本: 515.105.01
发布日期: 2023.3.30
操作系统: Linux 64-bit
CUDA Toolkit: 11.7
语言: Chinese (Simplified)
文件大小: 346.89 MB
ll /usr/src/kernels/3.10.0-862.el7.x86_64
chmod +x NVIDIA-Linux-x86_64-515.105.01.run
./NVIDIA-Linux-x86_64-515.105.01.run --kernel-source-path=/usr/src/kernels/3.10.0-862.el7.x86_64 -k $(uname -r)
[root@localhost downs]# nvidia-smi
Thu Mar 14 14:26:09 2024
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.105.01 Driver Version: 515.105.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla P40 Off | 00000000:82:00.0 Off | Off |
| N/A 52C P0 54W / 250W | 0MiB / 24576MiB | 1% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
问题
-------- 用了一段时间,发现 nvidia-smi 突然用不了了,它喵的 什么时候升级到centos 7.9 了, 之前不是7.5的吗 ------------------
[web@localhost ~]$ rpm -aq | grep kernel-devel
kernel-devel-3.10.0-862.el7.x86_64 //自己装的
[web@localhost ~]$ uname -r
3.10.0-1160.114.2.el7.x86_64 //现在是这个,不对了
[web@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
1029 cat /etc/redhat-release
1030 uname -r
1031 uname -a
rpm -e kernel-devel-3.10.0-1160.el7.x86_64 删除这个版本
1033 yum repolist
1034 wget -nc http://mirrors.aliyun.com/repo/Centos-7.repo
1035 yum upgrade -y
1036 sudo yum upgrade -y
1037 lspci | grep -i nvidia
1038 ls /boot | grep vmlinu
1039 rpm -aq | grep kernel-devel
1040 uname -r
1041 rpm -aq | grep kernel-devel
1042 lspci -nn | grep NV
1049 lspci | grep -i nvidia
1050 yum install gcc
1051 sudo yum install gcc
1052 sudo yum install gcc-g++
1053 sudo yum install -y elfutils-libelf-devel
1054 sudo yum install -y kernel-devel gcc -y
1055 ls /boot | grep vmlinu
1056 rpm -aq | grep kernel-devel
1057 uname -r
1058 rpm -aq | grep kernel-devel
1060 ll /usr/src/kernels/3.10.0-1160.119.1.el7.x86_64/
cd /home/data/downs
chmod +x NVIDIA-Linux-x86_64-550.90.12.run
sudo ./NVIDIA-Linux-x86_64-550.90.12.run --kernel-source-path=/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64 -k $(uname -r)
watch -n 1 nvidia-smi
删除所有驱动:
yum remove kmod-nvidia-*
sudo yum remove nvidia* 会把 sudo yum install -y nvidia-docker2 这个docker gpu删除了
sudo yum remove cuda-repo-*
sudo rm -rf /usr/local/cuda
//1、有用
yum remove kernel-devel kernel-headers
ll /usr/src/kernels/
uname -r #显示 3.10.0-1160.el7.x86_64 所以需要要安装这个,我以下载好: kernel-devel-3.10.0-1160.el7.x86_64.rpm
cd /root/down
rpm -ivh kernel-devel-3.10.0-1160.el7.x86_64.rpm #安装与 uname -r 命令找出来的版本相同的包
rpm -q kernel-devel-3.10.0-1160.el7.x86_64 #查看安装情况
//2、看看以经对上了
[root@localhost down]# rpm -aq | grep kernel-devel
kernel-devel-3.10.0-1160.el7.x86_64
[root@localhost down]# uname -r
3.10.0-1160.el7.x86_64
3、3090显卡安装:
sudo yum install gcc
sudo yum install gcc-g++
//sudo yum install -y elfuti
sudo ./NVIDIA-Linux-x86_64-525.116.03.run --kernel-source-path=/usr/src/kernels/3.10.0-1160.el7.x86_64 -k $(uname -r)
sudo yum install -y nvidia-docker2五、 安装docker(可选) 非常建议安装,因为docker隔离环境对项目太有用了:
安装docker
//1、这种方式安装最新版
# 添加阿里云Docker CE仓库
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
[root@iZ7xv5338yx57mku9ci5qoZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@iZ7xv5338yx57mku9ci5qoZ ~]# docker --version
Docker version 26.1.4, build 5650f9b
[root@iZ7xv5338yx57mku9ci5qoZ
安装docker
Linux安装Docker
//Linux中关闭SELinux的方法(这个新装的linux一定要执行,很中要,否则后面mysql都不能生成启动docker了):
sudo vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。
关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld 禁止防火墙开机
// 仅此一条命令就可以搞定,安的版本太旧(我用这个版,兼容最好,速度最快)
sudo yum -y install docker-io
sudo systemctl restart docker
sudo docker ps
//这种方式安装最新版
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
systemctl daemon-reload
systemctl restart docker
docker ps
docker --version
1、关机后重启,docker自动启动
sudo systemctl enable docker 然后重启
2、当前天用户添加的docker用户组,这样不用加sudo了 https://my.oschina.net/zjzhai/blog/196375
sudo groupadd docker 添加组
sudo gpasswd -a ${USER} docker 添加当前用户到dokcer组中 , 当前用户获取 ${USER}
sudo service docker restart
Docker pull速度慢解决方案
https://blog.csdn.net/weixin_43569697/article/details/89279225
sudo vi /etc/docker/daemon.json
插入以下国内镜像地址:
Docker pull速度慢解决方案或不能上传:
sudo vi /etc/docker/daemon.json
//有gpu的话添加的(没有就不要加)
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
//没有gpu只要加下面即可
"registry-mirrors": [
"https://mirror.gcr.io",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
],
"live-restore": true // 解决 docker push 已经无法推送 unauthorized: authentication required 说明: https://support.huaweicloud.com/deployman_faq/deployman_faq_1095.html
}
sudo systemctl daemon-reload
//sudo systemctl restart docker
//2、如果改docker路径配置
1、清楚所有镜像
2、从新改目录
sudo vi /lib/systemd/system/docker.service
查: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改:ExecStart=/usr/bin/dockerd --data-root /home/dockersys -H fd:// --containerd=/run/containerd/containerd.sock
其中: /home/dockersys 就是docker 指定的目录
sudo systemctl daemon-reload
sudo systemctl restart docker
2、当前天用户添加的docker用户组,这样不用加sudo了 https://my.oschina.net/zjzhai/blog/196375
sudo groupadd docker 添加组
sudo gpasswd -a ${USER} docker 添加当前用户到dokcer组中 , 当前用户获取 ${USER}
sudo service docker restart
systemctl start docker #开启docker
systemctl enable docker #设置开机自启
systemctl daemon-reload
systemctl restart docker
docker ps
docker --version
[web@localhost ~]$ docker --version
Docker version 25.0.4, build 1a576c5
[web@localhost ~]$
3、CentOS7服务器部署nvidia-docker
一、设置nvidia-docker的存储库和 GPG 密钥
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
二、更新包列表后安装包和依赖项
yum clean expire-cache
三、安装nvidia-docker
nvidia-docker1已被弃用,可直接安装nvidia-docker2,使用和nvidia-docker一样:
sudo yum install -y nvidia-docker2
然后重启docker
sudo systemctl restart docker
#1、paddle 测试成功
[web@localhost ~]$ docker search cuda:10.2-cudnn8
NAME DESCRIPTION STARS OFFICIAL
jacklove2022/pytorch1.8-gpu 基础镜像为 nvidia/cuda:10.2-cudnn8-runtime-u… 1
jacklove2022/pytorch1.9-gpu 基础镜像为 nvidia/cuda:10.2-cudnn8-runtime-u… 0
tungluu2203/ubuntu16_cuda10 nvidia/cuda:10.2-cudnn8-devel-ubuntu16.04 + … 0
samyin/algo-env 基础镜像: nvidia/cuda:10.2-cudnn8-devel-ubun… 0
[web@localhost ~]$
//setenforce 0 # /usr/bin/docker: Permission denied 不运行这个会报无权限
//docker run -ti --name myGpu --gpus all -v /home/data/docker/web:/home/data --network=host --runtime=nvidia jacklove2022/pytorch1.8-gpu
nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.6.0-gpu-cuda11.7-cudnn8.4-trt8.4
docker run -d -t --name myPaddleGpu --gpus all -v /home/data/docker/web:/paddle --network=host --runtime=nvidia --restart=on-failure:5 registry.baidubce.com/paddlepaddle/paddle:2.6.0-gpu-cuda11.7-cudnn8.4-trt8.4 /paddle/python/paddld.sh
docker start myPaddleGpu
docker exec -ti myPaddleGpu /bin/bash
nvidia-smi
watch -n 1 nvidia-smi
watch -n 2 nvidia-smi -q -i 0 -d TEMPERATURE #每隔 2 秒刷新一次 查看温度 , 手动 记录日记+ 得开发定时器: nvidia-smi -q -i 0 -d TEMPERATURE >> 1.log
pip install PyMySQL -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install python-multipart -i https://pypi.tuna.tsinghua.edu.cn/simple # 文件上传
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
//pip install Flask -i https://pypi.tuna.tsinghua.edu.cn/simple
在百度docker中安装pytoch
rwkv的v6最新版:
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 # CUDA 11.7
pip install pytorch-lightning==1.9.5 -i https://pypi.tuna.tsinghua.edu.cn/simple (不行就先安装这个先)
pip install deepspeed wandb ninja -i https://pypi.tuna.tsinghua.edu.cn/simple
验证gpu版是否安装成功:
>>> import torch
>>> print(torch.__version__)
0.4.0
>>> print(torch.cuda.is_available())
True
fastapi:
#pip install fastapi uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple
#pip install bottle -i https://pypi.tuna.tsinghua.edu.cn/simple
#pip install websockets -i https://pypi.tuna.tsinghua.edu.cn/simple
或是直接运行闻达包:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
在百度docker中安装tensorflow
pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install keras==2.1.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install keras==2.1.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果要安装GPU版本:
python36可能安装对应的这个版本: 可以下载官网的这个版本上安装: docker pull tensorflow/tensorflow:1.14.0-gpu
docker列表:https://hub.docker.com/r/tensorflow/tensorflow/tags?page=23&page_size=&name=&ordering=
docker run -ti --name tfGpu --network=host --gpus all --privileged=true --runtime=nvidia -v /root/ai/docker:/home/data bladerunnerlabs/lip2-tf1-dt2:latest
docker start tfGpu
docker exec -ti tfGpu /bin/bash
nvidia-smi
python #发现居然用的是python2.7并还兼容了,奇葩
#设置权限
sudo chown -R web:web /home/data/docker/web
sudo chown -R polkitd:polkitd /home/data/docker/web/mysql/data/
//#3、pytoch
// nvidia-docker pull nvcr.io/nvidia/pytorch:23.02-py3
// docker run -d -t --name myPytochGpu --gpus all --privileged --network=host --runtime=nvidia --restart=on-failure:5 -v /root/ai:/paddle nvcr.io/nvidia/pytorch:23.02-py3 /bin/bash
// docker start myPytochGpu
// docker exec -ti myPytochGpu /bin/bash
#4、tensorflow
nvidia-docker pull gg22mm/python:tensorflow2.11.0-gpu-py38-roop-ffmpeg-insightface_v4
检查环境 - 检查是否有gpu:
>>> import torch
>>> torch.cuda.is_available()
True
>>>import tensorflow as tf
>>>print(tf.test.is_gpu_available())
True
import paddle
paddle.utils.run_check()
------------------- 其它用法 -------------------
Dockerfile 安装
1、下载Dockerfile 放在一个目录中
2、执行
docker build -t isk . 注意cd到Dockerfile目录下, 执行,别忘记后面有一个点. 其中 isk 是镜像images名, 可以自定义
sudo systemctl start docker
sudo systemctl stop docker
如果docker启动失败:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/102765506 (出错: 为containerd.io版本太低,当前安装要大于 1.2.2-3的版本才行)
问题: package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
sudo docker ps
sudo docker rmi -f redis 加-f 强制删除
sudo docker rm : 删除一个或多个 容器
sudo docker rmi : 删除一个或多个 镜像 //首先docker rmi时指定名称,而非image id,然后再执行docker rmi -f image idj即可:
sudo docker prune: 用来删除不再使用的 docker 对象(一般不过)
//docker修改端口(docker运行时修改端口)
//1、之前8080指向80: docker run -p 8080:80 nginx
//2、改成8081指向80: docker container update --publish-add 8081:80 nginx
//3、删除8081端口映射:docker container update --publish-rm 8081 容器名或容器id
三、Docker 自定义
sudo docker ps //查看已启动容器
sudo docker ps -a //查看所有容器
sudo docker images //查看已安装镜像
sudo docker pull centos:7 //获取最新版的 centos 镜像 ,最好不要用centos:latest 这个是不支持ll命令
php安装
用镜像生成容器,容器名为php73,--expose 9000 开放一个端口或一组端口(被坑死了这里,这里不象是ningx 是开放映射端口,这里指的是开放内网端口,nginx会通过这个内网端口进行php访问。另一个坑就是php与nginx必须同时共享一个目录:/usr/local/servers/docker/web做为web,要不然他们都是自己的容器里运行,静态的图片与html用的是nignx的容器,php又是用另一个容器,导致两边的文档都要必须保持一样才对正常访问,绝对是个悲剧,这里被坑得也很惨)
sudo docker run -ti --name php73 -v /usr/local/servers/docker/web:/usr/local/servers/web:rw --expose 9000 php73 //用此命令时行生成php容器
命令说明:
--name php73 : 将容器命名为 php73 , 9000后的那个php73是php的镜像名(可从网站下载或自己建立镜像)
-v /usr/local/servers/docker/php73:/usr/local/servers/php73 //将主机中项目的目录 php73 挂载到容器的 php73,并设置权限rw(读写)
-v /usr/local/servers/docker/web:/usr/local/servers/web:rw //设置web路径,这个到时要与ningx、svn等保持一样
--expose 9000 //开放端口,nginx会调用这个端口时行内网访问(因为nginx与php一般都在同一机子并同一个内网)
sudo docker start php73 //启动容器
sudo docker exec -ti php73 /bin/bash //以后进入容器shell
sudo docker inspect php73 | grep "IPAddress" //查看ip
sudo docker inspect mysql57 查看内网id,mysql用 看:"IPAddress"
sudo docker inspect nginx16 查看容器内网ip "Gateway": "172.17.0.1" 这个ip是不会变的
netstat -nelp 查看开放的端口安装python自动部署环境:
对(需要nginx更新签名的服务器安装) python 的 Flask 支持上api接品,实现上传并重启。
1、 过pyenv安装和管理多个Python版本
# 安装pyenv的依赖
yum install git lrzsz gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel tk-devel libffi-devel xz-devel -y
# 安装pyenv
curl https://pyenv.run | bash
# 将以下内容添加到~/.bashrc文件中,然后执行 source ~/.bashrc
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# 检查
pyenv --version
# 安装一个Python 3版本(太慢不,不建议)
#// pyenv install 3.12.0
# 创建缓存目录
mkdir -p ~/.pyenv/cache
# 清理可能的缓存
rm -rf ~/.pyenv/cache/*
# 进入缓存目录
cd ~/.pyenv/cache
# 用迅雷下载: https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz
rz 上传
# 重新安装
pyenv install 3.12.0
# 设置为全局默认版本
pyenv global 3.12.0
# 创建虚拟环境
python3 -m venv cert_api
# 激活虚拟环境
source cert_api/bin/activate
pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple
# 验证安装
python -c "import fastapi; print(fastapi.__version__)"

发表评论 取消回复