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

〇、解决方案

升级homebrew,命令如下:

bash 复制代码
brew update-reset

一、问题现象

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

bash 复制代码
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,结果如下:

bash 复制代码
==> 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/brew
   aea140c04..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-cask
   d0ac851913..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-core
   cd5dc44cfa5..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),结果为:

bash 复制代码
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,结果如下:

bash 复制代码
==> 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服务。启动结果如下:

bash 复制代码
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)登录客户端,测试结果:

bash 复制代码
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信息,结果为:

bash 复制代码
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,还是目前最新的稳定版。

相关推荐
sam-12344 分钟前
k8s上部署redis高可用集群
redis·docker·k8s
看山还是山,看水还是。1 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
谷新龙0011 小时前
Redis运行时的10大重要指标
数据库·redis·缓存
精进攻城狮@1 小时前
Redis缓存雪崩、缓存击穿、缓存穿透
数据库·redis·缓存
SoraLuna2 小时前
「Mac玩转仓颉内测版10」PTA刷题篇1 - L1-001 Hello World
算法·macos·cangjie
avenue轩6 小时前
gdb调试redis。sudo
c++·redis
不惑_6 小时前
Redis:发布(pub)与订阅(sub)实战
前端·redis·bootstrap
cui_win7 小时前
Redis高可用-Sentinel(哨兵)
redis·bootstrap·sentinel
_可乐无糖7 小时前
mac终端使用pytest执行iOS UI自动化测试方法
macos·pytest
后端常规开发人员10 小时前
在 Mac 上使用 Docker 安装宝塔并部署 LNMP 环境
macos·docker·容器·宝塔