打不开msi文件看这篇文章
关于Linux环境变量的一些事情文章 文章2
有时候遇上多种环境,常常改写环境配置文件或者Windows打开系统设置很麻烦,可以使用两个系统的环境变量更改命令,更进一步可以写个C程序(利用system函数)来调用。
Windows:
Linux下可以使用update-alternative命令,因为Linux文件组织和程序运行的特殊机制,只需要用这个命令更改/usr/bin/下的文件软连接就可以了。在命令最后使用&可以返还控制权实现命令后台运行,使用可以直接将命令输出销毁。
推荐参考关于JDK一些概念和JDK的安装配置(Linux/Windows适用)
首先简要地说一下gcc,clang,msvc等的区别。
C语言主要是需要编译器链接器等等一系列工具链和一些默认的头文件,这种一系列的工具文件成为工具链。C/C++目前很多个这种工具链,如:
1.GNU项目的GNU套件(包括熟知的gcc,gdb,g++等)。GNU项目原本是独Linux有的,后来有了两个Windows移植版本,一个是Mingw,还有一个是Cygwin。Cygwin还额外可以模拟Linux环境使用GNU套件的autotools工具。
2.Apple的LLVM套件。LLVM是在GNU的基础上形成的一套工具链(高达2个G的大小),其中包含了也非常有名的clang和clang++编译器。LLVM也是Object-c项目的默认编译套件。使用LLVM,即使用clang不需要GNU
3.微软的MSVC套件。全称为Visual C++ Building Tools。MSVC是使用Visual Studio时默认下载使用的编译器套件(即安装界面选择C/C++桌面开发环境下载的环境),也是包括了编译器(文件名为cl.exe),链接器(文件名为link.exe)等等一系列完整工具的工具链。
第三个只需要无脑安装一个VS就可以拥有了。
你也可以看一下这篇文章
visualstudio官网_独立的MSVC套件下载
【笔记】C++独立MSVC编译配置(命令行+sublime)
Windows 如何仅安装 MSVC 而不安装 Visual Studio
对于GNU,你可以不用mingw-w64而使用cygwin链接。
可以参考的文章:
知乎
MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本
选择1:Mingw64
下载MinGW-w64库,推荐在Github上下载,链接。
也可以在Sourceforge的官方网页下载不同的发布 链接或者使用它的在线安装器 链接(这个安装器已经很老了,只能用到8.1.0版本)
我选择在github上下载13版本。
Github页面:
需要选择win32版本,不同的后缀及前缀有不同含义,参考【软件教程】MingW-W64-builds不同版本之间的区别
之后就可以在命令行中直接使用gcc等命令。
另外,mingw的make程序名字不是"make",而是"mingw-make",你可以到解压的文件夹中的bin中找到。可以把它复制一份在bin下,然后改名为make。
选择2:LLVM
之后访问LLVM的官网,下载llvm安装器并打开:
实在想不通clang有整整2.5个G。
安装完成后拿Terminal验证一下就可以了。
选择3:Cygwin
Cygwin是Windows上的一个拟Linux环境的命令行工具,在Cygwin的命令行里可以运行绝大多数Linux环境下的命令,包括make等等,具体的安装方法很简单,可以参考这篇文章,写得比我好。
我在这里写一下怎么在Windows的Terminal里面使用Cygwin:
打开Terminal终端后,新建一个配置项,别的可以随便改一改(比如把它默认的图标加上去),然后关注一下启动命令行的选项:
如果比较有追求,可以把Terminal里Cygwin的默认启动终端换成zsh(只需要把bash换成zsh就行了。我非常建议这样做,极少的付出可以换得极大的使用体验升级),但是同样应该加上–login参数。
Cygwin使用zsh看这篇文章
一条命令:
说句老实话,Linux上gnu就是神,没必要用llvm。
载开始之前我先说明一些概念。
C#是.Net框架的一部分,也就是说C#是依附在.Net框架上存在的。只是C#的发展大大超出了原本的预料,导致.Net框架甚至可以跨平台了(Java2?)。所以说C#不像C语言一样,有gcc,clang,msvc很多种编译器,它主要只使用一种编译器,配置C#开发环境实际上是配置.Net SDK环境。
.Net以前的版本称为.Net Framework(最后一个版本是4.8.1),它只服务在Windows系统上,但是又因为.Net是一个开源项目,所以很快有了另外的开源实现mono(需要魔法访问)。后来.Net更新了许多版本,并从.Net Framework改名到.Net Core(第一个.Net Core版本是6),并且实现了跨平台。鉴于新的.Net Core,这里不会有mono配置教程。
Unity里面使用的C#更像是一种脚本语言,Unity不是编译器,它只是利用了C#。
我们无法安装.Net Framework作为开发环境,它只能作为Visual Studio的一个子配件,在.Net Framework中没有编译器也没有包管理器。建议至少使用.Net Core6
.Net Core官网
访问官网后找到下载页面,选择对应架构的zip二进制文件下载。
使用安装器安装会给你塞到C盘的Program Files的某个小角落,非常的阴险(。
我强烈建议使用zip安装包。
你可以在终端中使用如下命令查看安装情况,出现正常的版本信息即安装成功。
这个和Windows的步骤基本一模一样,依然是下载文件,然后找个地方解压。
但是我们有更好的办法,使用Microsoft的官方存储库,然后使用apt命令安装
Microsoft官方存储库说明文档_.Net
我使用Ubuntu系统,按照下面方式执行命令:
之后运行
你可以用Tab补全一下,可以发现8.0也是可以下载的。
安装完成之后就可以使用dotnet命令了。
如果是非Microsoft列出的系统就只能老老实实像Windows一样下载二进制包然后解压了。
这里把它解压到了目录下,然后配置环境变量。
.Net的所有核心都在dotnet这一个命令上。
.Net实际上的编译器名字叫csc。你可以在.Net Framework的文件夹中发现它的影子。
mono的编译器名称为msc。早期使用mono可以实现Linux上运行exe文件的壮举。
先说好,1.13以上的Golang已经有成熟的包管理器了,不要纠结GOPATH环境变量的问题了
我一直觉得Golang的Logo的眼神很睿智怎么回事(?)
Golang官网
Golang下载_官网
Golang中文社区
Golang_UTSC镜像站
访问GoLang官网下载安装器(进不去就去UTSC的镜像网站下载),然后找个地方安装就可以了,注意不要下载rc版本。
Golang安装时自动配置了环境变量,我在下一步自己调了一下,你可以跳过这一步不调整。
注意其中的是一种老旧方式的设置代理方法,现在已经不需要这么做了,只需要使用来设置。
但是Debian库里有Golang:
安装就完成了
安装Golang后执行(Linux/Windows):
其次是关于Go默认下载的包,我们不配置GOPATH变量它会默认下载在用户目录的go文件夹下,我们可以通过可以设置环境变量来重定向下载包的保存位置(但其实必要性不大)。
还有个事,Linux直接通过包管理器安装的Golang是不会配置这个目录到PATH变量的,如果你下载的某些Go模块具有可直接执行文件,在命令行是不能直接执行的,你需要手动把加入到PATH中。
你可以用查看所有的go环境变量并使用上述的来设置。
Node的脚手架npm在安装Node时就一并安装了。
可选操作:
使用apt直接下载是最简单的办法,但是大多Linux发行版Node.js版本都比较老,比如Ubuntu版本只有12。
所以我们使用官网安装的方式。
访问nodejs的官网,下载最新LTS版本的tar.xz文件,也可以直接wget。
解压,随便什么方式,然后把它移动到一个想要的目录去,个人建议是目录下
打开~/.profile文件,向其中加入环境变量(参考Java)
npm默认在用户目录下设置缓存下载和安装,建议更换位置。
再设置一个环境变量,指向npm的global路径下实现所有的npm插件可访问;
npm的使用事项
Linux环境下如果是全局下载,即npm使用了参数-g,是必须使用sudo权限才能成功下载的。
除此之外,全局下载如果要使用镜像,也必须使用sudo权限重新设置一遍镜像。
使用yarn
Yarn是基于npm的一个更高级的管理工具,它非常好用,强烈建议
无论操作系统,在安装完node.js后都可以这样安装:
你也可以使用Deno引擎,这是用rust语言写的JavaScript引擎,具有更高的性能和安全性,同时完全兼容当前的Node.js(包括Package.json和各类构建命令)。
或者也可以使用bun。
-----2023.12.10更新-----
淘宝源地址从
“https://registry.npm.taobao.org”
更换成了
“https://registry.npmmirror.com”
望周知。
Rust的开发环境安装其实很简单,官网下个exe然后夸夸一顿点就行了,但是我们遇到的问题有:
1.默认安装在home或者C盘。
2.Windows上默认使用msvc编译套件,而我想要用MinGW套件。
3.安装下载速度极慢。
我们要的是完全自定义的安装(
Rust官网
在官网很容易找到如下的下载界面,我下载了64位的版本,运行之后真的很慢,经过漫长的等待后是这样的:
自定义安装过程如下:
在系统变量中新建如下表格中的变量,然后把其中和添加到Path变量中。
这里已经更改安装位置了,但是改不了使用的套件。
以管理员权限运行:
前面说到Rust是默认安装在home目录下的,而且下载很慢。在Linux下我们也可以配置几个环境变量来改变它。
如果不是安装在/usr/lib这种目录下,这个环境变量配置为用户变量即可,但是我这里要把它塞到/usr/lib下,所以我在/etc/profile里配置。
首先新建我们需要它安装的文件夹(真的抽象新新建),一个是.rustup文件夹,一个是.cargo文件夹
一定要先新建文件夹
因为我安装到/usr/lib下,所以我会先把/usr/lib/rust文件夹权限修改为可任意访问,不然无法在当前用户下安装。
这个过程会非常的快。
别忘了先按照提示source一下。
这个操作可以加速
打开文件夹(与环境变量设置的cargo路径一致,在使用默认配置时该文件夹在用户目录下),创建名为的文件,写入以下内容:
参考文链接
下载msi文件后打开安装包。选择第二个。
可选的步骤:设置缓存路径
找到安装时声明的数据路径,一般在目录下,把其中的文件复制出来更改。搜索其中的和,修改为其他路径,注意斜杠
也可以直接在任务管理器里找到Mysql服务进行开启,关闭,重启操作。
在mysql命令行使用下列语句查询更改是否成功:
参考文链接1,链接2
一条命令:
可能会提示安装包依赖未满足,则使用下面的:
安装后进行安全设置:
怎么选直接看百度翻译。如果是个人开发者建议第一个密码策略直接回车掉减少心智负担
之后登入以root身份登入mysql并修改root用户的密码:
之后重启一下就可以了。
可选:更改MySQL数据库缓存路径
首先,Ubuntu和其他Debian发行版不太一样,所以建议自行移步到百度搜一下。
其次,因为权限的问题,无论如何这个数据库都不可能改到/home路径下。
然后把原有的数据库文件夹移动到别的地方,默认是,我假设移到了。
编辑文件,把datadir修改为移动后的MySQL文件夹:
这里是设置和配置php,Apache,Mysql,nginx使能正常交互。
对应架构三者要是一样的位数,比如Apache是64位,那PHP也要是64位
Apache配置
Apache php mysql配置
依然是打开Apache的httpd.conf文件,在最开始加入以下内容:
在php的目录下有和两个文件,这两个文件是的模板文件,你可以自己打开然后丢到网易有道里看一下。
然后mysql没什么需要配置的,重启Apache服务就可以了。
Nginx php mysql 配置
因为Nginx是即开即用,就是你直接运行解压缩文件中的nginx.exe,它就会自动读取配置文件然后后台代理,所以可以不用做Nginx的配置直接配置三者联系。
把下面自带的php配置的注释删掉,再改一下就可以了,最后是这样的:
保存后来到php的目录下,使用下面的命令开启cgi服务:
执行之后没有马上结束或者报Error就可以去打开Nginx.exe文件开启反向代理,就结束了。(出现一大堆乱码是正常情况)
Linux下Apache,Nginx,Mysql安装都只需要用包指令就可以了。
Apache配置
没什么要配置的,下面的命令是开启和关闭的:
Apache php mysql配置
截止目前2023.9.30,通过上面的命令直接安装Apache和php,不需要任何配置就可以直接让Apache反向代理php文件,并且可以访问mysql。
如果要安装其他的php组件也可以用apt安装。
Nginx php mysql配置
先在你的当前的nginx配置里面加上index.php扩展名。
然后修改php-fpm的配置文件,一般在的位置,找到下面的字串并把注释去掉:
就可以正常访问了。
可选(强烈建议):软链接修改.gradle文件夹位置
.gradle文件夹为Gradle的缓存目录,默认在C盘用户下,建议修改到其他地方,软链接可以看文章
Apt仓库中的Gradle太老了,建议在官网下载最新的,然后找个地方解压,配置环境变量。
然后一样配置环境变量,打开加入这些内容。
xmake是刚刚流行的C/C++构建工具,在此之前开发大多使用VS(有多笨重我不说),或者写make的Makdfile(这个难度真的是特别大而且繁杂),cmake的CMakeList(cmake的反人类语法也是恶心),此外还有ninja,gn等等构建工具ninja和gn_知乎。以上几种主流办法相信在不久的将来都会被xmake取代,这个就叫自信。
xmake是中国人写的开源项目,在github和gitee上都可以找到,并且有中文文档,其构建使用lua脚本,这是一种非常自然语言的脚本,而且xmake提供了类似gradle的一键上票功能,最多两个指令,就可以跑出来HelloWorld程序了,至于包管理功能等等更是数不胜数。
跟不不敢想Xmake+VSCode有多爽!
Xmake官方文档
C/C++ 构建系统,我用 xmake_知乎
xmake入门,构建项目原来可以如此简单
Xmake安装指导_官网
c++基础00-如何让程序运行起来?_实际是一篇关于构建工具的文章
Windows下可以使用PowerShell安装或者安装文件安装:
Windows安装文件下载
安装文件方式安装完成后需要像这里所有教程一样配置环境变量。
注意,Linux不推荐使用root用户安装,也不推荐在root权限下使用。
最通用的安装方式是wget或者curl(务必加上sudo):
在官方安装指导上还有关于不同系统的方式,但curl和wget是全通用的。
可选的操作(建议)(Windows/Linux通用)
1.设置国内镜像代理:
或者参考xmake代理_官网
2.更改存储包默认路径
Docker官网
Docker下载中心
Docker为Windows提供了一体化配置的安装包,直接从官网下载安装包安装就可以了。
我不建议在Windows上使用Docker。
1.官网下载安装
这个办法大概率会因为缺少依赖包挂掉(
2.直接包管理器安装
一键就搞定了(
关于Linux环境变量的事情
在整篇文章中我都推荐Linux上配置环境变量是更改**~/.profile**文件。了解Linux的读者会知道很多比如,,,,等。
其中有些文件关系系统的等级比较高,配置错了就会让整个系统shutdown,还有一些文件是特定发行版才有的,以rc结尾的文件大多只对本Shell环境有效,比如.bashrc是Bash Shell的配置文件,严格意义上不能为整个系统添加上环境变量(某些程序调用系统级函数读取环境变量是不经过Shell的),而只是在新开的Bash中有用(如果你用的是zsh,那这个东西更没用,得在.zshrc里配置才有用)。
但是.profile文件是通用的,因此文章中配置环境变量都在这个文件里。
在.profile文件中配置最为稳当。而且当配置无误后(即新开Shell不报错,运行命令也正常),你甚至可以转到系统级的配置文件中(需要root权限。这个文件也是Linux都有的,而且优先级很高,可以直接为整个系统设置变量而不仅仅是Bash)。
参考文章操作系统:Linux 环境变量配置的 6 种方法
关于Windows在VSCode里面写C代码的事