1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# 根据已知密码配置密码缓冲期
export SUDO_ASKPASS=$(mktemp)
cat > ${SUDO_ASKPASS} <<'EOF'
#!/bin/bash
# configure password
echo "ubt"
EOF
chmod 700 ${SUDO_ASKPASS}
sudo -A whoami
rm -f ${SUDO_ASKPASS}
while true; do sudo -v; sleep 240; done &
sudo tee /etc/apt/sources.list.d/arm64.list > /dev/null << 'END'
deb https://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu-ports/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-backports main restricted universe multiverse
END
if [ "$(grep "^deb \[arch=arm64\]" /etc/apt/sources.list.d/arm64.list)" == "" ]; then
sudo sed -i 's|^\(deb[a-z]* \)|\1[arch=arm64] |g' /etc/apt/sources.list.d/arm64.list # 在每个deb开头行添加[arch=arm64]
sudo sed -i '/^deb-src /s/^/#/' /etc/apt/sources.list # deb-src源(源代码包)行首添加注释
fi
# 要添加的CPU架构(64位ARM),让x86_64系统能够安装和运行arm64架构的软件包。
sudo dpkg --add-architecture arm64
if [ ! -f "/etc/apt/sources.list_bak" ]; then
sudo cp -av /etc/apt/sources.list /etc/apt/sources.list.bak
fi
# sudo sed -i "s@http://.*archive.[a-z]*.com@https://mirrors.aliyun.com/@g" /etc/apt/sources.list
# sudo sed -i "s@http://.*security.[a-z]*.com@https://mirrors.aliyun.com/@g" /etc/apt/sources.list
sudo tee /etc/apt/sources.list /dev/null << 'EOF'
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF
if [ "$(grep "deb \[arch=amd64\]" /etc/apt/sources.list)" == "" ]; then
sudo sed -i 's|^\(deb[a-z]* \)|\1[arch=amd64] |g' /etc/apt/sources.list # 在每个deb开头行添加[arch=arm64]
sudo sed -i '/^deb-src /s/^/#/' /etc/apt/sources.list # deb-src源(源代码包)行首添加注释
fi
# 更新源
sudo apt update
# # 重启系统
# reboot
# 安装libdw
sudo apt install -y libdw-dev:arm64
# 安装c++编译器
sudo apt install -y build-essential
# 安装ninja
sudo apt install -y ninja-build
# 安装交叉编译器
sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
# 安装libssl-dev、cmake
sudo apt install -y libssl-dev
wget -c https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2.tar.gz
tar -zxf cmake-3.24.2.tar.gz
cd cmake-3.24.2
./bootstrap
make -j$(nproc)
sudo make install
cd -
|