主要是记录一下,免得下次重装系统后又到处搜索。。
Windows 建议使用 chocolatey 包管理工具
一、必要软件的安装
JDK
- AdoptOpenJDK: 预编译好的,带有长期支持的 JDK 版本。(别再用 Oracle 了)
- 或者用 RedHat 预编译的版本:Red Hat OpenJDK
- 解压到
/opt
(optional softwares, 可认为是 D盘)或/usr/local
(相当于 C://Program Files)中。对桌面 Linux 用户而言,可以解压到/home/yourname/softwares/
里也是可以的。 - 添加 PATH 和其他可能需要的环境变量:将下列命令添加到
/etc/profile
中,如果只自己用的话,也可加入到~/.profile
里。
export JAVA_HOME=/opt/java-xx # 设定 JAVA_HOME,这是依赖 JDK 的软件可能需要的环境变量。 export PATH=$JAVA_HOME/bin:$PATH # 添加到 PATH 中,放前面是防止被已存在的java环境覆盖掉。
export JRE_HOME=/opt/java-xx/jre # Tomcat 会先检查 JRE_HOME,若它不存在才检查 JAVA_HOME,一般来说设定了 JAVA_HOME 的话就不需要设定这个变量。
此外 java 还有个 CLASSPATH 变量,不过一般并不需要设置它。通过 -cp 或 --classpath 设定会更灵活。
- AdoptOpenJDK: 预编译好的,带有长期支持的 JDK 版本。(别再用 Oracle 了)
P.S. deepin 可能会遇到提示
_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=gasp
的问题,可以在 .profile 里加上_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
,这是一个字体渲染选项,on 表示完全抗锯齿。详见Java Runtime Environment fonts
- Miniconda 安装基本是傻瓜式的。 需要注意的一个选项是
Do you wish the installer to prepend the Anaconda<2 or 3> install location to PATH in your /home/<user>/.bashrc ?
如果你没注意这个,它默认会选否。此时需要手动将bin
目录添加进 PATH。一般添加到用户的~/.bashrc
里。 - Docker
- 在 Deepin 上的安装:https://wiki.deepin.org/index.php?title=Docker
- 其他:https://yeasy.gitbooks.io/docker_practice/content/install/
- 将用户加入 docker 组,这样就不需要 sudo 权限了:
usermod -aG docker <username>
其实我想我应该整个 Dockerfile,把各种环境全封进去,一劳永逸。。
二、proxychains-ng 代理
有很多命令行软件本身不支持使用代理,或者只支持 http(s) 代理。为了让它们走 socks5 代理。
这时有两个选择:设置镜像源,或者使用 proxychains-ng。
镜像源在后面说,proxychians-ng 因为用途最广,不支持镜像源或者代理的软件,也能通过它强制走代理。所以先介绍它。
首先安装:
# ubuntu
sudo apt-get install proxychains-ng
# arch 系列
yay -S proxychains-ng
proxychians-ng 默认使用 /etc/proxychains.conf
作为它的配置文件,一般安装完成后,该配置文件就会存在了。
现在修改该配置文件末尾的 ProxyList
,改成你自己的 socks 代理路径:
[ProxyList]
socks5 127.0.0.1 1080
接下来就可以愉快的玩耍了,要使用任何软件时,在开头加上 proxychains
命令就行:
# 直接在开头加上 proxychains
proxychains npm install xxx
proxychains pipenv install xxx
# 需要 sudo 权限的,sudo 在最开头
sudo proxychains pip install xxx
# 或者也可以手动指定要使用的配置文件
sudo proxychains -f /path/to/proxychains.conf git clone git@github.com:xxx/xxx
三、各种镜像源的设置
由于GFW、或者是仓库大多在国外的原因,各种依赖管理工具都需要配置各种镜像仓库,不然网速会很感人。(如果你是全网VPN,忽略这个就行。。) 国内比较有名而且稳定的镜像,大概就是
1. pip 设置清华 Pypi 镜像源
pip install pip -U # 要求 pip>=10.0.0
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
更麻烦的方法:添加文件 ~/.pip/pip.conf
,内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
该配置文件对 pip 和 pip3 都有效。
P.S. 不过可能清华用的人多,感觉中科大 pypi 镜像更快一点。
2. Anaconda 清华镜像源
进上面链接看吧,如果装了 Anaconda 的话。
3. Docker的阿里镜像
具体设置方法见上面的链接。(好像是要登录才可见)
4. maven 镜像
主要有两个:阿里maven镜像 和 163 maven镜像。因为网易有帮助文档,我就只给出网易的了。 参见网易Maven镜像使用帮助
方法一:修改全局设置文件
${maven.home}/conf/settings.xml
,找到标签节点,并在其中添加下面的子节点: nexus-163 Nexus 163 * http://mirrors.163.com/maven/repository/maven-public/ nexus-aliyun nexus-aliyun central http://maven.aliyun.com/nexus/content/groups/public 方法二:用户配置:将上述全局文件 copy 到
${user.home}/.m2/settings.xml
,再在此文件中做上述修改。(这个文件中的设置,会覆盖全局配置。)
setting.xml的详细解释见:https://maven.apache.org/settings.html
方法三:在项目的
pom.xml
中添加或修改:(一般 pom 中的 repo 只用于特殊镜像比较好,所以不建议这么干)nexus-163 Nexus 163 http://mirrors.163.com/maven/repository/maven-public/ default false true nexus-163 Nexus 163 http://mirrors.163.com/maven/repository/maven-public/ false true
5. gradle 镜像
一般 gradle 其实用的也是 maven 仓库,在build.gradle中将对应的仓库全改成阿里的就行:(jcenter 和 google 一般只有安卓项目才需要。普通的 java 项目,只要改 mavenCentral 就行)
// 下面两个repositories都要改
buildscript {
repositories {
// mavenCentral()
// jcenter()
// google()
// 对 kts 脚本,使用: maven { url = uri("http://maven.aliyun.com/nexus/content/groups/public/") }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
}
}
allprojects {
repositories {
// mavenCentral()
// jcenter()
// google()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
}
}
三、socks5代理设置
如果觉得镜像更新慢,也可以使用代理直接访问官方仓库。用 VPN 的话是一劳永逸。但如果你使用的是proxy代理方式,就需要些额外的配置。 anaconda pip 清华源同步很快,所以proxy就略去了。
1. gradle
修改 项目根目录/gradle.properties
文件,加入:(值请改成自己的,每个项目都要改。。)
org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080
2. maven
修改镜像篇说过的 setting.xml,文件的 proxies
节点,加入内容:(同样port请改成自己的)
<proxy>
<id>ss</id>
<active>true</active>
<protocol>socks5</protocol>
<username></username>
<password></password>
<host>127.0.0.1</host>
<port>1080</port>
<nonProxyHosts>127.0.0.1</nonProxyHosts>
</proxy>
3. git
使用如下命令
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'