主要是記錄一下,免得下次重裝系統后又到處搜索。。
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
里。
- AdoptOpenJDK: 預編譯好的,帶有長期支持的 JDK 版本。(別再用 Oracle 了)
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 設定會更靈活。
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
,找到標簽節點,並在其中添加下面的子節點:
<mirror>
<id>nexus-163</id>
<name>Nexus 163</name>
<mirrorOf>*</mirrorOf>
<url>http://mirrors.163.com/maven/repository/maven-public/</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<mirrorOf>central</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
- 方法二:用戶配置:將上述全局文件 copy 到
${user.home}/.m2/settings.xml
,再在此文件中做上述修改。(這個文件中的設置,會覆蓋全局配置。)
setting.xml的詳細解釋見:https://maven.apache.org/settings.html
- 方法三:在項目的
pom.xml
中添加或修改:(一般 pom 中的 repo 只用於特殊鏡像比較好,所以不建議這么干)
<repositories>
<repository>
<id>nexus-163</id>
<name>Nexus 163</name>
<url>http://mirrors.163.com/maven/repository/maven-public/</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus-163</id>
<name>Nexus 163</name>
<url>http://mirrors.163.com/maven/repository/maven-public/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
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'