软件包及镜像源管理

软件包及镜像源管理#

apt/yum 源#

软件包管理器 apt 和 yum 可以自动地下载、配置、安装、卸载自家的软件包,分别对应 .deb.rpm。软件包管理器会自动地处理软件包之间的依赖关系,给用户提供了极大方便。

(1) 以 Ubuntu 为例,更新镜像源

cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat <<EOF | tee /etc/apt/sources.list
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat <<EOF | tee /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
EOF
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat <<EOF | tee /etc/apt/sources.list
deb http://mirrors.cloud.tencent.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.cloud.tencent.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.cloud.tencent.com/ubuntu/ jammy-updates main restricted universe multiverse
#deb http://mirrors.cloud.tencent.com/ubuntu/ jammy-proposed main restricted universe multiverse
#deb http://mirrors.cloud.tencent.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.cloud.tencent.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.cloud.tencent.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.cloud.tencent.com/ubuntu/ jammy-updates main restricted universe multiverse
#deb-src http://mirrors.cloud.tencent.com/ubuntu/ jammy-proposed main restricted universe multiverse
#deb-src http://mirrors.cloud.tencent.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat <<EOF | tee /etc/apt/sources.list
# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
EOF
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat <<EOF | tee /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.zju.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.zju.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.zju.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.zju.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.zju.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.zju.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.zju.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.zju.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.zju.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.zju.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
EOF
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat <<EOF | tee /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF
切换 Ubuntu 版本或找不到安装包

如要用于其他版本,把 jammy 换成其他版本代号即可: 22.04:jammy;20.04:focal;18.04:bionic;16.04:xenial;14.04:trusty

若官方源找不到安装包,有两种方法可以解决这个问题:

  • https://pkgs.org/ 下载,手动安装:Ubuntu 用 dpkg 命令安装,CentOS 用 rpm 命令安装。

  • 从源代码的安装:

./configure --prefix=/path/to/install/
make
sudo make install

(2) 更新缓存

sudo apt-get clean all
sudo apt-get update

(3) 卸载软件

如果使用 apt 命令安装了软件,卸载软件的方式如下:

sudo apt-get remove <package_name>
sudo apt-get -y autoremove <package_name>
sudo apt-get -y purge <package_name>
sudo apt-get -y autoremove --purge <package_name>

pip 源#

pip 是 Python 包管理工具,该工具提供了对 Python 包的查找、下载、安装、卸载的功能。

(1) 永久切换镜像源

Windows 用户修改文件 C:\Users\%USERNAME%\pip\pip.ini(如果没有则新建)。

mkdir -p ~/.config/pip
cat <<EOF | tee ~/.config/pip/pip.conf
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF
mkdir -p ~/.config/pip
cat <<EOF | tee ~/.config/pip/pip.conf
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
EOF
mkdir -p ~/.config/pip
cat <<EOF | tee ~/.config/pip/pip.conf
[global]
index-url=https://mirror.baidu.com/pypi/simple
[install]
trusted-host=mirror.baidu.com
EOF
mkdir -p ~/.config/pip
cat <<EOF | tee ~/.config/pip/pip.conf
[global]
index-url=https://mirrors.ustc.edu.cn/pypi/web/simple/
[install]
trusted-host=mirrors.ustc.edu.cn
EOF
mkdir -p ~/.config/pip
cat <<EOF | tee ~/.config/pip/pip.conf
[global]
index-url=https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
EOF
mkdir -p ~/.config/pip
cat <<EOF | tee ~/.config/pip/pip.conf
[global]
index-url=https://pypi.python.org/pypi
[install]
trusted-host=pypi.python.org
EOF

(2) 临时切换镜像源

pip install <module_name> -i https://mirror.baidu.com/pypi/simple

(3) 第三方镜像源

若官方源找不到安装包,从 https://pypi.org/ 下载版本后,使用下面的命令安装:

pip install /path/to/file.whl

(4) Conda 管理安装包

在 Windows 下修改 C:\Users\%USERNAME%\.condarc(如果没有则新建)。

cat <<EOF | tee C:/Users/$USERNAME/.condarc
channels:
    - defaults
show_channel_urls: true
default_channels:
    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
    conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
EOF

npm 源#

npm 是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。 通过 npm 可以安装、共享、分发代码,管理项目依赖关系。默认源是 https://www.npmjs.com/

(1)临时改变镜像源

# 方法一:通过 config 命令
npm config set registry http://registry.cnpmjs.org
npm info express

# 方法二:通过 npm 命令
npm --registry http://registry.cnpmjs.org info express

(2)永久修改镜像源

  1. 打开配置文件:~/.npmrc

  2. 写入配置:registry=https://registry.npm.taobao.org

Maven 源#

如果使用 IDEA 默认的国外镜像源比较慢(会导致下载 Maven Wrapper 失败),可尝试使用国内镜像源:

IDEA 默认的 Maven 配置文件在 C:\Users\%USERNAME%\.m2 目录下,如果你能够在找到 settings.xml 文件的话,那直接修改配置文件就可以了。 如果找不到这个文件的话,自己新建一个 settings.xml,然后在文件中写入下面的内容(以阿里镜像源为例):

当然,你也可以自己从 Maven 官方仓库 下载 apache-maven-3.8.5-bin.zip。 然后,1)配置环境变量 MAVEN_HOMEM2_HOME 1Maven 安装与配置 https://www.cnblogs.com/seve/p/10903679.html, 2)修改 apache-maven-3.8.5/conf/settings.xml

修改完成后,在 IDEA 中记得勾选 文件 > 设置 > 构建、执行、部署 > 构建工具 > Maven > 使用 Maven 包装器 > 重写

Linux 本地源#

提示

以下内容未经验证!

  1. 安装好 Linux 操作系统;

  2. 将安装镜像 .iso 文件上传至虚拟机任意目录;

  3. 使用如下命令完成后续操作:

    sudo mkdir /dev/local_mirror
    mount -o loop /home/CentOS-6.10-x86_64-bin-DVD1.iso /dev/local_mirror/
    sudo mkdir /mnt/local_mirror
    sudo cp -r /dev/local_mirror/* /mnt/local_mirror
    cd /etc/yum.repos.d/
    rename .repo .repo.bak *.repo
    cp CentOS-Base.repo.bak CentOS_local.repo
    cp CentOS-Media.repo.bak CentOS-local.repo
    vim CentOS-local.repo
    
  4. 写入如下内容:

    [LocalMirror]
    name=LocalMirror
    baseurl=file:///mnt/local_mirror
    enabled=1
    gpgcheck=0
    
  5. 更新 yum 源

    yum clean all
    yum repolist
    sudo umount /dev/local_mirror
    sudo rm /dev/local_mirror/ -rf