Tôi đang cố gắng cài đặt một số phần mềm bằng homebrew và khi tải xuống và cố gắng cài đặt một trong các phần phụ thuộc, gói sẽ không cài đặt vì không khớp MD5.
Có thể lấy homebrew để bỏ qua hàm băm MD5 của tệp và tiếp tục cài đặt không?
Tôi đang cố gắng cài đặt một số phần mềm bằng homebrew và khi tải xuống và cố gắng cài đặt một trong các phần phụ thuộc, gói sẽ không cài đặt vì không khớp MD5.
Có thể lấy homebrew để bỏ qua hàm băm MD5 của tệp và tiếp tục cài đặt không?
Câu trả lời:
Như một bình luận để lại trên OP của bạn đã đề cập: Tôi lo ngại rằng tổng MD5 không khớp. Điều đó có thể có nghĩa là tarball bạn đang tải xuống bị hỏng, trong trường hợp thực hiện các thao tác trên để ghi đè trận đấu sẽ thực sự gây rắc rối cho bạn vì bạn sẽ cài đặt các công cụ bị hỏng. Hoặc có thể là tarball bạn đang tải xuống không đáng tin cậy, rằng bạn đang được cung cấp thứ gì đó không hợp pháp và chứa các thói quen có hại. Tôi chắc chắn rằng kho lưu trữ homebrew của bạn được cập nhật với:
brew update
Nếu thực sự nó được cập nhật, bạn có thể thử:
brew install --force <package>
để buộc cài đặt. Tùy chọn đó thường chỉ buộc cài đặt lại gói đã cài đặt cùng phiên bản nhưng có thể bỏ qua lỗi MD5. Tôi đã chọc qua thói quen cài đặt trong homebrew
nhưng không rõ điều này sẽ hoạt động.
Trường hợp tệ hơn: bạn chỉ có thể tải xuống tarball cho công thức, tính toán MD5 cho nó bằng tay và sau đó cập nhật tệp Công thức với giá trị MD5 thích hợp để vượt qua kiểm tra. Ví dụ: nếu bạn gặp sự cố khi cài đặt dos2unix, bạn sẽ tìm thấy tệp công thức /usr/local/Library/Formula/dos2unix.rb
. Ở đầu tệp là tarball và tổng MD5 cho nó:
> more dos2unix.rb
require 'formula'
class Dos2unix < Formula
url 'http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz'
md5 '438c48ebd6891b80b58de14c022ca69e'
homepage 'http://waterlan.home.xs4all.nl/dos2unix.html'
Nếu kiểm tra MD5 không thành công, hãy tải xuống tarball:
> wget http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz
--2012-03-17 18:07:07-- http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz
Resolving waterlan.home.xs4all.nl... 194.109.6.92, 2001:888:0:18::80
Connecting to waterlan.home.xs4all.nl|194.109.6.92|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 54967 (54K) [application/x-gzip]
Saving to: `dos2unix-5.3.1.tar.gz'
100%[==============================================================================================================>] 54,967 84.8K/s in 0.6s
2012-03-17 18:07:09 (84.8 KB/s) - `dos2unix-5.3.1.tar.gz' saved [54967/54967]
Tự tính toán tổng kiểm tra MD5 cho tệp:
> md5 dos2unix-5.3.1.tar.gz
MD5 (dos2unix-5.3.1.tar.gz) = 438c48ebd6891b80b58de14c022ca69e
Và sau đó nhập giá trị bạn đã tính vào tệp công thức cho gói và chạy lại lệnh cài đặt cho gói.
Tôi đã gặp vấn đề tương tự chỉ vài phút trước với một công thức tôi đang cố gắng cài đặt. Tôi đã thử chạy cài đặt với cờ --force tuy nhiên điều đó không ghi đè kiểm tra MD5 (điều này có nghĩa là TBH).
Theo lời khuyên của Ian C. trong câu trả lời của anh ấy, tôi đã tiếp tục và chạy 'cập nhật bia'. Sau khi hoàn thành, tôi có thể chạy cài đặt cho công thức mà tôi đã cố cài đặt và nó hoạt động hoàn hảo / không còn sự không phù hợp MD5 nữa.
Đây là một liên kết đến một vấn đề trong repo Homebrew (cái này liên quan đến omerack, đó là những gì tôi đã cố gắng cài đặt khi tôi gặp phải vấn đề này) về cơ bản chỉ xác nhận rằng việc chạy 'ủ cập nhật' sẽ khắc phục vấn đề của bạn.
https://github.com/mxcl/homebrew/issues/11242
Nếu chạy 'ủ cập nhật' không khắc phục được sự cố thì:
Trong trường hợp của A, bạn có thể tự cập nhật công thức như Ian C. đã mô tả - bạn chắc chắn cũng được khuyến khích gửi yêu cầu kéo để được cập nhật trong repo ngược dòng để mọi người cũng được hưởng lợi!
Trong trường hợp của B, công thức có thể tham chiếu một URL cũ hoặc tải xuống có thể bị hỏng hoặc tham chiếu tệp sai, v.v. - trong trường hợp này, bạn có thể sẽ phải thực hiện một số nghiên cứu và tiếp tục từ đó bằng cách liên hệ với chủ dự án hoặc tương tự.