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


    〇、解决方案

    升级homebrew,命令如下:

    brew update-reset
    
    • 1

    一、问题现象

    通过命令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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    二、尝试解决

    参考博文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/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!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    查看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)
    
    • 1
    • 2
    • 3

    最终解决
    上述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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    至此,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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    四、登录客户端

    通过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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    通过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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215

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

  • 相关阅读:
    Linux工具——gcc
    【Java】线程池源码解析
    阅读llama源码笔记_1
    uniapp如何根据不同角色自定义不同的tabbar
    webpack的插件webpack-dev-server
    【Linux】进程间通信——共享内存
    国庆加速度!新增功能点锁定功能,敏捷开发新增估算功能,助力项目快速突破!
    Ubuntu 20.04 安装NVIDIA显卡驱动+cuda 11.7+cudnn
    《精通特征工程》学习笔记(5):数据(特征)降维
    44、Flink之module模块介绍及使用示例和Flink SQL使用hive内置函数及自定义函数详细示例--网上有些说法好像是错误的
  • 原文地址:https://blog.csdn.net/shinyolive/article/details/133748077