前言
本文基于飞腾派OS官方文档,对操作步骤和注意事项加以补充说明。
开发环境
系统要求
可以先运行sudo apt update
更新软件环境。
首先需要检查对应软件是否已安装,可以使用dpkg -l | grep <软件包名>
来检查。下面针对给出的软件包提供脚本,可以更便捷地检查是否已安装:
#!/bin/bash
check_package() {
dpkg -l "$1" | grep -q "^ii"
}
# Build tools
packages=(
which
sed
make
binutils
build-essential
gcc
g++
bash
patch
gzip
bzip2
perl
tar
cpio
unzip
rsync
file
device-tree-compiler
bc
)
# Source fetching tools
source_packages=(
wget
git
)
missing_packages=()
# Check build tools
for package in "${packages[@]}"; do
if ! check_package "$package"; then
missing_packages+=("$package")
fi
done
# Check source fetching tools
for package in "${source_packages[@]}"; do
if ! check_package "$package"; then
missing_packages+=("$package")
fi
done
# Print missing packages
if [ ${#missing_packages[@]} -eq 0 ]; then
echo "All required packages are installed."
else
echo "Missing packages:"
for package in "${missing_packages[@]}"; do
echo "- $package"
done
fi
上述脚本使用方法:
-
在任意目录新建check.sh文件:
touch check.sh
-
用文本编辑器(如vim)打开,并粘贴上述bash代码:
vim check.sh
-
添加执行权限:
chmod +x check.sh
-
运行该文件:
./check.sh
笔者运行后提示which和device-tree-compiler没有安装。对于前者,命令行直接输入
which
,没有报错,则说明已经安装,不用理会。对于后者,输入sudo apt install device-tree-compiler
即可安装。"无法获得锁 /var/cache/apt/archives/lock。锁正由进程 ... 持有"的解决方案:
sudo rm /var/cahe/apt/archives/lock
sudo rm /var/lib/dpkg/lock
删除对应目录的lock即可。
Ubuntu 22.04是基于Debian 12的,则按照说明,不需要设置PATH环境变量。
接下来按照说明make即可,需要一段时间。