Gluster部署

Gluster部署文章目录部署更改节点名称节点进行磁盘挂载 安装本地源添加节点创建集群根据规划创建卷创建分布式卷创建条带卷创建复制卷创建分布式条带卷创建分布式复制卷部署 gluster 客户端查看文件分布查看条带卷文件分布 node1 dev sdc1 node2 dev sdc1 查看分布式条带卷分布 node1 dev sdd1 node2 dev sdd1 node3 dev sdd1 node4 dev sdd1 查看分布式复制卷分布 node1 dev sde1 node2 dev sde1 node3

部署

Node1节点:node1/192.168.3.11 磁盘: /dev/sdb1 挂载点: /data/sdb1 /dev/sdc1 /data/sdc1 /dev/sdd1 /data/sdd1 /dev/sde1 /data/sde1 Node2节点:node2/192.168.3.12 磁盘: /dev/sdb1 挂载点: /data/sdb1 /dev/sdc1 /data/sdc1 /dev/sdd1 /data/sdd1 /dev/sde1 /data/sde1 Node3节点:node3/192.168.3.13 磁盘: /dev/sdb1 挂载点: /data/sdb1 /dev/sdc1 /data/sdc1 /dev/sdd1 /data/sdd1 /dev/sde1 /data/sde1 Node4节点:node4/192.168.3.14 磁盘: /dev/sdb1 挂载点: /data/sdb1 /dev/sdc1 /data/sdc1 /dev/sdd1 /data/sdd1 /dev/sde1 /data/sde1 =====客户端节点:192.168.3.15===== 

更改节点名称

节点进行磁盘挂载,安装本地源

所有节点(这里使用node1作为示范)

[root@node1 ~] # systemctl stop firewalld [root@node1 ~] # setenforce 0 [root@node1 ~] # vim /opt/fdisk.sh #!/bin/bash NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq` for VAR in $NEWDEV do echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null mkfs.xfs /dev/${VAR}"1" &> /dev/null mkdir -p /data/${VAR}"1" &> /dev/null echo "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab done mount -a &> /dev/null ========》wq [root@node1 ~] # chmod +x /opt/fdisk.sh [root@node1 ~] # cd /opt/ [root@node1 /opt] # ./fdisk.sh [root@node1 /opt] # echo "192.168.184.10 node1" >> /etc/hosts [root@node1 /opt] # echo "192.168.184.20 node2" >> /etc/hosts [root@node1 /opt] # echo "192.168.184.30 node3" >> /etc/hosts [root@node1 /opt] # echo "192.168.184.40 node4" >> /etc/hosts [root@node1 /opt] # ls fdisk.sh rh [root@node1 /opt] # rz -E rz waiting to receive. [root@node1 /opt] # ls fdisk.sh gfsrepo.zip rh [root@node1 /opt] # unzip gfsrepo.zip  [root@node1 /opt] # cd /etc/yum.repos.d/ [root@node1 /etc/yum.repos.d] # ls local.repo repos.bak [root@node1 /etc/yum.repos.d] # mv * repos.bak/ mv: 无法将目录"repos.bak" 移动至自身的子目录"repos.bak/repos.bak"[root@node1 /etc/yum.repos.d] # ls repos.bak [root@node1 /etc/yum.repos.d] # vim glfs.repo [glfs] name=glfs baseurl=file:///opt/gfsrepo gpgcheck=0 enabled=1 ========》wq [root@node1 /etc/yum.repos.d] # yum clean all && yum makecache 已加载插件:fastestmirror, langpacks 正在清理软件源: glfs Cleaning up everything Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos 已加载插件:fastestmirror, langpacks glfs | 2.9 kB 00:00:00 (1/3): glfs/filelists_db | 62 kB 00:00:00 (2/3): glfs/other_db | 46 kB 00:00:00 (3/3): glfs/primary_db | 92 kB 00:00:00 Determining fastest mirrors 元数据缓存已建立 [root@node1 /etc/yum.repos.d] # yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma [root@node1 /etc/yum.repos.d] # systemctl start glusterd.service  [root@node1 /etc/yum.repos.d] # systemctl enable glusterd.service Created symlink from /etc/systemd/system/multi-user.target.wants/glusterd.service to /usr/lib/systemd/system/glusterd.service. [root@node1 /etc/yum.repos.d] # systemctl status glusterd.service ● glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled) Active: active (running) since 二 2021-11-17 16:45:10 CST; 764ms ago Main PID: 51664 (glusterd) CGroup: /system.slice/glusterd.service └─51664 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO 

添加节点创建集群

添加节点到存储信任池中(仅需在一个节点上操作,我这里依旧在node1节点上操作)

[root@node1 ~] # gluster peer probe node1 peer probe: success. Probe on localhost not needed [root@node1 ~] # gluster peer probe node2 peer probe: success. [root@node1 ~] # gluster peer probe node3 peer probe: success. [root@node1 ~] # gluster peer probe node4 peer probe: success. [root@node1 ~] # gluster peer status Number of Peers: 3 Hostname: node2 Uuid: 2ee63a35-6e83-4a35-8f54-c9c0137bc345 State: Peer in Cluster (Connected) Hostname: node3 Uuid: e63256a9-6700-466f-9279-3e3efa3617ec State: Peer in Cluster (Connected) Hostname: node4 Uuid: 9931effa-92a6-40c7-ad54-dd96d State: Peer in Cluster (Connected) 

根据规划创建卷

========根据以下规划创建卷========= 卷名称 卷类型 Brick dis-volume 分布式卷 node1(/data/sdb1)、node2(/data/sdb1) stripe-volume 条带卷 node1(/data/sdc1)、node2(/data/sdc1) rep-volume 复制卷 node3(/data/sdb1)、node4(/data/sdb1) dis-stripe 分布式条带卷 node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1) dis-rep 分布式复制卷 node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1) 

创建分布式卷

#创建分布式卷,没有指定类型,默认创建的是分布式卷 [root@node1 ~] # gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 force volume create: dis-volume: success: please start the volume to access data [root@node1 ~] # gluster volume list dis-volume [root@node1 ~] # gluster volume start dis-volume volume start: dis-volume: success [root@node1 ~] # gluster volume info dis-volume Volume Name: dis-volume Type: Distribute Volume ID: 8f-5ac9-4091-97eb-0bdcf142f4aa Status: Started Snapshot Count: 0 Number of Bricks: 2 Transport-type: tcp Bricks: Brick1: node1:/data/sdb1 Brick2: node2:/data/sdb1 Options Reconfigured: transport.address-family: inet nfs.disable: on 

创建条带卷

#指定类型为 stripe,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是条带卷 [root@node1 ~] # gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force volume create: stripe-volume: success: please start the volume to access data [root@node1 ~] # gluster volume start stripe-volume volume start: stripe-volume: success [root@node1 ~] # gluster volume info stripe-volume Volume Name: stripe-volume Type: Stripe Volume ID: b1185b78-d396-483f-898e-3519d3ef8e37 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: node1:/data/sdc1 Brick2: node2:/data/sdc1 Options Reconfigured: transport.address-family: inet nfs.disable: on 

创建复制卷

#指定类型为 replica,数值为 2,且后面跟了 2 个 Brick Server,所以创建的是复制卷 [root@node1 ~] # gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force volume create: rep-volume: success: please start the volume to access data [root@node1 ~] # gluster volume start rep-volume volume start: rep-volume: success [root@node1 ~] # gluster volume info rep-volume Volume Name: rep-volume Type: Replicate Volume ID: 9d39a2a6-b71a-44a5-8ea5-5259d8aef518 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: node3:/data/sdb1 Brick2: node4:/data/sdb1 Options Reconfigured: transport.address-family: inet nfs.disable: on 

创建分布式条带卷

#指定类型为 stripe,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式条带卷

[root@node1 ~] # gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force volume create: dis-stripe: success: please start the volume to access data [root@node1 ~] # gluster volume start dis-stripe volume start: dis-stripe: success [root@node1 ~] # gluster volume info dis-stripe Volume Name: dis-stripe Type: Distributed-Stripe Volume ID: beb7aa78-78d1-435f-8d29-cc73f0 Status: Started Snapshot Count: 0 Number of Bricks: 2 x 2 = 4 Transport-type: tcp Bricks: Brick1: node1:/data/sdd1 Brick2: node2:/data/sdd1 Brick3: node3:/data/sdd1 Brick4: node4:/data/sdd1 Options Reconfigured: transport.address-family: inet nfs.disable: on 

创建分布式复制卷

指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷

[root@node1 ~] # gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force volume create: dis-rep: success: please start the volume to access data [root@node1 ~] # gluster volume start dis-rep volume start: dis-rep: success [root@node1 ~] # gluster volume info dis-rep  Volume Name: dis-rep Type: Distributed-Replicate Volume ID: 734e38e6-154c-4425-acca-b14e7 Status: Started Snapshot Count: 0 Number of Bricks: 2 x 2 = 4 Transport-type: tcp Bricks: Brick1: node1:/data/sde1 Brick2: node2:/data/sde1 Brick3: node3:/data/sde1 Brick4: node4:/data/sde1 Options Reconfigured: transport.address-family: inet nfs.disable: on ======================= [root@node1 ~] # gluster volume list dis-rep dis-stripe dis-volume rep-volume stripe-volume 

部署gluster客户端

部署Gluster客户端(192.168.3.15)

[root@promote ~]#systemctl stop firewalld [root@promote ~]#setenforce 0 [root@promote ~]#cd /opt [root@promote opt]#ls rh [root@promote opt]#rz -E rz waiting to receive. [root@promote opt]#ls gfsrepo.zip rh [root@promote opt]#unzip gfsrepo.zip  [root@promote opt]#cd /etc/yum.repos.d/ [root@promote yum.repos.d]#ls local.repo repos.bak [root@promote yum.repos.d]#mv * repos.bak/ mv: 无法将目录"repos.bak" 移动至自身的子目录"repos.bak/repos.bak"[root@promote yum.repos.d]#ls repos.bak [root@promote yum.repos.d]#vim glfs.repo [glfs] name=glfs baseurl=file:///opt/gfsrepo gpgcheck=0 enabled=1 ========》wq [root@promote yum.repos.d]#yum clean all && yum makecache [root@promote yum.repos.d]#yum -y install glusterfs glusterfs-fuse [root@promote yum.repos.d]#mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep} [root@promote yum.repos.d]#cd /test/ [root@promote test]#ls dis dis_rep dis_stripe rep stripe [root@promote test]# [root@promote test]#echo "192.168.3.11 node1" >> /etc/hosts [root@promote test]#echo "192.168.3.12 node2" >> /etc/hosts [root@promote test]#echo "192.168.3.13 node3" >> /etc/hosts [root@promote test]#echo "192.168.3.14 node4" >> /etc/hosts [root@promote test]# [root@promote test]#mount.glusterfs node1:dis-volume /test/dis [root@promote test]#mount.glusterfs node1:stripe-volume /test/stripe [root@promote test]#mount.glusterfs node1:rep-volume /test/rep [root@promote test]#mount.glusterfs node1:dis-stripe /test/dis_stripe [root@promote test]#mount.glusterfs node1:dis-rep /test/dis_rep [root@promote test]# [root@promote test]#df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 16G 3.5G 13G 22% / devtmpfs 898M 0 898M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 18M 894M 2% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda5 10G 37M 10G 1% /home /dev/sda1 10G 174M 9.9G 2% /boot tmpfs 183M 4.0K 183M 1% /run/user/42 tmpfs 183M 40K 183M 1% /run/user/0 /dev/sr0 4.3G 4.3G 0 100% /mnt node1:dis-volume 6.0G 65M 6.0G 2% /test/dis node1:stripe-volume 8.0G 65M 8.0G 1% /test/stripe node1:rep-volume 3.0G 33M 3.0G 2% /test/rep node1:dis-stripe 21G 130M 21G 1% /test/dis_stripe node1:dis-rep 11G 65M 11G 1% /test/dis_rep [root@promote test]#cd /opt [root@promote opt]#dd if=/dev/zero of=/opt/demo1.log bs=1M count=40 记录了40+0 的读入 记录了40+0 的写出 字节(42 MB)已复制,0.0 秒,1.3 GB/秒 [root@promote opt]#dd if=/dev/zero of=/opt/demo2.log bs=1M count=40 记录了40+0 的读入 记录了40+0 的写出 字节(42 MB)已复制,0. 秒,230 MB/秒 [root@promote opt]#dd if=/dev/zero of=/opt/demo3.log bs=1M count=40 记录了40+0 的读入 记录了40+0 的写出 字节(42 MB)已复制,0. 秒,214 MB/秒 [root@promote opt]#dd if=/dev/zero of=/opt/demo4.log bs=1M count=40 记录了40+0 的读入 记录了40+0 的写出 字节(42 MB)已复制,0. 秒,247 MB/秒 [root@promote opt]#dd if=/dev/zero of=/opt/demo5.log bs=1M count=40 记录了40+0 的读入 记录了40+0 的写出 字节(42 MB)已复制,0. 秒,231 MB/秒 [root@promote opt]# [root@promote opt]#ls -lh /opt 总用量 250M -rw-r--r--. 1 root root 40M 112 22:45 demo1.log -rw-r--r--. 1 root root 40M 112 22:45 demo2.log -rw-r--r--. 1 root root 40M 112 22:45 demo3.log -rw-r--r--. 1 root root 40M 112 22:45 demo4.log -rw-r--r--. 1 root root 40M 112 22:45 demo5.log drwxr-xr-x. 3 root root 8.0K 1127 2018 gfsrepo -rw-r--r--. 1 root root 50M 112 10:30 gfsrepo.zip drwxr-xr-x. 2 root root 6 1126 2015 rh [root@promote opt]# [root@promote opt]#cp demo* /test/dis [root@promote opt]#cp demo* /test/stripe/ [root@promote opt]#cp demo* /test/rep/ [root@promote opt]#cp demo* /test/dis_stripe/ [root@promote opt]#cp demo* /test/dis_rep/ [root@promote opt]#cd /test/ [root@promote test]#tree . ├── dis │ ├── demo1.log │ ├── demo2.log │ ├── demo3.log │ ├── demo4.log │ └── demo5.log ├── dis_rep │ ├── demo1.log │ ├── demo2.log │ ├── demo3.log │ ├── demo4.log │ └── demo5.log ├── dis_stripe │ ├── demo1.log │ ├── demo2.log │ ├── demo3.log │ ├── demo4.log │ └── demo5.log ├── rep │ ├── demo1.log │ ├── demo2.log │ ├── demo3.log │ ├── demo4.log │ └── demo5.log └── stripe ├── demo1.log ├── demo2.log ├── demo3.log ├── demo4.log └── demo5.log 5 directories, 25 files [root@promote test]# 

查看文件分布

1、查看分布式文件分布(node1:/dev/sdb1、node2:/dev/sdb1)

[root@node1 ~] # ls -lh /data/sdb1 总用量 160M -rw-r--r--. 2 root root 40M 112 22:46 demo1.log -rw-r--r--. 2 root root 40M 112 22:46 demo2.log -rw-r--r--. 2 root root 40M 112 22:46 demo3.log -rw-r--r--. 2 root root 40M 112 22:46 demo4.log [root@node2 ~]#ll -h /data/sdb1 总用量 40M -rw-r--r--. 2 root root 40M 112 22:46 demo5.log 

查看条带卷文件分布(node1:/dev/sdc1、node2:/dev/sdc1)

[root@node1 ~] # ls -lh /data/sdc1 总用量 100M -rw-r--r--. 2 root root 20M 112 22:46 demo1.log -rw-r--r--. 2 root root 20M 112 22:46 demo2.log -rw-r--r--. 2 root root 20M 112 22:46 demo3.log -rw-r--r--. 2 root root 20M 112 22:46 demo4.log -rw-r--r--. 2 root root 20M 112 22:46 demo5.log [root@node2 ~]#ll -h /data/sdc1 总用量 100M -rw-r--r--. 2 root root 20M 112 22:46 demo1.log -rw-r--r--. 2 root root 20M 112 22:46 demo2.log -rw-r--r--. 2 root root 20M 112 22:46 demo3.log -rw-r--r--. 2 root root 20M 112 22:46 demo4.log -rw-r--r--. 2 root root 20M 112 22:46 demo5.log 

查看分布式条带卷分布(node1:/dev/sdd1、node2:/dev/sdd1、node3:/dev/sdd1、node4:/dev/sdd1)

[root@node1 ~] # ll -h /data/sdd1 总用量 60M -rw-r--r--. 2 root root 20M 112 22:46 demo1.log -rw-r--r--. 2 root root 20M 112 22:46 demo2.log -rw-r--r--. 2 root root 20M 112 22:46 demo3.log [root@node2 ~]#ll -h /data/sdd1 总用量 60M -rw-r--r--. 2 root root 20M 112 22:46 demo1.log -rw-r--r--. 2 root root 20M 112 22:46 demo2.log -rw-r--r--. 2 root root 20M 112 22:46 demo3.log [root@node3 ~]#ll -h /data/sdd1 总用量 40M -rw-r--r--. 2 root root 20M 112 22:46 demo4.log -rw-r--r--. 2 root root 20M 112 22:46 demo5.log [root@node4 ~]#ll -h /data/sdd1 总用量 40M -rw-r--r--. 2 root root 20M 112 22:46 demo4.log -rw-r--r--. 2 root root 20M 112 22:46 demo5.log 

查看分布式复制卷分布(node1:/dev/sde1、node2:/dev/sde1、node3:/dev/sde1、node4:/dev/sde1)

[root@node1 ~] # ll -h /data/sde1 总用量 160M -rw-r--r--. 2 root root 40M 112 22:46 demo1.log -rw-r--r--. 2 root root 40M 112 22:46 demo2.log -rw-r--r--. 2 root root 40M 112 22:46 demo3.log -rw-r--r--. 2 root root 40M 112 22:46 demo4.log [root@node2 ~]#ll -h /data/sde1 总用量 160M -rw-r--r--. 2 root root 40M 112 22:46 demo1.log -rw-r--r--. 2 root root 40M 112 22:46 demo2.log -rw-r--r--. 2 root root 40M 112 22:46 demo3.log -rw-r--r--. 2 root root 40M 112 22:46 demo4.log [root@node3 ~]#ll -h /data/sde1 总用量 40M -rw-r--r--. 2 root root 40M 112 22:46 demo5.log [root@node4 ~]#ll -h /data/sde1 总用量 40M -rw-r--r--. 2 root root 40M 112 22:46 demo5.log 

冗余测试

在客户端(192.168.3.15)上查看文件是否正常

[root@node2 ~]# init 0 [root@promote test]#ll /test/dis 总用量  -rw-r--r--. 1 root root  112 23:36 demo1.log -rw-r--r--. 1 root root  112 23:36 demo2.log -rw-r--r--. 1 root root  112 23:36 demo3.log -rw-r--r--. 1 root root  112 23:36 demo4.log [root@promote test]# 

条带卷,无法访问,不具备冗余

[root@promote test]#ll /test/stripe/ 总用量 0 [root@promote test]# 

复制卷,在node3和node4上的,关闭node4(192.168.3.11)进行测试,具有冗余

[root@node4 ~]#init 0 客户端,仍然存在 [root@promote test]#ll /test/rep/ 总用量  -rw-r--r--. 1 root root  112 23:36 demo1.log -rw-r--r--. 1 root root  112 23:36 demo2.log -rw-r--r--. 1 root root  112 23:36 demo3.log -rw-r--r--. 1 root root  112 23:36 demo4.log -rw-r--r--. 1 root root  112 23:36 demo5.log [root@promote test]# 

分布式条带卷,不具备冗余

[root@promote test]#ll /test/dis_stripe/ 总用量 0 

分布式复制卷,具有冗余

[root@promote test]#ll /test/dis_rep/ 总用量  -rw-r--r--. 1 root root  112 23:36 demo1.log -rw-r--r--. 1 root root  112 23:36 demo2.log -rw-r--r--. 1 root root  112 23:36 demo3.log -rw-r--r--. 1 root root  112 23:36 demo4.log -rw-r--r--. 1 root root  112 23:36 demo5.log 

以上,带有复制数据的,数据都比较安全

其他维护命令

1.查看GlusterFS卷 gluster volume list 2.查看所有卷的信息 gluster volume info 3.查看所有卷的状态 gluster volume status 4.停止一个卷 gluster volume stop dis-stripe 5.删除一个卷,注意:删除卷时,需要先停止卷,且信任池中不能有主机处于宕机状态,否则删除不成功 gluster volume delete dis-stripe 6.设置卷的访问控制 #仅拒绝 gluster volume set dis-rep auth.allow 192.168.3.100 #仅允许 gluster volume set dis-rep auth.allow 192.168.3.* #设置192.168.3.0网段的所有IP地址都能访问dis-rep卷(分布式复制卷) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224667.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:25
下一篇 2026年3月17日 上午11:25


相关推荐

  • 如虎添翼:为gpt_academic配置searxng搜索

    如虎添翼:为gpt_academic配置searxng搜索

    2026年3月15日
    2
  • oracle sequence用法_oracle赋值

    oracle sequence用法_oracle赋值创建sequence:createsequenceseq_testincrementby1startwith1noMaxValuenoCyclecache10;createsequenceseq_test2minvalue1maxvalue21startwith1incrementby1cache20cycleorder;minValue:指定序列最小值。maxV…

    2022年10月19日
    6
  • Python自动化测试webdriver下载地址「建议收藏」

    Python自动化测试webdriver下载地址「建议收藏」主要浏览器WebDriver地址如下:Chrome:http://chromedriver.storage.proxy.ustclug.org/index.htmlFirefox:https://github.com/mozilla/geckodriver/releases/IE:http://selenium-release.storage.proxy.ustclug.org/index.htm…

    2026年1月21日
    5
  • scipy安装_scipy安装成功了就是用不了

    scipy安装_scipy安装成功了就是用不了1.最后正确的方法:pip升级后安装pipinstall–upgradepippipinstallscipy2.中间的报错及尝试方法:尝试1:pipinstallscipy问题1:numpy.distutils.system_info.NotFoundError:NoBLAS/LAPACKlibrariesfound.Note:Accelerateisnolongersupported.尝试2:gitclonehttps://gi

    2025年8月9日
    7
  • Sublime Text3 如何安装、删除及更新插件

    Sublime Text3 如何安装、删除及更新插件1、打开SublimeText3,按Ctrl+`(和qq输入法快捷切换冲突,可以修改qq的输入法切换热键)2、复制粘黏以下代码添加至命令行,然后回车(功能:安装插件的工具,有了它,以后安装其他插件更方便)importurllib.request,os;pf=’PackageControl.sublime-package’;ipp=sublime.inst…

    2022年7月11日
    23
  • 超详细的Git下载安装、环境变量配置教程

    超详细的Git下载安装、环境变量配置教程一、安装教程:1.首先去官网下载git安装包,附网址:https://git-scm.com/官网下载会比较慢,附上csdn下载链接:2.点击下载好的exe文件3.一直点击next,直到出现install,点击install,安装完成后点击finish:4.启动测试  到此,Git的安装完成,可以在开始菜单中看到Git的三个启动图标(GitBash、GitCMD(Deprecated)、GitGUI)。  GitBash

    2022年5月20日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号