ARM源

pip

pip install xx -i https://www.piwheels.org/simple

仓库更换(centos举例)

源里面经常会有这种变量:

https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/os/

$basearch 的值,系统硬件架构(CPU指令集)

架构是aarch64(ARM)

$stream 的值,就是系统版本了

版本是CentOS Stream release 9

地址代入该系统变量后的路径就是

https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/aarch64/os/

更换源

备份

sudo mv /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.backup

换成阿里源

sudo vi /etc/yum.repos.d/centos.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
#failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/BaseOS/$basearch/os/
        http://mirrors.aliyuncs.com/centos-stream/$stream/BaseOS/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos-stream/$stream/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
 
#additional packages that may be useful
#[extras]
#name=CentOS-$releasever - Extras - mirrors.aliyun.com
#failovermethod=priority
#baseurl=https://mirrors.aliyun.com/centos-stream/$stream/extras/$basearch/os/
#        http://mirrors.aliyuncs.com/centos-stream/$stream/extras/$basearch/os/
#        http://mirrors.cloud.aliyuncs.com/centos-stream/$stream/extras/$basearch/os/
#gpgcheck=1
#gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
#failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/centosplus/$basearch/os/
        http://mirrors.aliyuncs.com/centos-stream/$stream/centosplus/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos-stream/$stream/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[PowerTools]
name=CentOS-$releasever - PowerTools - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/PowerTools/$basearch/os/
        http://mirrors.aliyuncs.com/centos-stream/$stream/PowerTools/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos-stream/$stream/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official


[AppStream]
name=CentOS-$releasever - AppStream - mirrors.aliyun.com
#failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/os/
        http://mirrors.aliyuncs.com/centos-stream/$stream/AppStream/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos-stream/$stream/AppStream/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
yum clean all
yum makecache 
sudo yum update

如果想使用dnf的话,使dnf的源也更新

sudo dnf makecache


添加CRB仓库

vim /etc/yum.repos.d/centos.repo

最后一行加入

[crb]
name = =CentOS-$releasever - CRB - mirrors.aliyun.com
#failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/CRB/$basearch/os/
     http://mirrors.aliyuncs.com/centos-stream/$stream/CRB/$basearch/os/
     http://mirrors.cloud.aliyuncs.com/centos-stream/$stream/CRB/$basearch/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
dnf makecache
yum makecache

用crb下载

dnf --enablerepo=crb install <包名> -y

ubuntu安装包时判断仓库、架构

可以通过https://pkgs.org/来查看要下载的包,是属于哪个仓库源的

比如:

dnf install libnetfilter_queue-devel

报错找不到这个包:libnetfilter_queue-devel

在官网查询,找到自己对应的系统版本。可以看到显示这个包是arrch64架构的。

点进去查看详细信息。这里显示了它的仓库是CRB的,所以需要切换仓库下载

dnf --enablerepo=crb install libnetfilter_queue-devel -y

pip包判断

pip版本为python2.7的

pip install httplib2

报错

 ERROR: Command errored out with exit status 1:
   command: /usr/bin/python2 /usr/local/lib/python2.7/dist-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmp0SlrZb
       cwd: /tmp/pip-install-p9wQcj/httplib2
  Complete output (4 lines):
  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pep517/_in_process.py", line 16, in <module>
      from importlib import import_module
  ImportError: No module named importlib
  ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python2 /usr/local/lib/python2.7/dist-packages/pip/_vendor/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmp0SlrZb Check the logs for full command output.

这时候不要去看 No module named importlib

而是去看报错路径usr/bin/python2 /usr/local/lib/python2.7/dist-packages/pip/_vendor/pep517

实际上可以发现,arm的版本下,没有这条路径。

所以想到应该把pip的源更换为arm的源

https://www.piwheels.org/simple
pip install xx -i https://www.piwheels.org/simple

但是安装失败,去查询官网,可以发现

这个包只支持python3.不支持python2.

评论