Mac M1通过homebrew安装Redis报错(perl: unknown or unsupported macOS version: :dunno)

〇、解决方案

升级homebrew,命令如下:

brew update-reset

一、问题现象

通过命令brew install redis安装Redis,异常如下:

fatal: not in a git directory
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-services, skipping update!
Warning: You are using macOS 14.
We do not provide support for this pre-release version.
It is expected behaviour that some formulae will fail to build in this pre-release version.
It is expected behaviour that Homebrew will be buggy and slow.
Do not create any issues about this on Homebrew's GitHub repositories.
Do not create any issues even if you think this message is unrelated.
Any opened issues will be immediately closed without response.
Do not ask for help from MacHomebrew on Twitter.
You may ask for help in Homebrew's discussions but are unlikely to receive a response.
Try to figure out the problem yourself and submit a fix as a pull request.
We will review it but may or may not accept it.==> Downloading https://www.openssl.org/source/openssl-1.1.1s.tar.gz
Already downloaded: /Users/heyday/Library/Caches/Homebrew/downloads/c475ad5547bf6708c42aaf180620e38a33a1798ae3c6a59725b6bf60f52f2249--openssl-1.1.1s.tar.gz
==> Downloading https://download.redis.io/releases/redis-7.0.5.tar.gz
Already downloaded: /Users/heyday/Library/Caches/Homebrew/downloads/1901d254697ab7e72b48bc6e85b1375acbbcfb740ee1eab1358b21ffa211c8ba--redis-7.0.5.tar.gz
==> Installing dependencies for redis: openssl@1.1
==> Installing redis dependency: openssl@1.1
Error: An exception occurred within a child process:FormulaUnreadableError: perl: unknown or unsupported macOS version: :dunno

二、尝试解决

参考博文MAC 升级后brew报错后,运行命令brew update-reset,结果如下:

==> Fetching /opt/homebrew...
remote: Enumerating objects: 27472, done.
remote: Counting objects: 100% (3242/3242), done.
remote: Total 27472 (delta 3242), reused 3242 (delta 3242), pack-reused 24230
Receiving objects: 100% (27472/27472), 10.60 MiB | 13.25 MiB/s, done.
Resolving deltas: 100% (18433/18433), completed with 1014 local objects.
From https://mirrors.ustc.edu.cn/brewaea140c04..e57a87cfe  master     -> origin/master* [new tag]             3.6.14     -> 3.6.14* [new tag]             3.6.15     -> 3.6.15* [new tag]             3.6.16     -> 3.6.16
......
* [new tag]             4.1.7      -> 4.1.7* [new tag]             4.1.8      -> 4.1.8* [new tag]             4.1.9      -> 4.1.9==> Resetting /opt/homebrew...
branch 'master' set up to track 'origin/master'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.==> Fetching /opt/homebrew/Library/Taps/homebrew/homebrew-cask...
remote: Enumerating objects: 113910, done.
remote: Counting objects: 100% (8170/8170), done.
remote: Total 113910 (delta 8170), reused 8170 (delta 8170), pack-reused 105740
Receiving objects: 100% (113910/113910), 57.91 MiB | 22.36 MiB/s, done.
Resolving deltas: 100% (85215/85215), completed with 1709 local objects.
From https://mirrors.ustc.edu.cn/homebrew-caskd0ac851913..3233b1b002  master     -> origin/master==> Resetting /opt/homebrew/Library/Taps/homebrew/homebrew-cask...
branch 'master' set up to track 'origin/master'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.==> Fetching /opt/homebrew/Library/Taps/homebrew/homebrew-core...
remote: Enumerating objects: 330567, done.
remote: Counting objects: 100% (19485/19485), done.
remote: Total 330567 (delta 19485), reused 19485 (delta 19485), pack-reused 311082
Receiving objects: 100% (330567/330567), 148.87 MiB | 4.08 MiB/s, done.
Resolving deltas: 100% (244544/244544), completed with 3769 local objects.
From https://mirrors.ustc.edu.cn/homebrew-corecd5dc44cfa5..f348ed27b41  master     -> origin/master==> Resetting /opt/homebrew/Library/Taps/homebrew/homebrew-core...
branch 'master' set up to track 'origin/master'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-services, skipping update and reset!

查看homebrew版本(brew --version),结果为:

Homebrew 4.1.15
Homebrew/homebrew-core (git revision f348ed27b41; last commit 2023-10-10)
Homebrew/homebrew-cask (git revision 3233b1b002; last commit 2023-10-09)

最终解决
上述brew update-reset升级命令即为该问题的解决办法。homebrew升级完成后,重新运行Redis安装命令brew install redis,结果如下:

==> Downloading https://formulae.brew.sh/api/formula.jws.json
############################################################################################################################################################################## 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
############################################################################################################################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/redis/manifests/7.2.1-1
############################################################################################################################################################################## 100.0%
==> Fetching dependencies for redis: ca-certificates and openssl@3
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2023-08-22
############################################################################################################################################################################## 100.0%
==> Fetching ca-certificates
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:a331e92e7a759571296581f029e5cc2ec7cee70cd92dc0b5f8eb76095f94a21a
############################################################################################################################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.1.3
############################################################################################################################################################################## 100.0%
==> Fetching openssl@3
==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/blobs/sha256:fd6e90e00f1c395feb60d0244eb66583caab494f8e0a0988afaa838511265d98
############################################################################################################################################################################## 100.0%
==> Fetching redis
==> Downloading https://ghcr.io/v2/homebrew/core/redis/blobs/sha256:53943e914be8be83327314d5e23a550f4b6ee31cb4ebebe85e27aa1bce80968a
############################################################################################################################################################################## 100.0%
==> Installing dependencies for redis: ca-certificates and openssl@3
==> Installing redis dependency: ca-certificates
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2023-08-22
Already downloaded: /Users/heyday/Library/Caches/Homebrew/downloads/a8cd32e30cae0b7335779e93a6554f294f09485802fc253a3a8be441337a6115--ca-certificates-2023-08-22.bottle_manifest.json
==> Pouring ca-certificates--2023-08-22.arm64_sonoma.bottle.tar.gz
==> Downloading https://formulae.brew.sh/api/formula.jws.json
-=O=-                                                                      #             #             #             #                                                              
==> Regenerating CA certificate bundle from keychain, this may take a while...
🍺  /opt/homebrew/Cellar/ca-certificates/2023-08-22: 3 files, 221.7KB
==> Installing redis dependency: openssl@3
==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.1.3
Already downloaded: /Users/heyday/Library/Caches/Homebrew/downloads/f038f540886a6a94c000296efb3058dc47e867eef00f0c6836b8ff310bc04daa--openssl@3-3.1.3.bottle_manifest.json
==> Pouring openssl@3--3.1.3.arm64_sonoma.bottle.tar.gz
🍺  /opt/homebrew/Cellar/openssl@3/3.1.3: 6,495 files, 28.4MB
==> Installing redis
==> Pouring redis--7.2.1.arm64_sonoma.bottle.1.tar.gz
==> Caveats
To start redis now and restart at login:brew services start redis
Or, if you don't want/need a background service you can just run:/opt/homebrew/opt/redis/bin/redis-server /opt/homebrew/etc/redis.conf
==> Summary
🍺  /opt/homebrew/Cellar/redis/7.2.1: 14 files, 2.4MB
==> Running `brew cleanup redis`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Removing: /Users/heyday/Library/Caches/Homebrew/redis--7.0.5.tar.gz... (2.8MB)
Removing: /Users/heyday/Library/Caches/Homebrew/redis--7.0.5... (1003.0KB)
==> Caveats
==> redis
To start redis now and restart at login:brew services start redis
Or, if you don't want/need a background service you can just run:/opt/homebrew/opt/redis/bin/redis-server /opt/homebrew/etc/redis.conf

至此,Redis已安装成功!

三、启动服务

接下来就要启动Redis服务,并登录客户端,测试简单实用。
使用redis-server命令启动Redis服务。启动结果如下:

18066:C 10 Oct 2023 16:14:48.320 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18066:C 10 Oct 2023 16:14:48.320 * Redis version=7.2.1, bits=64, commit=00000000, modified=0, pid=18066, just started
18066:C 10 Oct 2023 16:14:48.320 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
18066:M 10 Oct 2023 16:14:48.320 * Increased maximum number of open files to 10032 (it was originally set to 256).
18066:M 10 Oct 2023 16:14:48.320 * monotonic clock: POSIX clock_gettime_._                                                  _.-``__ ''-._                                             _.-``    `.  `_.  ''-._           Redis 7.2.1 (00000000/0) 64 bit.-`` .-```.  ```\/    _.,_ ''-._                                  (    '      ,       .-`  | `,    )     Running in standalone mode|`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379|    `-._   `._    /     _.-'    |     PID: 18066`-._    `-._  `-./  _.-'    _.-'                                   |`-._`-._    `-.__.-'    _.-'_.-'|                                  |    `-._`-._        _.-'_.-'    |           https://redis.io       `-._    `-._`-.__.-'_.-'    _.-'                                   |`-._`-._    `-.__.-'    _.-'_.-'|                                  |    `-._`-._        _.-'_.-'    |                                  `-._    `-._`-.__.-'_.-'    _.-'                                   `-._    `-.__.-'    _.-'                                       `-._        _.-'                                           `-.__.-'                                               18066:M 10 Oct 2023 16:14:48.321 # WARNING: The TCP backlog setting of 511 cannot be enforced because kern.ipc.somaxconn is set to the lower value of 128.
18066:M 10 Oct 2023 16:14:48.322 * Server initialized
18066:M 10 Oct 2023 16:14:48.322 * Ready to accept connections tcp

四、登录客户端

通过redis-cli -p 6379(或redis-cli)登录客户端,测试结果:

127.0.0.1:6379> hset office id 16 name finance
(integer) 2
127.0.0.1:6379> hget office
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hget office id
"16"
127.0.0.1:6379> hget office name
"finance"
127.0.0.1:6379> set a 'bbb'
OK
127.0.0.1:6379> get a
"bbb"

通过info命令查看Redis信息,结果为:

127.0.0.1:6379> info
# Server
redis_version:7.2.1
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:7b8617dd94058f85
redis_mode:standalone
os:Darwin 23.0.0 arm64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:select
atomicvar_api:c11-builtin
gcc_version:4.2.1
process_id:18066
process_supervised:no
run_id:ebee4f34c6d4a9765df9b2af8076613a363a4b4e
tcp_port:6379
server_time_usec:1696927718666614
uptime_in_seconds:2030
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:2428902
executable:/opt/homebrew/opt/redis-server
config_file:
io_threads_active:0
listener0:name=tcp,bind=*,bind=-::*,port=6379# Clients
connected_clients:1
cluster_connections:0
maxclients:10000
client_recent_max_input_buffer:16
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0
total_blocking_keys:0
total_blocking_keys_on_nokey:0# Memory
used_memory:914816
used_memory_human:893.38K
used_memory_rss:7110656
used_memory_rss_human:6.78M
used_memory_peak:1130576
used_memory_peak_human:1.08M
used_memory_peak_perc:80.92%
used_memory_overhead:771176
used_memory_startup:769024
used_memory_dataset:143640
used_memory_dataset_perc:98.52%
allocator_allocated:895120
allocator_active:7078912
allocator_resident:7078912
total_system_memory:68719476736
total_system_memory_human:64.00G
used_memory_lua:31744
used_memory_vm_eval:31744
used_memory_lua_human:31.00K
used_memory_scripts_eval:0
number_of_cached_scripts:0
number_of_functions:0
number_of_libraries:0
used_memory_vm_functions:32768
used_memory_vm_total:64512
used_memory_vm_total_human:63.00K
used_memory_functions:216
used_memory_scripts:216
used_memory_scripts_human:216B
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:7.91
allocator_frag_bytes:6183792
allocator_rss_ratio:1.00
allocator_rss_bytes:0
rss_overhead_ratio:1.00
rss_overhead_bytes:31744
mem_fragmentation_ratio:7.94
mem_fragmentation_bytes:6215536
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_total_replication_buffers:0
mem_clients_slaves:0
mem_clients_normal:1824
mem_cluster_links:0
mem_aof_buffer:0
mem_allocator:libc
active_defrag_running:0
lazyfree_pending_objects:0
lazyfreed_objects:0# Persistence
loading:0
async_loading:0
current_cow_peak:0
current_cow_size:0
current_cow_size_age:0
current_fork_perc:0.00
current_save_keys_processed:0
current_save_keys_total:0
rdb_changes_since_last_save:3
rdb_bgsave_in_progress:0
rdb_last_save_time:1696925688
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_saves:0
rdb_last_cow_size:0
rdb_last_load_keys_expired:0
rdb_last_load_keys_loaded:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_rewrites:0
aof_rewrites_consecutive_failures:0
aof_last_write_status:ok
aof_last_cow_size:0
module_fork_in_progress:0
module_fork_last_cow_size:0# Stats
total_connections_received:2
total_commands_processed:11
instantaneous_ops_per_sec:0
total_net_input_bytes:527
total_net_output_bytes:409203
total_net_repl_input_bytes:0
total_net_repl_output_bytes:0
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
instantaneous_input_repl_kbps:0.00
instantaneous_output_repl_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:62
evicted_keys:0
evicted_clients:0
total_eviction_exceeded_time:0
current_eviction_exceeded_time:0
keyspace_hits:6
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
pubsubshard_channels:0
latest_fork_usec:0
total_forks:0
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0
total_active_defrag_time:0
current_active_defrag_time:0
tracking_total_keys:0
tracking_total_items:0
tracking_total_prefixes:0
unexpected_error_replies:0
total_error_replies:5
dump_payload_sanitizations:0
total_reads_processed:17
total_writes_processed:21
io_threaded_reads_processed:0
io_threaded_writes_processed:0
reply_buffer_shrinks:2
reply_buffer_expands:0
eventloop_cycles:19625
eventloop_duration_sum:2617787
eventloop_duration_cmd_sum:2100
instantaneous_eventloop_cycles_per_sec:9
instantaneous_eventloop_duration_usec:292
acl_access_denied_auth:0
acl_access_denied_cmd:0
acl_access_denied_key:0
acl_access_denied_channel:0# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:ab7606e5334f65e93b29c63f072666c60ab8186b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0# CPU
used_cpu_sys:2.177440
used_cpu_user:0.937600
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000# Modules# Errorstats
errorstat_ERR:count=5# Cluster
cluster_enabled:0# Keyspace
db0:keys=2,expires=0,avg_ttl=0

可见,版本是7.2.1,还是目前最新的稳定版。

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

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

相关文章

【OCR】合同上批量贴印章

一、需求 OCR算法在处理合同等文件时,会由于印章等遮挡导致文本误识别。因此在OCR预处理时,有一个很重要的步骤是“去除印章”。其中本文主要聚焦在“去除印章”任务中的数据构建步骤:“合同伪印章”的数据构建。下面直接放几张批量合成后效果…

Godot 添加信号

前言 Godot 里面C#和GDScirpt 的用法完全不一样,网上相关资料太少了。 什么是信号 信号分为信号源,触发,目的节点。信号源在某些条件下触发信号,比如按钮点击,鼠标悬停等事件 #mermaid-svg-wyr9ARVcBFmUUu8y {font-…

C++ shared_ptr类型转换的实现原理与type traits类型萃取

思考下面这个问题&#xff1a; #include <memory> #include <iostream> using namespace std;class A{ public:int data; };class B : public A{ };template <typename _Ty> class TypeCast{ };int main() {shared_ptr<B> b make_shared<B>();…

做了个 chrome 插件实现 B 站视频截图功能,直接从当前视频帧无损复制

起因是看 B 站视频想截个图很麻烦&#xff0c;右下角暂停按钮无法去除&#xff0c;于是写了一行代码把暂停按钮隐藏。 后经提醒&#xff0c;发现可以通过 canvas 获取视频帧来截取图片&#xff0c;于是写了如下代码完美获取视频帧。 var v document.querySelector(".bpx…

从Django模型创建复合索引

目录 什么是复合索引&#xff1f;在Django中创建复合索引示例说明 什么是复合索引&#xff1f; 复合索引是由多个列组成的索引&#xff0c;在数据库中使用多个列的值作为索引键。相比于单个列的索引&#xff0c;复合索引可以更加精确地过滤数据并提高查询的速度。 通过创建复…

【window10】Dart+Android Studio+Flutter安装及运行

安装Dart SDK安装Android Studio安装Flutter在Android Studio中创建并运行Flutter项目 安装前&#xff0c;请配置好你的jdk环境&#xff0c;准备好你的梯子~ 安装Dart SDK 浅浅了解一下Dart&#xff1a; Dart 诞生于2011年&#xff0c;是由谷歌开发的一种强类型、跨平台的客户…

【java学习】对象的产生(18)

文章目录 1. 初始化赋值2. 匿名对象3. 练习3.1. 习题一3.2. 习题二 4. 总结 1. 初始化赋值 当一个对象被创建时&#xff0c;会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型&#xff0c;如上节的 Person 和前面讲过的数组。 成员…

提取Android盒子dtb文件

概述 最近从某鱼上掏了一个CM201-1 YS的盒子&#xff0c;动手倒腾倒腾&#xff0c;准备安装Armbian&#xff0c;用来做矿机&#xff0c;但该型号的盒子ophub上面没有完全适配的镜像&#xff0c;故而想尝试下&#xff0c;看能否整个适配镜像出来。 操作系统 Windows Linux 工…

【MediaSoup---源码篇】(五)接收RTP数据的处理

通过前面的文章我们可以了解到&#xff0c;当创建好Transport的时候&#xff0c;socket已经建立好。具备了相应的网络传输能力。我们来看一下socket接收到数据是如何处理的。 UdpSocketHandler::OnUvRecv Socket接收数据 inline void UdpSocketHandler::OnUvRecv(ssize_t nr…

TDengine时序数据库学习使用

数据库要求&#xff1a; 1.目前服务器只能在linux运行&#xff0c;先安装服务器版本v1 2.下载与v1完全匹配的客户端版本v1&#xff08;客户端与服务器的版本号不匹配可能访问不了服务器&#xff09; 第一步 安装 安装服务器注意&#xff0c;安装教程&#xff1a; 使用安装…

Linux中scp命令复制文件

scp命令是在Linux中用于在本地主机和远程主机之间进行安全传输文件的命令。下面是使用scp命令的语法&#xff1a; scp [参数] [来源路径] [目标路径]参数&#xff1a; -r&#xff1a;递归复制整个目录。-P&#xff1a;指定远程主机的端口。-p&#xff1a;保留原文件的修改时间…

(蓝宝书)网络安全——CTF那些事儿

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

CocosCreator 面试题(七)优化cocos creator 包体体积

优化 Cocos Creator 包体体积是一个重要的任务&#xff0c;可以通过以下几个方面进行优化&#xff1a; 图片文件体积优化&#xff1a; 压缩图片&#xff1a;使用工具如 TinyPNG、ImageOptim 等对图片进行压缩&#xff0c;减小文件大小而保持可接受的质量。图片格式选择&#…

WPF 控件分辨率自适应问题

WPF 控件分辨率自适应时&#xff0c;我首先想到的是使用ViewBox控件来做分辨率自适应。 ViewBox这个控件通常和其他控件结合起来使用&#xff0c;是WPF中非常有用的控件。定义一个内容容器。ViewBox组件的作用是拉伸或延展位于其中的组件&#xff0c;以填满可用空间&#xff0…

深度学习问答题(更新中)

1. 各个激活函数的优缺点&#xff1f; 2. 为什么ReLU常用于神经网络的激活函数&#xff1f; 在前向传播和反向传播过程中&#xff0c;ReLU相比于Sigmoid等激活函数计算量小&#xff1b;避免梯度消失问题。对于深层网络&#xff0c;Sigmoid函数反向传播时&#xff0c;很容易就…

mp4音视频分离技术

文章目录 问题描述一、分离MP3二、分离无声音的MP4三、结果 问题描述 MP4视频想拆分成一个MP3音频和一个无声音的MP4文件 一、分离MP3 ffmpeg -i C:\Users\Administrator\Desktop\一个文件夹\我在财神殿里长跪不起_完整版MV.mp4 -vn C:\Users\Administrator\Desktop\一个文件…

分布式数据库HBase(林子雨慕课课程)

文章目录 4. 分布式数据库HBase4.1 HBase简介4.2 HBase数据模型4.3 HBase的实现原理4.4 HBase运行机制4.5 HBase的应用方案4.6 HBase安装和编程实战 4. 分布式数据库HBase 4.1 HBase简介 HBase是BigTable的开源实现 对于网页搜索主要分为两个阶段 1.建立整个网页索引&#xf…

如何在 Android 中完成一个 APT 项目的开发?

前言 APT(Annotation Processing Tool)即注解处理器&#xff0c;是一种处理注解的工具。 APT在编译时期扫描处理源代码中的注解&#xff0c;开发中可以根据注解&#xff0c;利用APT自动生成Java代码&#xff0c;减少冗余的代码和手动的代码输入过程&#xff0c;提升了编码效率…

pytest + yaml 框架 -55. raw 不转义模板语法

前言 在yaml 文件中&#xff0c;设置的引用变量语法是${var}, 最近有小伙伴提到一个需求&#xff1a;请求参数的内容需要有特殊符号${var}, 希望不被转义&#xff0c;不要引用变量&#xff0c;直接用原始数据即可。 raw 忽略模板语法 Jinja2提供了 “raw” 语句来忽略所有模…

Gralloc ION DMABUF in Camera Display

目录 Background knowledge Introduction ia pa va and memory addressing Memory Addressing Page Frame Management Memory area management DMA IOVA and IOMMU Introduce DMABUF What is DMABUF DMABUF 关键概念 DMABUF APIS –The Exporter DMABUF APIS –The…