Linux 必要软件的安装与配置

Stella981
• 阅读 526

主要是记录一下,免得下次重装系统后又到处搜索。。

Windows 建议使用 chocolatey 包管理工具

一、必要软件的安装

  1. JDK

    1. AdoptOpenJDK: 预编译好的,带有长期支持的 JDK 版本。(别再用 Oracle 了)
    2. 解压到 /opt(optional softwares, 可认为是 D盘)或 /usr/local(相当于 C://Program Files)中。对桌面 Linux 用户而言,可以解压到/home/yourname/softwares/里也是可以的。
    3. 添加 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 设定会更灵活。

P.S. deepin 可能会遇到提示 _JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=gasp的问题,可以在 .profile 里加上 _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on',这是一个字体渲染选项,on 表示完全抗锯齿。详见Java Runtime Environment fonts

  1. 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里。
  2. Docker

其实我想我应该整个 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. 清华 镜像源相当齐全,但是偶尔会停机更新,而且用的人太多,速度有点不稳定。
  2. 中科大 同样是大学学生维护的,速度也有点不稳定,也会停机更新。
  3. 阿里 阿里云的镜像算是最快最稳定的,源也相当齐全。

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镜像使用帮助

  1. 方法一:修改全局设置文件${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
  2. 方法二:用户配置:将上述全局文件 copy 到 ${user.home}/.m2/settings.xml,再在此文件中做上述修改。(这个文件中的设置,会覆盖全局配置。)

setting.xml的详细解释见:https://maven.apache.org/settings.html

  1. 方法三:在项目的 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'

四、包管理器镜像源(apt)

Ubuntu 镜像使用帮助 - 清华镜像源

参考

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
4个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这