在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1

在龙蜥 OS 23上,本来想使用二进制安装,结果发现没有针对龙蜥的列表:

于是想到了源码安装,下面我们列出了PG源码安装的步骤:

1.安装准备

1.1.创建操作系统组及用户

groupadd postgres

useradd -g postgres -m postgres

1.2.建立目录

[root@dbserver1 ~]# mkdir -p /postgresql/{pgdata,pg16,soft}

[root@dbserver1 ~]# chown -R postgres:postgres /postgresql

[root@dbserver1 ~]# chmod -R 775 /postgresql

1.3.下载软件

下载软件

https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz

PostgreSQL: File Browser

[root@dbserver1 ~]# cd /postgresql/soft

[root@dbserver1 soft]# pwd

/postgresql/soft

[root@dbserver1 soft]# ls -ltr

total 0

[root@dbserver1 soft]# wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz

1.4.安装依赖包

使用yum安装,更简单

yum install -y cmake make gcc zlib zlib-devel gcc-c++ perl readline readline-devel  \

 python36 tcl openssl ncurses-devel openldap pam flex

2.源码安装

2.1.解压

[root@dbserver1 soft]# ls -ltr

total 31676

-rw-r--r--. 1 root root 32433767 Nov  7 06:19 postgresql-16.1.tar.gz

[root@dbserver1 soft]#

[root@dbserver1 soft]# tar xvzf postgresql-16.1.tar.gz

[root@dbserver1 soft]# cd postgresql-16.1/

[root@dbserver1 postgresql-16.1]# pwd

/postgresql/soft/postgresql-16.1

[root@dbserver1 postgresql-16.1]# ls -ltr

total 872

-rw-r--r--.  1 1107 1107   1213 Nov  7 06:04 README

-rw-r--r--.  1 1107 1107   6266 Nov  7 06:04 meson_options.txt

-rw-r--r--.  1 1107 1107   1875 Nov  7 06:04 Makefile

-rw-r--r--.  1 1107 1107    277 Nov  7 06:04 HISTORY

-rw-r--r--.  1 1107 1107   4288 Nov  7 06:04 GNUmakefile.in

-rw-r--r--.  1 1107 1107   1192 Nov  7 06:04 COPYRIGHT

-rw-r--r--.  1 1107 1107  87292 Nov  7 06:04 configure.ac

-rwxr-xr-x.  1 1107 1107 584560 Nov  7 06:04 configure

-rw-r--r--.  1 1107 1107    365 Nov  7 06:04 aclocal.m4

-rw-r--r--.  1 1107 1107 102017 Nov  7 06:17 meson.build

drwxrwxrwx. 61 1107 1107   4096 Nov  7 06:17 contrib

drwxrwxrwx.  2 1107 1107   4096 Nov  7 06:17 config

drwxrwxrwx.  3 1107 1107     87 Nov  7 06:17 doc

-rw-r--r--.  1 1107 1107  64601 Nov  7 06:18 INSTALL

drwxrwxrwx. 16 1107 1107   4096 Nov  7 06:18 src

[root@dbserver1 postgresql-16.1]#

2.2 配置

[root@dbserver1 postgresql-16.1]# ./configure --prefix=/postgresql/pg16

-------------------------------------------------------------------------------

[root@dbserver1 postgresql-16.1]# ./configure --prefix=/postgresql/pg16

checking build system type... x86_64-pc-linux-gnu

checking host system type... x86_64-pc-linux-gnu

checking which template to use... linux

checking whether NLS is wanted... no

checking for default port number... 5432

checking for block size... 8kB

checking for segment size... 1GB

checking for WAL block size... 8kB

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables...

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking for gcc option to accept ISO C99... none needed

checking for g++... g++

checking whether we are using the GNU C++ compiler... yes

checking whether g++ accepts -g... yes

checking for gawk... gawk

checking whether gcc supports -Wdeclaration-after-statement, for CFLAGS... yes

checking whether gcc supports -Werror=vla, for CFLAGS... yes

checking whether gcc supports -Werror=unguarded-availability-new, for CFLAGS... no

checking whether g++ supports -Werror=unguarded-availability-new, for CXXFLAGS... no

checking whether gcc supports -Wendif-labels, for CFLAGS... yes

checking whether g++ supports -Wendif-labels, for CXXFLAGS... yes

checking whether gcc supports -Wmissing-format-attribute, for CFLAGS... yes

checking whether g++ supports -Wmissing-format-attribute, for CXXFLAGS... yes

checking whether gcc supports -Wimplicit-fallthrough=3, for CFLAGS... yes

checking whether g++ supports -Wimplicit-fallthrough=3, for CXXFLAGS... yes

checking whether gcc supports -Wcast-function-type, for CFLAGS... yes

checking whether g++ supports -Wcast-function-type, for CXXFLAGS... yes

checking whether gcc supports -Wshadow=compatible-local, for CFLAGS... yes

checking whether g++ supports -Wshadow=compatible-local, for CXXFLAGS... yes

checking whether gcc supports -Wformat-security, for CFLAGS... yes

checking whether g++ supports -Wformat-security, for CXXFLAGS... yes

checking whether gcc supports -fno-strict-aliasing, for CFLAGS... yes

checking whether g++ supports -fno-strict-aliasing, for CXXFLAGS... yes

checking whether gcc supports -fwrapv, for CFLAGS... yes

checking whether g++ supports -fwrapv, for CXXFLAGS... yes

checking whether gcc supports -fexcess-precision=standard, for CFLAGS... yes

checking whether g++ supports -fexcess-precision=standard, for CXXFLAGS... no

checking whether gcc supports -funroll-loops, for CFLAGS_UNROLL_LOOPS... yes

checking whether gcc supports -ftree-vectorize, for CFLAGS_VECTORIZE... yes

checking whether gcc supports -Wunused-command-line-argument, for NOT_THE_CFLAGS... no

checking whether gcc supports -Wcompound-token-split-by-macro, for NOT_THE_CFLAGS... no

checking whether gcc supports -Wformat-truncation, for NOT_THE_CFLAGS... yes

checking whether gcc supports -Wstringop-truncation, for NOT_THE_CFLAGS... yes

checking whether gcc supports -Wcast-function-type-strict, for NOT_THE_CFLAGS... no

checking whether gcc supports -fvisibility=hidden, for CFLAGS_SL_MODULE... yes

checking whether g++ supports -fvisibility=hidden, for CXXFLAGS_SL_MODULE... yes

checking whether g++ supports -fvisibility-inlines-hidden, for CXXFLAGS_SL_MODULE... yes

checking whether the C compiler still works... yes

checking how to run the C preprocessor... gcc -E

checking for pkg-config... /usr/bin/pkg-config

checking pkg-config is at least version 0.9.0... yes

checking allow thread-safe client libraries... yes

checking whether to build with ICU support... yes

checking for icu-uc icu-i18n... yes

checking whether to build with Tcl... no

checking whether to build Perl modules... no

checking whether to build Python modules... no

checking whether to build with GSSAPI support... no

checking whether to build with PAM support... no

checking whether to build with BSD Authentication support... no

checking whether to build with LDAP support... no

checking whether to build with Bonjour support... no

checking whether to build with SELinux support... no

checking whether to build with systemd support... no

checking whether to build with XML support... no

checking whether to build with LZ4 support... no

checking whether to build with ZSTD support... no

checking for strip... strip

checking whether it is possible to strip libraries... yes

checking for ar... ar

checking for a BSD-compatible install... /usr/bin/install -c

checking for tar... /usr/bin/tar

checking whether ln -s works... yes

checking for a thread-safe mkdir -p... /usr/bin/mkdir -p

checking for bison... no

configure: WARNING:

*** Without Bison you will not be able to build PostgreSQL from Git nor

*** change any of the parser definition files.  You can obtain Bison from

*** a GNU mirror site.  (If you are using the official distribution of

*** PostgreSQL then you do not need to worry about this, because the Bison

*** output is pre-generated.)

checking for flex... /usr/bin/flex

configure: using flex 2.6.4

checking for perl... /usr/bin/perl

configure: using perl 5.36.0

checking for a sed that does not truncate output... /usr/bin/sed

checking for grep that handles long lines and -e... /usr/bin/grep

checking for egrep... /usr/bin/grep -E

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking whether gcc is Clang... no

checking whether pthreads work with -pthread... yes

checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE

checking whether more special flags are required for pthreads... no

checking for PTHREAD_PRIO_INHERIT... yes

checking pthread.h usability... yes

checking pthread.h presence... yes

checking for pthread.h... yes

checking for strerror_r... yes

checking whether strerror_r returns int... no

checking for main in -lm... yes

checking for library containing setproctitle... no

checking for library containing dlsym... none required

checking for library containing socket... none required

checking for library containing getopt_long... none required

checking for library containing shm_open... none required

checking for library containing shm_unlink... none required

checking for library containing clock_gettime... none required

checking for library containing fdatasync... none required

checking for library containing shmget... none required

checking for library containing backtrace_symbols... none required

checking for library containing pthread_barrier_wait... none required

checking for library containing readline... -lreadline

checking for inflate in -lz... yes

checking for stdbool.h that conforms to C99... yes

checking for _Bool... yes

checking atomic.h usability... no

checking atomic.h presence... no

checking for atomic.h... no

checking copyfile.h usability... no

checking copyfile.h presence... no

checking for copyfile.h... no

checking execinfo.h usability... yes

checking execinfo.h presence... yes

checking for execinfo.h... yes

checking getopt.h usability... yes

checking getopt.h presence... yes

checking for getopt.h... yes

checking ifaddrs.h usability... yes

checking ifaddrs.h presence... yes

checking for ifaddrs.h... yes

checking langinfo.h usability... yes

checking langinfo.h presence... yes

checking for langinfo.h... yes

checking mbarrier.h usability... no

checking mbarrier.h presence... no

checking for mbarrier.h... no

checking sys/epoll.h usability... yes

checking sys/epoll.h presence... yes

checking for sys/epoll.h... yes

checking sys/event.h usability... no

checking sys/event.h presence... no

checking for sys/event.h... no

checking sys/personality.h usability... yes

checking sys/personality.h presence... yes

checking for sys/personality.h... yes

checking sys/prctl.h usability... yes

checking sys/prctl.h presence... yes

checking for sys/prctl.h... yes

checking sys/procctl.h usability... no

checking sys/procctl.h presence... no

checking for sys/procctl.h... no

checking sys/signalfd.h usability... yes

checking sys/signalfd.h presence... yes

checking for sys/signalfd.h... yes

checking sys/ucred.h usability... no

checking sys/ucred.h presence... no

checking for sys/ucred.h... no

checking termios.h usability... yes

checking termios.h presence... yes

checking for termios.h... yes

checking ucred.h usability... no

checking ucred.h presence... no

checking for ucred.h... no

checking readline/readline.h usability... yes

checking readline/readline.h presence... yes

checking for readline/readline.h... yes

checking readline/history.h usability... yes

checking readline/history.h presence... yes

checking for readline/history.h... yes

checking zlib.h usability... yes

checking zlib.h presence... yes

checking for zlib.h... yes

checking for lz4... no

checking for zstd... /usr/bin/zstd

checking for openssl... /usr/bin/openssl

configure: using openssl: OpenSSL 3.0.12 24 Oct 2023 (Library: OpenSSL 3.0.12 24 Oct 2023)

checking whether byte ordering is bigendian... no

checking for inline... inline

checking for printf format archetype... gnu_printf

checking for _Static_assert... yes

checking for typeof... typeof

checking for __builtin_types_compatible_p... yes

checking for __builtin_constant_p... yes

checking for __builtin_unreachable... yes

checking for computed goto support... yes

checking for struct tm.tm_zone... yes

checking for union semun... no

checking for socklen_t... yes

checking for struct sockaddr.sa_len... no

checking for locale_t... yes

checking for C/C++ restrict keyword... __restrict

checking for struct option... yes

checking for z_streamp... yes

checking whether assembler supports x86_64 popcntq... yes

checking for special C compiler options needed for large files... no

checking for _FILE_OFFSET_BITS value needed for large files... no

checking size of off_t... 8

checking size of bool... 1

checking for int timezone... yes

checking for wcstombs_l declaration... no

checking for backtrace_symbols... yes

checking for copyfile... no

checking for getifaddrs... yes

checking for getpeerucred... no

checking for inet_pton... yes

checking for kqueue... no

checking for mbstowcs_l... no

checking for memset_s... no

checking for posix_fallocate... yes

checking for ppoll... yes

checking for pthread_is_threaded_np... no

checking for setproctitle... no

checking for setproctitle_fast... no

checking for strchrnul... yes

checking for strsignal... yes

checking for syncfs... yes

checking for sync_file_range... yes

checking for uselocale... yes

checking for wcstombs_l... no

checking for __builtin_bswap16... yes

checking for __builtin_bswap32... yes

checking for __builtin_bswap64... yes

checking for __builtin_clz... yes

checking for __builtin_ctz... yes

checking for __builtin_popcount... yes

checking for __builtin_frame_address... yes

checking for _LARGEFILE_SOURCE value needed for large files... no

checking how gcc reports undeclared, standard C functions... error

checking for posix_fadvise... yes

checking whether posix_fadvise is declared... yes

checking whether fdatasync is declared... yes

checking whether strlcat is declared... no

checking whether strlcpy is declared... no

checking whether strnlen is declared... yes

checking whether preadv is declared... yes

checking whether pwritev is declared... yes

checking whether F_FULLFSYNC is declared... no

checking for explicit_bzero... yes

checking for getopt... yes

checking for getpeereid... no

checking for inet_aton... yes

checking for mkdtemp... yes

checking for strlcat... no

checking for strlcpy... no

checking for strnlen... yes

checking for pthread_barrier_wait... yes

checking for getopt_long... yes

checking for syslog... yes

checking syslog.h usability... yes

checking syslog.h presence... yes

checking for syslog.h... yes

checking for opterr... yes

checking for optreset... no

checking unicode/ucol.h usability... yes

checking unicode/ucol.h presence... yes

checking for unicode/ucol.h... yes

checking for rl_completion_suppress_quote... yes

checking for rl_filename_quote_characters... yes

checking for rl_filename_quoting_function... yes

checking for append_history... yes

checking for history_truncate_file... yes

checking for rl_completion_matches... yes

checking for rl_filename_completion_function... yes

checking for rl_reset_screen_size... yes

checking for rl_variable_bind... yes

checking test program... ok

checking whether long int is 64 bits... yes

checking for __builtin_mul_overflow... yes

checking size of void *... 8

checking size of size_t... 8

checking size of long... 8

checking alignment of short... 2

checking alignment of int... 4

checking alignment of long... 8

checking alignment of double... 8

checking for int8... no

checking for uint8... no

checking for int64... no

checking for uint64... no

checking for __int128... yes

checking for __int128 alignment bug... ok

checking alignment of PG_INT128_TYPE... 16

checking for builtin __sync char locking functions... yes

checking for builtin __sync int32 locking functions... yes

checking for builtin __sync int32 atomic operations... yes

checking for builtin __sync int64 atomic operations... yes

checking for builtin __atomic int32 atomic operations... yes

checking for builtin __atomic int64 atomic operations... yes

checking for __get_cpuid... yes

checking for __cpuid... no

checking for _mm_crc32_u8 and _mm_crc32_u32 with CFLAGS=... yes

checking for __crc32cb, __crc32ch, __crc32cw, and __crc32cd with CFLAGS=... no

checking for __crc32cb, __crc32ch, __crc32cw, and __crc32cd with CFLAGS=-march=armv8-a+crc... no

checking which CRC-32C implementation to use... SSE 4.2

checking for library containing sem_init... none required

checking which semaphore API to use... unnamed POSIX

checking which random number source to use... /dev/urandom

checking for /dev/urandom... yes

checking for xmllint... /usr/bin/xmllint

checking for xsltproc... /usr/bin/xsltproc

checking for fop... no

checking for dbtoepub... no

checking whether gcc supports -Wl,--as-needed, for LDFLAGS... yes

checking whether gcc supports -Wl,--export-dynamic, for LDFLAGS_EX_BE... yes

configure: using compiler=gcc (GCC) 12.2.1 20221121 (Anolis OS 12.2.1-2)

configure: using CFLAGS=-Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2

configure: using CPPFLAGS= -D_GNU_SOURCE

configure: using LDFLAGS=  -Wl,--as-needed

configure: creating ./config.status

config.status: creating GNUmakefile

config.status: creating src/Makefile.global

config.status: creating src/include/pg_config.h

config.status: creating src/include/pg_config_ext.h

config.status: creating src/interfaces/ecpg/include/ecpg_config.h

config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s

config.status: linking src/backend/port/posix_sema.c to src/backend/port/pg_sema.c

config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c

config.status: linking src/include/port/linux.h to src/include/pg_config_os.h

config.status: linking src/makefiles/Makefile.linux to src/Makefile.port

-------------------------------------------------------------------------------

2.3 编译

make

make install

3.创建数据库

3.1 配置环境变量

su – postgres

cat >>  ~/.bash_profile <<"EOF"

export PGPORT=5432

export PGDATA=/postgresql/pgdata

export PGHOME=/postgresql/pg16

export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

export PATH=$PGHOME/bin:$PATH:.

export PGHOST=$PGDATA

export PGUSER=postgres

export PGDATABASE=postgres

export PGCLIENTENCODING=GBK

EOF

3.2 .安装语言包

[root@dbserver1 postgresql-16.1]# yum install glibc-common langpacks-zh_CN glibc-langpack-zh glibc-locale-source

3.3 .支持中文

修改/etc/locale.conf配置

 原配置:    LANG="en_US.UTF-8"

修改为:    LANG="zh_CN.UTF-8"

输入:      source /etc/locale.conf

3.4. 初始化

[postgres@dbserver1 ~]$ export LANG=zh_CN.gbk

[postgres@dbserver1 ~]$ /postgresql/pg16/bin/initdb -D /postgresql/pgdata -E UTF8 --locale=zh_CN.UTF8 -U postgres

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 "zh_CN.UTF8".

initdb: could not find suitable text search configuration for locale "zh_CN.UTF8"

The default text search configuration will be set to "simple".

Data page checksums are disabled.

fixing permissions on existing directory /postgresql/pgdata ... ok

creating subdirectories ... ok

selecting dynamic shared memory implementation ... posix

selecting default max_connections ... 100

selecting default shared_buffers ... 128MB

selecting default time zone ... Asia/Shanghai

creating configuration files ... ok

running bootstrap script ... ok

performing post-bootstrap initialization ... 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:

    /postgresql/pg16/bin/pg_ctl -D /postgresql/pgdata -l logfile start

[postgres@dbserver1 ~]$

4.调整参数

4.1 修改数据库基本参数

cat >> /postgresql/pgdata/postgresql.conf << "EOF"

listen_addresses = '*'

port=5432

unix_socket_directories='/postgresql/pgdata'

logging_collector = on

log_directory = 'pg_log'

log_filename = 'postgresql-%a.log'

log_truncate_on_rotation = on

max_connections = 500

shared_buffers = 2GB

EOF

4.2 开放远程访问

cat >> /postgresql/pgdata/pg_hba.conf << "EOF"

# TYPE  DATABASE    USER    ADDRESS       METHOD

host      all       all    0.0.0.0/0        md5

EOF

5.设置服务

5.1 配置系统服务

cat > /etc/systemd/system/PG16.service <<"EOF"

[Unit]

Description=PostgreSQL database server

Documentation=man:postgres(1)

After=network.target

[Service]

Type=forking

User=postgres

Group=postgres

Environment=PGPORT=5432

Environment=PGDATA=/postgresql/pgdata

OOMScoreAdjust=-1000

ExecStart=/postgresql/pg16/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300

ExecStop=/postgresql/pg16/bin/pg_ctl stop -D ${PGDATA} -s -m fast

ExecReload=/postgresql/pg16/bin/pg_ctl reload -D ${PGDATA} -s

KillMode=mixed

KillSignal=SIGINT

TimeoutSec=0

[Install]

WantedBy=multi-user.target

EOF

5.2 加载PG16服务

systemctl daemon-reload

[root@dbserver1 postgresql-16.1]# systemctl daemon-reload

[root@dbserver1 postgresql-16.1]#

5.3 配置自动启动PG

[root@dbserver1 postgresql-16.1]#

[root@dbserver1 postgresql-16.1]# systemctl enable PG16

Created symlink /etc/systemd/system/multi-user.target.wants/PG16.service → /etc/systemd/system/PG16.service.

6. 启动PG

6.1 通过服务方式去启动PG

[root@dbserver1 postgresql-16.1]# systemctl start PG16.service

6.2 确认PG服务

[root@dbserver1 postgresql-16.1]# systemctl status PG16.service

● PG16.service - PostgreSQL database server

     Loaded: loaded (/etc/systemd/system/PG16.service; enabled; preset: disabled)

     Active: active (running) since Mon 2023-11-27 23:45:37 CST; 2s ago

       Docs: man:postgres(1)

    Process: 88748 ExecStart=/postgresql/pg16/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)

   Main PID: 88750 (postgres)

      Tasks: 7 (limit: 9227)

     Memory: 77.4M

        CPU: 122ms

     CGroup: /system.slice/PG16.service

             ├─88750 /postgresql/pg16/bin/postgres -D /postgresql/pgdata -p 5432

             ├─88751 "postgres: logger "

             ├─88752 "postgres: checkpointer "

             ├─88753 "postgres: background writer "

             ├─88755 "postgres: walwriter "

             ├─88756 "postgres: autovacuum launcher "

             └─88757 "postgres: logical replication launcher "

11月 27 23:45:37 dbserver1 systemd[1]: Starting PG16.service - PostgreSQL database server...

11月 27 23:45:37 dbserver1 pg_ctl[88750]: 2023-11-27 23:45:37.799 CST [88750] LOG:  redirecting log output to logging collector process

11月 27 23:45:37 dbserver1 pg_ctl[88750]: 2023-11-27 23:45:37.799 CST [88750] HINT:  Future log output will appear in directory "pg_log".

11月 27 23:45:37 dbserver1 systemd[1]: Started PG16.service - PostgreSQL database server.

7.验证PG

登录PG

[postgres@dbserver1 ~]$ psql -U postgres

psql (16.1)

Type "help" for help.

postgres=#

到此,PG16 源码安装全部执行完。

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

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

相关文章

【Linux】快速上手自动化构建工具make/makefile

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.什么是make / makefile 2…

虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

导读&#xff1a;在基于FPGA的网络设备中&#xff0c;精确的时间同步至关重要。IEEE 1588标准定义的精确时间协议&#xff08;PTP&#xff09;为网络中的设备提供了纳秒级的时间同步。本文将介绍虹科提供的适用于基于FPGA的网络设备的IEEE 1588透明时钟&#xff08;TC&#xff…

Android的启动模式

Android的四种启动模式&#xff1a;standard、singleTop、singleTask和singleInstance。 1.standard Android默认的启动模式是standard&#xff0c;每启动一个Activity&#xff0c;它都会在返回栈中入栈&#xff0c;并处于栈顶&#xff0c;不管这个返回栈是否存在这个activit…

如何查看电脑内存?Windows 和 Mac 方法不同

Windows 系统查看内存方法 在 Windows 操作系统中我们查看电脑内存在哪里查呢&#xff1f;下面总结的 3 种查看电脑内存的方法都可以使用&#xff1a;使用任务管理器&#xff1a;任务管理器是 Windows 中一个强大的工具&#xff0c;可用于监视和管理计算机的性能和资源使用。使…

SpringBoot参数校验@Validated和@Valid的使用

1、Validated和Valid区别 Validated&#xff1a;可以用在类、方法和方法参数上。但是不能用在成员属性&#xff08;字段&#xff09;上Valid&#xff1a;可以用在方法、构造函数、方法参数和成员属性&#xff08;字段&#xff09;上 2、引入依赖 Spring Boot 2.3 1 之前&…

2023年亚太杯数学建模A题水果采摘机器人的图像识别功能(免费思路)

中国是世界上最大的苹果生产国&#xff0c;年产量约为 3500 万吨。同时&#xff0c;中国也是世界上最大的苹果出口国&#xff0c;世界上每两个苹果中就有一个出口到国。世界上每两个苹果中就有一个来自中国&#xff0c;中国出口的苹果占全球出口量的六分之一以上。来自中国。中…

【机器学习】线性模型之逻辑回归

文章目录 逻辑回归Sigmoid 函数概率输出结果预测值与真实标签之间的并不匹配交叉熵逻辑回归模型 梯度下降逻辑回归模型求解编程求解sklearn 实现&#xff0c;并查看拟合指标 逻辑回归 逻辑回归是一种广义线性模型&#xff0c;形式上引入了 S i g m o i d Sigmoid Sigmoid 函数…

(2)(2.2) Lightware SF45/B(350度)

文章目录 前言 1 安装SF45/B 2 连接自动驾驶仪 3 通过地面站进行配置 4 参数说明 前言 Lightware SF45/B 激光雷达(Lightware SF45/B lidar)是一种小型扫描激光雷达&#xff08;重约 50g&#xff09;&#xff0c;扫描度可达 350 度&#xff0c;扫描范围 50m。 1 安装SF45…

python 中文件相对路径 和绝对路径

什么是绝对路径 绝对路径&#xff1a;就是从盘符(c盘、d盘)开始一直到文件所在的具体位置。 例如&#xff1a;xxx.txt 文件的绝对路径为&#xff1a; “C:\Users\xiaoyuzhou\Desktop\file\xxx.txt”相对路径 “相对路径”就是针对“当前文件夹”这一参考对象&#xff0c;来描述…

强化学习-DQN

网上看了很多&#xff0c;但是还是觉得这篇文章讲得最好&#xff1a; 可视化强化学习解释 - Deep Q Networks&#xff0c;循序渐进 |Ketan Doshi 博客 (ketanhdoshi.github.io)

深度学习(三):pytorch搭建卷积神经网络

1.常用函数介绍 0 设备准备 device torch.device("cuda:0" if torch.cuda.is_available() else "cpu")这行代码是用来选择设备的&#xff0c;根据是否有可用的 CUDA 设备来选择使用 GPU 还是 CPU 进行计算。 更详细的解释如下&#xff1a; torch.cuda.…

C语言-指针讲解(4)

在上一篇博客中&#xff1a; C语言-指针讲解(3) 我们给大家介绍了指针进阶的用法 让下面我们来回顾一下讲了什么吧&#xff1a; 1.字符指针变量类型以及用法 2.数组指针本质上是一个指针&#xff0c;里面存放数组的地址。而指针数组本质上是个数组&#xff0c;里面存放的是指针…

IDEA maven无法下载源代码处理

1、使用idea内置maven 在idea中新增一个mvn运行项,截图如下: 输入命令: dependency:resolve -Dclassifiersources 2、如果外部maven&#xff0c;不使用idea内部maven 在工程目录下命令行执行命令: mvn dependency:resolve -Dclassifiersources

智慧城市政务一网统管解决方案:PPT全文34页,附下载

关键词&#xff1a;智慧政务解决方案&#xff0c;智慧城市解决方案&#xff0c;智慧政务一网统管解决方案&#xff0c;一网统管治理理念&#xff0c;一网统管治理体系&#xff0c;一网统管治理手段&#xff0c;智慧政务综合服务平台建设 一、智慧城市政务一网统管建设背景 一…

Python快速实现BMI(身体质量指数)计算器(窗口界面形式)

BMI是身体质量指数&#xff08;Body Mass Index&#xff09;的缩写&#xff0c;是一种衡量人体肥胖程度的指标。它是根据人的身高和体重计算得出的&#xff0c;公式为&#xff1a; BMI 体重&#xff08;kg&#xff09;/ 身高^2&#xff08;m&#xff09; 其中&#xff0c;体…

说说你对slot的理解?slot使用场景有哪些?

面试官&#xff1a;说说你对slot的理解&#xff1f;slot使用场景有哪些&#xff1f; 一、slot是什么 在HTML中 slot 元素 &#xff0c;作为 Web Components 技术套件的一部分&#xff0c;是Web组件内的一个占位符 该占位符可以在后期使用自己的标记语言填充 举个栗子 <t…

centos服务器安装docker和Rabbitmq

centos服务器 一 centos安装docker1 安装docker所需要的依赖包2配置yum源3查看仓库中所有的docker版本4安装docker5 设置docker为开机自启6验证docker是否安装成功 二 使用docker安装RabbitMQ拉取RabbitMQ镜像创建并运行容器 一 centos安装docker 1 安装docker所需要的依赖包 …

借助ETL快速查询金蝶云星空表单信息

随着数字化转型的加速&#xff0c;企业信息化程度越来越高&#xff0c;大量的数据产生并存储在云端&#xff0c;需要进行有效的数据管理和查询。金蝶云星空是金蝶云旗下的一款云ERP产品&#xff0c;为企业提供了完整的业务流程和数据管理功能&#xff0c;因此需要进行有效的数据…

【Linux】I/O多路转接技术

I/O多路转接技术 一、I/O多路转接之select1、select函数2、fd_set的相关内容3、如何在代码中高效的使用select函数4、select服务器5、select的优缺点6、select的适用场景 二、I/O多路转接之poll1、poll函数2、struct pollfd结构2、poll服务器3、poll的优缺点 三、I/O多路转接之…

Nacos 2.X核心架构源码剖析

概述 注册中心并发处理&#xff0c;1.4.x 写时复制&#xff0c;2.1.0 读写分离&#xff1b;nacos 一般使用 AP 架构&#xff0c;即临时实例&#xff0c;1.4.x 为 http 请求&#xff0c;2.1.0 优化为 gRPC 协议&#xff1b;源码中使用了大量的事件通知机制和异步定时线程池&…