首页 > 其他分享 >Phytium Pi OS的基本配置

Phytium Pi OS的基本配置

时间:2023-09-24 23:12:07浏览次数:30  
标签:packages package Phytium missing apt sh Pi OS check

前言

本文基于飞腾派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

上述脚本使用方法:

  1. 在任意目录新建check.sh文件:
    touch check.sh

  2. 用文本编辑器(如vim)打开,并粘贴上述bash代码:
    vim check.sh

  3. 添加执行权限:
    chmod +x check.sh

  4. 运行该文件:
    ./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即可,需要一段时间。

标签:packages,package,Phytium,missing,apt,sh,Pi,OS,check
From: https://www.cnblogs.com/EndPoem-ZH/p/17677090.html

相关文章

  • 新装Linux系统必备操作(Ubuntu & CentOS 7)
    设置输入法、快捷键以CentOS7为例:设置输入法:Region&Language,设置输入法为“中文(拼音)”和“英语(美国)”设置切换输入法快捷键:设备-keyboard-打字,切换下一输入法快捷键为Ctrl+Space设置打开终端快捷键:设备-keyboard,点击底部'+'添加快捷键,名称“打开终端”,指令......
  • PostgreSQL教程:备份与恢复(物理备份、物理恢复)
    物理备份(归档+物理)这里需要基于前面的文件系统的备份和归档备份实现最终的操作单独使用文件系统的方式,不推荐毕竟数据会丢失。这里直接上PostgreSQL提供的pg_basebackup命令来实现。pg_basebackup会做两个事情、会将内存中的脏数据落到磁盘中,然后将数据全部备份会将wal日志直接做归......
  • PostgreSQL教程:事务的ACID特性及基本使用
    什么是ACID?在日常操作中,对于一组相关操作,通常要求要么都成功,要么都失败。在关系型数据库中,称这一组操作为事务。为了保证整体事务的安全性,有ACID这一说:原子性A:事务是一个最小的执行单位,一次事务中的操作要么都成功,要么都失败。一致性C:在事务完成时,所有数据必须保持在一致的状态。(事......
  • PostgreSQL教程:触发器
    触发器Trigger,是由事件触发的一种存储过程当对标进行insert,update,delete,truncate操作时,会触发表的Trigger(看触发器的创建时指定的事件)构建两张表,学生信息表,学生分数表。在删除学生信息的同时,自动删除学生的分数。先构建表信息,填充数据createtablestudent(idint,namev......
  • PostgreSQL教程:约束(主键、非空、唯一、检查约束)
    核心在于构建表时,要指定上一些约束。约束主键--主键约束droptabletest;createtabletest(idbigserialprimarykey,namevarchar(32));非空--非空约束droptabletest;createtabletest(idbigserialprimarykey,namevarchar(32)notnull);......
  • PostgreSQL教程:数组类型
    数组还是要依赖其他类型,比如在设置住址,住址可能有多个住址,可以采用数组类型去修饰字符串。PGSQL中,指定数组的方式就是[],可以指定一维数组,也支持二维甚至更多维数组。构建数组的方式:droptabletest;createtabletest(idserial,col1int[],col2int[2],col3......
  • PostgreSQL教程:JSON&JSONB类型
    JSON在MySQL8.x中也做了支持,但是MySQL支持的不好,因为JSON类型做查询时,基本无法给JSON字段做索引。PGSQL支持JSON类型以及JSONB类型。JSON和JSONB的使用基本没区别。撇去JSON类型,本质上JSON格式就是一个字符串,比如MySQL5.7不支持JSON的情况的下,使用text也可以,但是字符串类型无法校验......
  • PostgreSQL教程:IP类型cidr
    PGSQL支持IP类型的存储,支持IPv4,IPv6这种,甚至Mac内种诡异类型也支持这种IP类型,可以在存储IP时,帮助做校验,其次也可以针对IP做范围查找。IP校验的效果IP也支持范围查找。......
  • PostgreSQL教程:枚举类型
    枚举类型MySQL也支持,只是没怎么用,PGSQL同样支持这种数据类型可以声明枚举类型作为表中的字段类型,这样可以无形的给表字段追加诡异的规范。--声明一个星期的枚举,值自然只有周一~周日。createtypeweekasenum('Mon','Tues','Sun');--声明一张表,表中的某个字段的类型是上面声......
  • PostgreSQL教程:日期类型
    在PGSQL中,核心的时间类型,就三个。timestamp(时间戳,覆盖年月日时分秒)date(年月日)time(时分秒)在PGSQL中,声明时间的方式。只需要使用字符串正常的编写yyyy-MM-ddHH:mm:ss就可以转换为时间类型。直接在字符串位置使用之前讲到的数据类型转换就可以了。当前系统时间:-可以使用now作为......