成都网站建设设计

将想法与焦点和您一起共享

linux环境搭建命令 linux系统开发环境搭建

Linux搭建环境+部署项目

前期准备:准备一台服务器,我这里用的华为云,租的时候点按需计费就行,2核4G的大概0.5元/小时,搭建+部署项目大概不到1块钱吧。

创新互联公司主营赛罕网站建设的网络公司,主营网站建设方案,重庆App定制开发,赛罕h5成都小程序开发搭建,赛罕网站营销推广欢迎赛罕等地区企业咨询

购买服务器步骤如下:

配置环境变量 在/etc/profile 这个文件里面配置

操作命令:vim /etc/profile 按 i 键编辑 按Esc键取消编辑 输入:wq保存退出

执行操作命令:source /etc/profile (读取并加载文件)

---宝塔端口在云服务器上放行

终端登陆mysql,进行修改

4。打包前后端服务

访问测试

至此整个流程就弄完了,记录一下。

Rust之旅 linux下rust环境搭建

从今天开始,我们将开始我们的Rust语言学习之路。Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。

首先我们需要搭建好开发环境,本次选用linux作为服务器系统,也是为以后项目环境做考虑。毕竟windows作为服务器系统还是过于小众。

如果您曾经安装过 rustup,可以执行 rustup update 来升级 Rust。

在ssh界面运行以下命令:

如果您熟悉rustup安装程序并希望自定义安装,请选择第二个选项。 但是,出于本教程的考虑,我们仅选择默认的第一个选项,然后按Enter。

在 Rust 开发环境中,所有工具都安装在 ~/.cargo/bin 目录中,您可以在这里找到包括 rustc、cargo 和 rustup 在内的 Rust 工具链。

运行以下命令

运行以下命令

如果出现以下版本号则证明安装成功

如果想卸载 Rust,您可以运行

如果想更新Rust,可以运行

Linux 环境下搭建NFS服务

NFS(Network File System),网络文件存储系统,它最早是由 Sun 公司开发的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过TCP/IP 网络共享资源。通过 NFS 协议,我们本地 NFS 的客户端应用可以透明的读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机,不同的操作系统可以共享存储的服务。

NFS 在文件传送或信息传送过程中依赖 RPC(Remote Procedure Call)协议,即远程过程调用,NFS的各项功能都必须向 RPC 来注册,如此一来 RPC 才能了解 NFS 这服务的各项功能 Port,PID,NFS 在服务器所监听的 IP 等,而客户端才能透过 RPC 的询问找到正确对应的端口,所以 NFS 必须要有 RPC 存在是才能成功的提供服务,简单的理解二者关系:NFS 是一个文件存储系统,而 RPC 是负责信息的传输。

通过上面的简介,我们知道 NFS 服务需要依赖 RPC 服务,所以这里 NFS 服务端需要安装 rpcbind 和 nfs-utils ,客户端只需要安装 nfs-utils 即可,由于我们选用 CentOS 系统,所以可以使用 yum 快速的安装。

然后安装 NFS 服务

另:Ubuntu 16.04 安装命令

我们在服务端创建一个共享目录 /data/share ,作为客户端挂载在远端入口,然后设置权限

然后,修改 NFS 配置文件 /etx/exports

说明一下,这里配置后边有很多参数,每个参数有不同的含义,具体可以参考下边。此处,我配置了将 /data/share 文件目录设置为允许IP为 192.168.0.0/24 区间的客户端挂载。然后,如果客户端IP不在该区间也想要挂载的话,可以设置IP区间更大或者设置为 * 即允许所有客户端挂载,例如: /home *(ro, sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。

接下来,我们先启动 RPC 服务

我们发现,启动了 NFS 服务后,RPC 注册的端口列表明显增多。现在服务端都启动起来了,在服务端看下是否正确加载了设置的 /etc/exports 配置

最后,在另一台Linux虚拟机上测试一下,是否能够正确挂载。首先,我们可以在客户端查看下NFS服务端设置可共享的目录信息

然后,在客户端创建挂载目录/share

最后,挂载远端目录到本地 /share 目录

可以看到,可以正确将远端 NFS 目录挂载到本地。注意:挂载点 /share 目录必须已经存在,而且目录中没有文件或子目录

最后,我们在 NFS 服务端 /data/share 目录下创建一个文件,看下客户端能否正确读取并修改

都可以了,这里因为上面设置了 NFS 远端目录权限为 rw 拥有读写权限,如果设置为 ro ,那么客户端只能读取,不能写入。根据实际应用场景合理配置。

NFS 默认使用 UDP协议进行挂载,为了提供 NFS 的稳定性,可以使用 TCP 协议挂载,那么客户端挂载命令如下:

最后,卸载命令

Linux下docker基础环境搭建

curl -fsSL | bash -s docker --mirror Aliyun

# 报错:curl: (6) Could not resolve host: get.docker.com; 未知的错误

# 解决:cat /etc/resolv.conf 里加了个 nameserver 8.8.8.8

sudo curl -L "(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

验证安装:docker-compose --version

# compose 那个亚马逊的老是下载不了,可换对应地址:

sudo curl -L (uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

查看docker版本: docker --version

启动docker: systemctl start docker 或者 service docker start

停止docker: systemctl stop docker

查看docker镜像文件: docker images

查看docker内容器: docker ps -a

修改 /etc/dockers 文件下的配置文件 daemon.json (配置作用参考附录)

操作完成后需要重启docker: systemctl restart docker

服务端安装git:yum install git

拉取一下文件和命令:git clone

查看本地和远端版本:git branch -a

切换本地分支为dev:git checkout -b dev origin/dev

启动docker:service docker start

后 执行文件中的shell:./init.sh all (包含:mysql,mongo,redis,solr,activemq,tomcat)

删除多下载的镜像:docker rmi --force 3068f6bb852e

容器列表: docker ps -a

进入某个容器:docker exec -it [CONTAINER ID] /bin/bash

查看某个容器进程:docker top [NAMES]

查看 demo-dockers 目录下 java-runtime 文件位置下有对应几个项目配置文件 application-alpha.yml

修改配置文件后,需要重新启动对应java项目,执行启动脚本 ./init-java-runtime.sh + [项目名或者all]

获取镜像文件的地址: 查找对应需要的镜像包

更换镜像文件: vi java-runtime.yml 内,image后的对应项目后跟的包名中

重启对应项目: ./init-java-runtime.sh [项目名]

查看对应项目启动log: docker logs -f --tail 500 [生成的容器名称]

(容器重启:docker restart [容器id或名称])

{

"authorization-plugins": [],//访问授权插件

"data-root": "",//docker数据持久化存储的根目录

"dns": [],//DNS服务器

"dns-opts": [],//DNS配置选项,如端口等

"dns-search": [],//DNS搜索域名

"exec-opts": [],//执行选项

"exec-root": "",//执行状态的文件的根目录

"experimental": false,//是否开启试验性特性

"storage-driver": "",//存储驱动器

"storage-opts": [],//存储选项

"labels": [],//键值对式标记docker元数据

"live-restore": true,//dockerd挂掉是否保活容器(避免了docker服务异常而造成容器退出)

"log-driver": "",//容器日志的驱动器

"log-opts": {},//容器日志的选项

"mtu": 0,//设置容器网络MTU(最大传输单元)

"pidfile": "",//daemon PID文件的位置

"cluster-store": "",//集群存储系统的URL

"cluster-store-opts": {},//配置集群存储

"cluster-advertise": "",//对外的地址名称

"max-concurrent-downloads": 3,//设置每个pull进程的最大并发

"max-concurrent-uploads": 5,//设置每个push进程的最大并发

"default-shm-size": "64M",//设置默认共享内存的大小

"shutdown-timeout": 15,//设置关闭的超时时限(who?)

"debug": true,//开启调试模式

"hosts": [],//监听地址(?)

"log-level": "",//日志级别

"tls": true,//开启传输层安全协议TLS

"tlsverify": true,//开启输层安全协议并验证远程地址

"tlscacert": "",//CA签名文件路径

"tlscert": "",//TLS证书文件路径

"tlskey": "",//TLS密钥文件路径

"swarm-default-advertise-addr": "",//swarm对外地址

"api-cors-header": "",//设置CORS(跨域资源共享-Cross-origin resource sharing)头

"selinux-enabled": false,//开启selinux(用户、进程、应用、文件的强制访问控制)

"userns-remap": "",//给用户命名空间设置 用户/组

"group": "",//docker所在组

"cgroup-parent": "",//设置所有容器的cgroup的父类(?)

"default-ulimits": {},//设置所有容器的ulimit

"init": false,//容器执行初始化,来转发信号或控制(reap)进程

"init-path": "/usr/libexec/docker-init",//docker-init文件的路径

"ipv6": false,//开启IPV6网络

"iptables": false,//开启防火墙规则

"ip-forward": false,//开启net.ipv4.ip_forward

"ip-masq": false,//开启ip掩蔽(IP封包通过路由器或防火墙时重写源IP地址或目的IP地址的技术)

"userland-proxy": false,//用户空间代理

"userland-proxy-path": "/usr/libexec/docker-proxy",//用户空间代理路径

"ip": "0.0.0.0",//默认IP

"bridge": "",//将容器依附(attach)到桥接网络上的桥标识

"bip": "",//指定桥接ip

"fixed-cidr": "",//(ipv4)子网划分,即限制ip地址分配范围,用以控制容器所属网段实现容器间(同一主机或不同主机间)的网络访问

"fixed-cidr-v6": "",//(ipv6)子网划分

"default-gateway": "",//默认网关

"default-gateway-v6": "",//默认ipv6网关

"icc": false,//容器间通信

"raw-logs": false,//原始日志(无颜色、全时间戳)

"allow-nondistributable-artifacts": [],//不对外分发的产品提交的registry仓库

"registry-mirrors": [],//registry仓库镜像

"seccomp-profile": "",//seccomp配置文件

"insecure-registries": [],//非https的registry地址

"no-new-privileges": false,//禁止新优先级(??)

"default-runtime": "runc",//OCI联盟(The Open Container Initiative)默认运行时环境

"oom-score-adjust": -500,//内存溢出被杀死的优先级(-1000~1000)

"node-generic-resources": ["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"],//对外公布的资源节点

"runtimes": {//运行时

"cc-runtime": {

"path": "/usr/bin/cc-runtime"

},

"custom": {

"path": "/usr/local/bin/my-runc-replacement",

"runtimeArgs": [

"–debug"]

}

}

}

服务端安装git:yum install git

拉取一下文件和命令:git clone

指定分支克隆git clone -b dev-1

查看本地和远端版本:git branch -a

切换本地分支为dev:git checkout -b dev origin/dev

启动docker:service docker start

后 执行文件中的shell:./init.sh all (顺序:mysql,mongo,redis,solr,activemq,tomcat)

删除多下载的镜像:docker rmi --force 3068f6bb852e

容器列表: docker ps -a

进入某个容器:docker exec -it [CONTAINER ID] /bin/bash

查看某个容器进程:docker top [NAMES]

# 查看是否安装了tomcat: rpm -qa | grep tomcat

# 查找文件:find / -name tomcat

# 切换Tomcat目录:cd /usr/local/tomcat/bin

# 关闭Tomcat:./shutdown.sh

# 查看docker中的java版本:docker exec container_name java -version

git拉代码:git clone git@172.16.1.35:gchat/gaga-server.git

查看远端分支:git branch -r

创建本地dev分支 并切换到dev分支:git checkout -b dev origin/dev

查看本地分支:git branch

切换回眸分支:git checkout master

查看所有JDK在系统中位置:/usr/libexec/java_home -V

参考地址:

查找docker 安装包:yum list installed | grep docker

停掉docker:systemctl stop docker

删除对应文件:yum remove docker.x86_64 docker-client.x86_64 docker-common.x86_64 -y

查看下docker rpm源:rpm -qa | grep docker

删除对应路径:rm -rf /var/lib/docker

注释:

本次也是由于业务需要,需要重新搭建新的测试服务器,这也是搭建中的一个插曲,后续会使用 Jenkins 进行相关的持续集成,大家一起学习分享!~

linux 的环境搭建(二)--redis单机环境、生产环境、集群环境的搭建

一、目录

1、工具

2、安装tcl

3、安装单机版redis

4、把redis设置为daemon进程,每次系统启动,redis进程一起启动

5、安装redis cluster

二、工具

2.1、tcl8.6.1-src.tar.gz

2.2、ruby-2.3.1.tar.gz

2.3、redis-4.1.1.gem

2.4、redis-3.2.8.tar.gz

2.5、openssl-1.0.2r.tar.gz

三、安装tcl(安装redis必须先要安装tcl)

3.1、把tcl8.6.1-src.tar.gz通过WinSCP上传到虚拟机中的/usr/local目录下

四、安装单机版redis

4.1、把redis-3.2.8.tar.gz通过WinSCP上传到虚拟机中的/usr/local目录下

4.2、依次运行如下命令:

tar -zxvf redis-3.2.8.tar.gz 解压文件

cd redis-3.2.8

make make test make install

五、把redis设置为daemon进程,每次系统启动,redis进程一起启动

5.1、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号

5.2、修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)

protected-mode no 取消保护模式,保护模式只能127.0.0.1访问

daemonize yes 让redis以daemon进程运行

pidfile /var/run/redis_6379.pid 设置redis的pid文件位置

bind 192.168.3.110

port 6379 设置redis的监听端口号

dir /var/redis/6379 设置持久化文件的存储位置

logfile /var/log/redis/6379.log 设置日志文件位置

5.6、启动redis,依次执行:

cd /etc/init.d,

chmod 777 redis_6379,赋读写执行的权限(chmod -R 777 * 是递归把该目录下的所有文件和其子文件全部赋权限)

./redis_6379 start 启动

5.7、确认redis进程是否启动,ps -ef | grep redis

5.8、让redis跟随系统启动自动启动

5.9、重启系统,不手动启动redis,直接连接redis,可以连接上,表示配置成功

此时一个单机版的redis的生产环境已经搭建好了,每次服务器重启,redis都会自动的启动

六、安装redis cluster

(redis cluster集群,要求至少3个master,去组成一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave)

6.1、前提,我在其它机器上启动了六个redis(安装步骤都如下)

2.2、创建三个目录:

mkdir -p /etc/redis-cluster 存放集群配置信息,自动生成配置

mkdir -p /var/log/redis redis日志

mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件

6.3、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_7001,7001是我们希望这个redis实例监听的端口号,并修改redis_7001配置文件中的REDISPORT=7001

6.4、修改/etc/redis/7001.conf中的部分配置为生产环境

6.5、完成了一个redis环境的配置,依次再配置其余五个,分别为7002、7003、7004、7005、7006,每个启动脚本内,都修改对应的端口号

6.6、启动6个redis实例

6.7、创建集群(需要安装ruby、rubygems)

上述命令在部分机器上是可以直接运行完成,成功安装的,但在部分机器上运行第三条命令时会提示ruby版本太低、openssl找不到的问题,下面依次解决这两个问题:

6.8、再次运行gem install redis命令,报出两个错误

6.9、再次运行gem install redis命令,报出一个错误

6.10、再次运行gem install redis命令,报出一个错误

6.11、再次运行gem install redis命令

[root@ceshi01 local]# gem install redis

Successfully installed redis-4.1.1

Parsing documentation for redis-4.1.1

Done installing documentation for redis after 1 seconds

WARNING: Unable to pull data from ' ' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( )

1 gem installed

运行成功

此时Redis安装好,此三个工具也安装好了,这时我们来做一个Redis集群测试,在一台服务器中创建了6个Redis实例,开启6个Redis服务

redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

此时一个redis集群环境就已经搭建好了,可以通过redis-trib.rb check 192.168.3.105:7003命令查看集群几点的信息

[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004

redis cluster的优点:读写分离+高可用+多master

读写分离:每个master都有一个slave

高可用:master宕机,slave自动被切换过去

多master:横向扩容支持更大数据量

如何搭建一个Linux驱动编写环境

总结下之前尝试过的搭建的编写Linux驱动程序的环境。由于之前的环境是centos,其他平台的差异,就自己注意下吧。

步骤如下:

Step1:下载kernel源码包,解压到/usr/src目录下

命令如下:tar Jxvf /home/yourAccount/linux-2.6.32.67.tar.xz

Step2:为系统的include创建链接文件

命令如下:

cd /usr/include

rm -rf asm linux scsi

ln -s /usr/src/linux-2.6.32.22/include/asm-generic asm

ln -s /usr/src/linux-2.6.32.22/include/linux linux

ln -s /usr/src/linux-2.6.32.22/include/scsi scsi

Step3:下载安装内核开发包

命令如下: yum install kernel-devel-2.6.32-504.el6.x86_64.rpm

如果是其他linux系统,这个命令肯定不同!注意

Step4:建立构建的软连接

命令: ln -s ../../../usr/src/kernels/2.6.32-504.el6.x86_64/ build

在用make编译过程中之前出现过如下问题:

make:*** /lib/modules/.6.32-504.el6.x86_64/build/:No such file ore directory.Stop

出现这个问题的原因是系统没有安装内核开发包,可以查看/usr/src/kernals.

若该目录是空,则说明没安装。若非空,则可能链接有问题,安装上面Step4中到/lib/modules/2.6.32-504.el6.x86_64 去建立软链接

注:内核版本通过uname -r自行查看,查找匹配源码包和开发包


网站题目:linux环境搭建命令 linux系统开发环境搭建
文章地址:http://chengdu.cdxwcx.cn/article/dodcjcd.html