在幸狐RV1106开发板上用gcc14.2本地编译安装postgresql 17.5数据库

在幸狐RV1106开发板上用gcc14.2本地编译安装postgresql 17.5数据库

编译环境:
RV1106G3
Linux luckfox-rv1106 5.10.160 #3 Fri Jun 27 14:16:20 AWST 2025 armv7l GNU/Linux
BusyBox v1.36.1
gcc version 14.2.0 (GCC)
GNU ld (GNU Binutils) 2.44
GNU Make 4.4
ncurses 6.5.20240427(libncursesw.so.6.5)
OpenSSL 1.1.1w  11 Sep 2023

瑞芯微RV1106从SD卡启动自己的busybox1.36.1根文件系统:https://zh.purasbar.com/post.php?t=32786
在fedora42上用arm-gnu-toolchain-14.2交叉编译器编译gcc14.2、gdb14.2和make4.4:https://zh.purasbar.com/post.php?t=32816
在瑞芯微RV1106板子上用gcc14.2本地编译安装apache2.4.63,开启http2和tls1.3,并且https支持XP系统的IE6-8浏览器:https://zh.purasbar.com/post.php?t=32825

工作目录:
mkdir ~/software/postgresql
cd ~/software/postgresql

【编译安装icu4c-77_1】
[方法1: 在板子上本地编译]
wget https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-src.tgz --no-check-certificate
tar xf icu4c-77_1-src.tgz
cd icu/source
./configure --with-data-packaging=files
make

批量创建文件夹:
mkdir -p $(find data/out/build -type d | sed "s/data\/out\/build/\/usr\/local\/share\/icu\/77.1/")
注意文件夹名字中的版本号。如果不知道的话,可以先执行make install看看报错信息。

make install
cd ../..

[方法2: 在电脑上交叉编译]
export PATH=$PATH:/home/oct1158/Downloads/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf/bin
wget https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-src.tgz
tar xf icu4c-77_1-src.tgz
cd icu
mkdir _build
cd _build
../source/configure
make

mkdir ../_build2
cd ../_build2
../source/configure --host=arm-none-linux-gnueabihf --with-cross-build=$(pwd)/../_build --with-data-packaging=files
make

修改data/Makefile文件:第172-181行,把每一行的$(ICUPKGDATA_DIR)都改成$(DESTDIR)$(ICUPKGDATA_DIR)。
批量创建文件夹:
mkdir -p $(find data/out/build -type d | sed "s/data\/out\/build/_install\/usr\/local\/share\/icu\/77.1/")
注意文件夹名字中的版本号。如果不知道的话,可以先执行make install DESTDIR=$(pwd)/_install看看报错信息。

make install DESTDIR=$(pwd)/_install
cd _install
sudo chown -R root:root usr
tar czf icu4c-77_1-binary.tar.gz usr
mv icu4c-77_1-binary.tar.gz /var/www/html/oct1158

[测试icu库是否能正常工作(非常重要)]
先运行一下ldconfig。

执行:/usr/local/bin/icuinfo
提示:ICU Initialization returned: U_FILE_ACCESS_ERROR

执行:ICU_DATA=/usr/local/share/icu/77.1 /usr/local/bin/icuinfo(注意这是一行命令,不是两行)
提示:ICU Initialization returned: U_ZERO_ERROR
看到U_ZERO_ERROR就说明正常了,zero error零错误,就是没有错误的意思,在icu库里面用于UErrorCode类型变量的初始值。

修改/etc/profile文件:添加export ICU_DATA=/usr/local/share/icu/77.1。
改完后用exit命令退出命令行,再按回车键重新进入命令行。

【编译安装bison-3.8.2】
wget https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.gz --no-check-certificate
tar xf bison-3.8.2.tar.gz
cd bison-3.8.2
./configure
make
make install
cd ..

【编译安装flex-2.6.4】
wget https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz --no-check-certificate
tar xf flex-2.6.4.tar.gz
cd flex-2.6.4
./configure
make
make install
cd ..

【编译安装readline-8.2.13】
wget https://ftp.gnu.org/gnu/readline/readline-8.2.13.tar.gz --no-check-certificate
tar xf readline-8.2.13.tar.gz
cd readline-8.2.13
./configure
make
make install
ldconfig
cd ..

【编译安装postgresql-17.5】
wget https://ftp.postgresql.org/pub/source/v17.5/postgresql-17.5.tar.gz --no-check-certificate
tar xf postgresql-17.5.tar.gz
cd postgresql-17.5
./configure LDFLAGS="-lncursesw"
(如果报Could not execute a simple test program.的错误,说明之前忘记了执行ldconfig。请检查gcc helloworld.c -o helloworld -lreadline -lncursesw编译出来的程序是否能成功执行,helloworld.c里面是空白main函数。)
make
make install
ldconfig
cd ..

【使用postgresql-17.5数据库】
给/dev/urandom添加权限:chmod o+rw /dev/urandom(不添加权限的话会报running bootstrap script ... 2025-06-30 08:31:57.060 UTC [415] PANIC:  could not generate secret authorization token的错误)
给/dev/null添加权限:chmod o+rw /dev/null
添加postgres用户和组:adduser postgres
登录postgres用户:su postgres
初始化数据库:/usr/local/pgsql/bin/initdb -D /home/postgres/data

[root@luckfox-rv1106 /]# ls /home/postgres/
[root@luckfox-rv1106 /]# su postgres
[postgres@luckfox-rv1106 /]$ /usr/local/pgsql/bin/initdb -D /home/postgres/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default database encoding has accordingly been set to "SQL_ASCII".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /home/postgres/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... sysv
selecting default "max_connections" ... 100
selecting default "shared_buffers" ... 128MB
selecting default time zone ... UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... 2025-06-30 11:32:18.303 UTC [368] WARNING:  no usable system locales were found
ok
syncing data to disk ... ok

initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    /usr/local/pgsql/bin/pg_ctl -D /home/postgres/data -l logfile start

[postgres@luckfox-rv1106 /]$ ls ~
data
[postgres@luckfox-rv1106 /]$

如果报下面的错误:
performing post-bootstrap initialization ... 2025-06-30 11:28:10.430 UTC [341] FATAL:  could not open collator for locale "und": U_FILE_ACCESS_ERROR
2025-06-30 11:28:10.430 UTC [341] STATEMENT:  UPDATE pg_collation SET collversion = pg_collation_actual_version(oid) WHERE collname = 'unicode';
要么是编译icu库的时候没带--with-data-packaging=files选项,要么是没有在/etc/profile文件中添加export ICU_DATA=/usr/local/share/icu/77.1环境变量,要么是改了/etc/profile文件但没用exit命令退出命令行再按回车键重新进入命令行。

(postgres用户)启动数据库服务器:/usr/local/pgsql/bin/pg_ctl -D ~/data -l ~/logfile start
(postgres用户)创建mydb数据库:/usr/local/pgsql/bin/createdb mydb
(postgres用户)进入数据库:/usr/local/pgsql/bin/psql
查看数据库列表:\l
选择数据库:\c mydb
创建表:create table test (id serial, title character varying(500), time timestamp default now(), primary key(id));
查看表结构:\d test
插入记录:
insert into test (title) values ('安装黑翼猫扩展内核能使win2000 sp4的ie6浏览器支持sha256签名的https证书'),
('安装微软官方的KB968730补丁能使64位winxp sp2的ie6-8浏览器支持sha256签名的https证书'),
('32位winxp sp3的ie6-8浏览器原生支持sha256签名的https证书'),
('只要采用sha1签名的https证书,2025年的apache2.4.63的https不仅支持xp系统的ie6-8浏览器,还支持原版win2000 sp4系统的ie5-6浏览器'),
('xp系统安装one core api 4.0.1补丁后,可以安装和运行vscode1.70.2,VSCodeUserSetup安装包文件的属性里面的兼容性下拉框要记得选择win7sp1');
查看表数据:select * from test;
退出数据库:\q
(postgres用户)关闭数据库服务器:/usr/local/pgsql/bin/pg_ctl -D ~/data stop

执行/usr/local/pgsql/bin/psql时如果报错:
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
解决办法:在root用户下chmod o+rw /dev/urandom。
建议将chmod o+rw /dev/urandom和chmod o+rw /dev/null添加到开机脚本/etc/init.d/rcS里面。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/912463.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言中map[string]interface{} 和 map[string]string的区别

在 Go 语言中,map[string]interface{} 和 map[string]string 是两种不同类型的 map,它们的主要区别在于值的类型以及这种差异带来的使用场景和灵活性的不同。 1. 值的类型 map[string]interface{}:这里的 interface{} 表示 Go 中的空接口类型…

AdGuard Home 安装及使用

AdGuard Home 是 AdGuard 开源的一个私人 DNS 服务端,只需在网关部署,即可实现全局域网的广告拦截与隐私反追踪。在 DNS 解析的过程中,匹配规则库内的 URL 进行拦截,同时在客户端中,还可以通过自定义过滤规则实现网页 DOM 的拦截。 基于 Golang 编写的 AdGuard Home,官方…

绕过 GraphQL 暴力破解保护

题目要求: 本实验的用户登录机制由 GraphQL API 提供支持。API 终端节点有一个速率限制器,如果它在短时间内收到来自同一源的太多请求,则会返回错误。 要解决实验问题,请暴力破解登录机制以 .使用身份验证实验室密码列表作为密码…

C/C++ 使用rapidjson库 操作Json格式文件(创建、插入、解析、修改、删除)

目录 一、前言 1.简介 2.兼容性 3.下载 4.安装 5.官方文档 6.自述 二、封装Json 1. 创建一个 Document 对象 2. "key":"value" 3. { } 4. [ ] 5. [ { }, { } ] 6. [ [ ], [ ] ] 7. { [ ], [ ] } 8. { { }, { } } 9. 将Document转换为字符串…

免安装一键修复网络诊断 + 权限修复!打印机共享错误工具适配 Win7/10/11

各位打印小能手们!你们有没有遇到过共享打印机出问题,搞得自己焦头烂额的情况?比如系统一更新,打印机就连不上,打印任务失败,真的是让人崩溃啊!别慌,今天就给大家全面介绍一款打印机…

电脑分屏快捷键5

按window右箭头: 按window左箭头:

nt!CcFlushCache函数分析之nt!CcFindBcb

nt!CcFindBcb函数分析 第一部分: 1: kd> p nt!CcAcquireByteRangeForWrite0x377: 80a13c49 e866e4ffff call nt!CcFindBcb (80a120b4) 1: kd> t nt!CcFindBcb: 80a120b4 55 push ebp 1: kd> kc # 00 nt!CcFindBcb 01 nt!CcAcqu…

矩阵及矩阵快速幂

一.矩阵与模板 【模板】矩阵求和 时间限制:1秒 内存限制:128M 题目描述 给出两个𝑛行𝑚列的矩阵,求两个矩阵的和 输入描述 第一行输入两个以空格分隔的整数𝑛,𝑚,表示矩…

rk3588获取探维雷达数据

可以在上期部署完 FASTLIO 的工作空间内,继续部署探维雷达的驱动程序。不要问为什么不用 mid360,因为我手上只有探维雷达。 探维雷达的驱动链接:https://github.com/TanwayLab/tanwaylidar_view/blob/main/README.md 下载驱动并编译 因为沿…

HTML简介,初步了解HTML

<html> <body> <h1>我的第一个标题</h1> <p1>我的第一个段落</p1> </body> </html> 什么是HTML HTML是用来描述网页的一种语言。 HTML指的是超文本标记语言。 HTML不是一种编程语言&#xff0c;而是一种标记语言。 标记语…

ARM集群服务器 定义

ARM集群服务器的核心定义可归纳为以下要点&#xff1a; 一、核心定义 ARM集群服务器是将‌多个基于ARM架构的处理器节点‌集成在单一物理机箱内&#xff0c;通过高速网络互联形成的分布式计算系统。每个节点均具备独立的计算单元&#xff08;如CPU、GPU/NPU&#xff09;、内存…

进程和线程的区别?

进程&#xff08;Process&#xff09;和线程&#xff08;Thread&#xff09;是操作系统资源分配和调度的核心概念&#xff0c;它们的区别主要体现在以下几个方面&#xff1a; 1. ​​定义与资源分配​​ ​​进程​​ 是程序的​​一次执行实例​​&#xff0c;拥有独立的地址空…

AR 学习:开启未来学习新视界​

AR 学习&#xff0c;即增强现实学习&#xff0c;是一种创新的学习方式&#xff0c;它巧妙地将增强现实技术融入到教育领域。简单来说&#xff0c;就是利用 AR 技术把虚拟的信息和现实场景完美融合&#xff0c;为学习者打造出一个沉浸式的学习环境。AR 学习打破了传统学习的边界…

C++并发编程-4.unique_lock,共享锁和递归锁

本文介绍C 并发中使用的其他类型的锁&#xff0c;包括unique_lock&#xff0c;shared_lock, 以及recursive_lock等。shared_lock和unique_lock比较常用&#xff0c;而recursive_lock用的不多&#xff0c;或尽可能规避用这种锁。 unique_lock unique_lock和lock_guard基本用法…

stm32 freertos下基于 hal库的模拟I2C驱动实现

一 前言 最近搞了两个项目&#xff0c;调了一版freertos下基于hal库得模拟I2C驱动&#xff0c;非常实用&#xff0c;直接拷贝就能用&#xff0c;这里做下记录&#xff0c;主要用到如下四个文件&#xff1a; delay.cdelay.hi2cc.ci2cc.h 二 代码实现 delay.c #include "…

文心大模型 4.5 系列开源首发:技术深度解析与应用指南

文心大模型 4.5 系列开源首发&#xff1a;技术深度解析与应用指南 2025 年 6 月 30 日&#xff0c;百度正式在国内领先的开源平台 GitCode 发布文心大模型 4.5 系列开源模型。此次开源不仅覆盖了从数亿到数百亿参数的多种规模&#xff0c;还在多模态理解、指令遵循、世界知识记…

智能制造——58页智慧工厂解决方案【附全文阅读】

适应人群为制造业企业管理者、技术人员及规划改造团队。主要内容是以 JetLinks IoT 平台为基础&#xff0c;构建涵盖设备层、网络层、平台层和应用层的智慧工厂体系&#xff0c;通过多种通信协议实现设备互联&#xff0c;利用大数据、AI 等技术实现数据采集与处理、设备全生命周…

DeepSeek16-open-webui Pipelines开发填坑

一、虚拟环境安装 mkdir open_webui_pipelines cd open_webui_pipelines python -m venv py3119_env call py3119_env\Scripts\activate 二、下载服务以及安装依赖 git clone https://github.com/open-webui/pipelines.git cd pipelines pip install -r requirements.txt三、…

兰亭妙微APP 界面设计与软件开发综合服务商

兰亭妙微作为 APP 界面设计公司与软件开发公司&#xff0c;自 2011 年成立以来&#xff0c;由清华团队主导&#xff0c;在软件和互联网 UI/UE 设计开发领域发展 16 年&#xff0c;积累了一定的行业经验。 在 APP 界面设计方面&#xff0c;我们的团队包含交互设计师、用户体验相…

【算法】动态规划:1137. 第 N 个泰波那契数

1137. 第 N 个泰波那契数 简单 相关标签 premium lock icon 相关企业 提示 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 示例 1&#xff1a; 输入&am…