Homebrew cài đặt phiên bản cụ thể của công thức?

2299
Gravis 2010-10-22 02:58.

Làm cách nào để cài đặt một phiên bản cụ thể của công thức trong homebrew? Ví dụ: postgresql-8.4.4 thay vì 9.0 mới nhất.

27 answers

2654
Debilski 2010-11-12 10:04.

TLDR: brew install [email protected] Xem câu trả lời bên dưới để biết thêm chi tiết.


* ( Tôi đã chỉnh sửa lại câu trả lời của mình để cung cấp quy trình làm việc kỹ lưỡng hơn cho việc cài đặt / sử dụng các phiên bản phần mềm cũ hơn với homebrew. Vui lòng thêm ghi chú nếu bạn thấy phiên bản cũ tốt hơn. )

Hãy bắt đầu với trường hợp đơn giản nhất:

1) Kiểm tra xem phiên bản đã được cài đặt chưa (nhưng chưa được kích hoạt)

Khi homebrew cài đặt một công thức mới, nó sẽ đặt nó vào một thư mục được tạo phiên bản như /usr/local/Cellar/postgresql/9.3.1. Chỉ các liên kết tượng trưng đến thư mục này mới được cài đặt trên toàn cầu. Về nguyên tắc, điều này giúp bạn dễ dàng chuyển đổi giữa hai phiên bản đã cài đặt. (*)

Nếu bạn đã sử dụng homebrew lâu hơn và chưa bao giờ xóa các phiên bản cũ hơn (ví dụ: đang sử dụng brew cleanup), rất có thể một số phiên bản cũ hơn của chương trình của bạn vẫn còn tồn tại. Nếu bạn chỉ muốn kích hoạt phiên bản trước đó, brew switchlà cách dễ nhất để thực hiện việc này.

Kiểm tra brew info postgresql(hoặc brew switch postgresql <TAB>) xem phiên bản cũ hơn đã được cài đặt chưa:

$ brew info postgresql
postgresql: stable 9.3.2 (bottled)
http://www.postgresql.org/
Conflicts with: postgres-xc
/usr/local/Cellar/postgresql/9.1.5 (2755 files, 37M)
  Built from source
/usr/local/Cellar/postgresql/9.3.2 (2924 files, 39M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb
# … and some more

Chúng tôi thấy rằng một số phiên bản cũ hơn đã được cài đặt. Chúng tôi có thể kích hoạt nó bằng cách sử dụng brew switch:

$ brew switch postgresql 9.1.5
Cleaning /usr/local/Cellar/postgresql/9.1.5
Cleaning /usr/local/Cellar/postgresql/9.3.2
384 links created for /usr/local/Cellar/postgresql/9.1.5

Hãy kiểm tra kỹ những gì được kích hoạt:

$ brew info postgresql
postgresql: stable 9.3.2 (bottled)
http://www.postgresql.org/
Conflicts with: postgres-xc
/usr/local/Cellar/postgresql/9.1.5 (2755 files, 37M) *
  Built from source
/usr/local/Cellar/postgresql/9.3.2 (2924 files, 39M)
  Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb
# … and some more

Lưu ý rằng ngôi sao *đã chuyển sang phiên bản mới được kích hoạt

(*) Xin lưu ý rằng brew switchchỉ hoạt động miễn là tất cả các phụ thuộc của phiên bản cũ hơn vẫn còn. Trong một số trường hợp, việc xây dựng lại phiên bản cũ hơn có thể trở nên cần thiết. Do đó, việc sử dụng brew switchphần lớn hữu ích khi người ta muốn chuyển đổi giữa hai phiên bản không quá xa nhau.

2) Kiểm tra xem phiên bản có sẵn dưới dạng nhấn không

Đặc biệt đối với các dự án phần mềm lớn hơn, rất có thể có nhu cầu đủ cao đối với một số phiên bản chính (có khả năng không tương thích với API) của một phần mềm nhất định. Kể từ tháng 3 năm 2012, Homebrew 0.9 cung cấp một cơ chế cho việc này: brew tap& kho lưu trữ các phiên bản homebrew .

Kho lưu trữ phiên bản đó có thể bao gồm các cổng lùi của các phiên bản cũ hơn cho một số công thức. (Chủ yếu là chỉ những cái lớn và nổi tiếng, nhưng tất nhiên chúng cũng sẽ có một số công thức cho postgresql.)

brew search postgresql sẽ chỉ cho bạn nơi để xem:

$ brew search postgresql
postgresql
homebrew/versions/postgresql8    homebrew/versions/postgresql91
homebrew/versions/postgresql9    homebrew/versions/postgresql92

Chúng tôi chỉ cần cài đặt nó bằng cách gõ

$ brew install homebrew/versions/postgresql8
Cloning into '/usr/local/Library/Taps/homebrew-versions'...
remote: Counting objects: 1563, done.
remote: Compressing objects: 100% (943/943), done.
remote: Total 1563 (delta 864), reused 1272 (delta 620)
Receiving objects: 100% (1563/1563), 422.83 KiB | 339.00 KiB/s, done.
Resolving deltas: 100% (864/864), done.
Checking connectivity... done.
Tapped 125 formula
==> Downloading http://ftp.postgresql.org/pub/source/v8.4.19/postgresql-8.4.19.tar.bz2
# …

Lưu ý rằng điều này đã tự động khai thác các homebrew/versionsvòi. (Kiểm tra với brew tap, loại bỏ với brew untap homebrew/versions.) Sau đây sẽ tương đương:

$ brew tap homebrew/versions
$ brew install postgresql8

Miễn là các công thức phiên bản backported luôn được cập nhật, thì cách tiếp cận này có lẽ là cách tốt nhất để đối phó với phần mềm cũ hơn.

3) Thử một số công thức từ quá khứ

Các cách tiếp cận sau đây được liệt kê hầu hết cho sự đầy đủ. Cả hai đều cố gắng phục hồi một số công thức undead từ kho lưu trữ bia. Do sự phụ thuộc đã thay đổi, API thay đổi trong đặc tả công thức hoặc đơn giản là thay đổi trong URL tải xuống, mọi thứ có thể hoạt động hoặc không.

Vì toàn bộ thư mục công thức là một kho lưu trữ git, người ta có thể cài đặt các phiên bản cụ thể bằng cách sử dụng các lệnh git thuần túy. Tuy nhiên, chúng ta cần phải tìm cách để đạt được cam kết mà phiên bản cũ đã có sẵn.

a) thời lịch sử

Từ tháng 8 năm 2011 đến tháng 10 năm 2014 , homebrew có một brew versionslệnh, lệnh này đưa ra tất cả các phiên bản có sẵn với hàm băm SHA tương ứng của chúng. Kể từ tháng 10 năm 2014, bạn phải thực hiện brew tap homebrew/boneyardtrước khi có thể sử dụng nó. Như tên của vòi gợi ý, có lẽ bạn chỉ nên làm điều này như một phương sách cuối cùng.

Ví dụ

$ brew versions postgresql
Warning: brew-versions is unsupported and may be removed soon.
Please use the homebrew-versions tap instead:
  https://github.com/Homebrew/homebrew-versions
9.3.2    git checkout 3c86d2b Library/Formula/postgresql.rb
9.3.1    git checkout a267a3e Library/Formula/postgresql.rb
9.3.0    git checkout ae59e09 Library/Formula/postgresql.rb
9.2.4    git checkout e3ac215 Library/Formula/postgresql.rb
9.2.3    git checkout c80b37c Library/Formula/postgresql.rb
9.2.2    git checkout 9076baa Library/Formula/postgresql.rb
9.2.1    git checkout 5825f62 Library/Formula/postgresql.rb
9.2.0    git checkout 2f6cbc6 Library/Formula/postgresql.rb
9.1.5    git checkout 6b8d25f Library/Formula/postgresql.rb
9.1.4    git checkout c40c7bf Library/Formula/postgresql.rb
9.1.3    git checkout 05c7954 Library/Formula/postgresql.rb
9.1.2    git checkout dfcc838 Library/Formula/postgresql.rb
9.1.1    git checkout 4ef8fb0 Library/Formula/postgresql.rb
9.0.4    git checkout 2accac4 Library/Formula/postgresql.rb
9.0.3    git checkout b782d9d Library/Formula/postgresql.rb

Như bạn có thể thấy, nó khuyên không nên sử dụng nó. Homebrew đưa ra tất cả các phiên bản mà nó có thể tìm thấy với kinh nghiệm nội bộ của nó và chỉ cho bạn một cách để lấy lại các công thức cũ. Hãy thử nó.

# First, go to the homebrew base directory
$ cd $( brew --prefix )
# Checkout some old formula
$ git checkout 6b8d25f Library/Formula/postgresql.rb $ brew install postgresql
# … installing

Bây giờ phiên bản postgresql cũ hơn đã được cài đặt, chúng tôi có thể cài đặt lại công thức mới nhất để giữ cho kho lưu trữ của chúng tôi sạch sẽ:

$ git checkout -- Library/Formula/postgresql.rb

brew switch là người bạn để bạn thay đổi giữa cái cũ và cái mới.

b) thời tiền sử

Đối với những nhu cầu đặc biệt, chúng tôi cũng có thể thử tự tìm hiểu thông qua repo homebrew.

$ cd Library/Taps/homebrew/homebrew-core && git log -S'8.4.4' -- Formula/postgresql.rb

git log -Stìm kiếm tất cả các cam kết trong đó chuỗi '8.4.4'đã được thêm vào hoặc bị xóa trong tệp Library/Taps/homebrew/homebrew-core/Formula/postgresql.rb. Kết quả là chúng tôi nhận được hai cam kết.

commit 7dc7ccef9e1ab7d2fc351d7935c96a0e0b031552
Author: Aku Kotkavuo
Date:   Sun Sep 19 18:03:41 2010 +0300

    Update PostgreSQL to 9.0.0.

    Signed-off-by: Adam Vandenberg

commit fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
Author: David Höppner
Date:   Sun May 16 12:35:18 2010 +0200

    postgresql: update version to 8.4.4

Rõ ràng fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422là cam kết mà chúng tôi quan tâm. Vì cam kết này đã khá cũ, chúng tôi sẽ cố gắng hạ cấp cài đặt homebrew hoàn chỉnh (theo cách đó, API công thức ít nhiều được đảm bảo là hợp lệ):

$ git checkout -b postgresql-8.4.4 fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422 $ brew install postgresql
$ git checkout master $ git branch -d postgresql-8.4.4

Bạn có thể bỏ qua lệnh cuối cùng để giữ tham chiếu trong kho lưu trữ git của mình.

Một lưu ý: Khi kiểm tra bản cam kết cũ hơn, bạn tạm thời hạ cấp cài đặt homebrew của mình. Vì vậy, bạn nên cẩn thận vì một số lệnh trong homebrew có thể khác với phiên bản gần đây nhất.

4) Viết công thức theo cách thủ công

Nó không quá khó và sau đó bạn có thể tải nó lên kho lưu trữ của riêng mình. Từng là Homebrew-phiên bản , nhưng mà bây giờ ngưng.

A.) Phần thưởng: Ghim

Nếu bạn muốn giữ một phiên bản nhất định, chẳng hạn như postgresql, và ngăn nó cập nhật khi bạn thực hiện brew update; brew upgradequy trình tự nhiên , bạn có thể ghim một công thức:

$ brew pin postgresql

Các công thức đã ghim được liệt kê trong danh sách /usr/local/Library/PinnedKegs/và khi bạn muốn thực hiện các thay đổi và cập nhật mới nhất, bạn có thể bỏ ghim lại:

$ brew unpin postgresql
786
Bijan 2012-03-23 13:29.

Quy trình làm việc đơn giản

Giờ đây, các phiên bản Homebrew / đã không còn được dùng nữa, Homebrew / core hỗ trợ một số phiên bản công thức với định dạng đặt tên mới.

Để cài đặt một phiên bản cụ thể, ví dụ: postgresql 9.5, bạn chỉ cần chạy:

$ brew install [email protected]

Để liệt kê các phiên bản có sẵn, hãy chạy tìm kiếm với @:

$ brew search [email protected]
==> Searching local taps...
[email protected][email protected]        [email protected]        [email protected]
460
Trevor Burnham 2011-12-15 06:33.

Bây giờ có một cách dễ dàng hơn nhiều để cài đặt phiên bản cũ hơn của công thức mà bạn đã cài đặt trước đó. Đơn giản chỉ cần sử dụng

brew switch [formula] [version]

Ví dụ: tôi luân phiên thường xuyên giữa Node.js 0.4.12 và 0.6.5:

brew switch node 0.4.12
brew switch node 0.6.5

brew switchchỉ cần thay đổi các liên kết tượng trưng, ​​nó rất nhanh. Xem thêm tài liệu trên Homebrew Wiki bên dưới Lệnh bên ngoài .

256
Vishal 2013-07-20 13:42.

Cập nhật: 1/15/2015

  • Tìm lịch sử cam kết của phần mềm và phiên bản mong muốn. ví dụ: tôi cần chuyển từ phiên bản docker 1.4.1 sang 1.3.3:https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Xem tệp bằng nút này:
  • Nhấp vào nút Raw:
  • Sao chép URL (url docker.rb trong ví dụ này) từ thanh địa chỉ
  • brew install <url>(có thể phải brew unlinktrước, ví dụ brew unlink docker)
  • brew switch docker 1.3.3
  • Chuyển về docker 1.4.1 brew switch docker 1.4.1

Từ ý chính này

brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb  # use output of "brew versions"
brew install FORMULA
brew switch FORMULA VERSION
git checkout -- Library/Formula/FORMULA.rb    # reset formula

## Example: Using Subversion 1.6.17
#
# $ brew versions subversion # 1.7.3 git checkout f8bf2f3 /usr/local/Library/Formula/subversion.rb # 1.7.2 git checkout d89bf83 /usr/local/Library/Formula/subversion.rb # 1.6.17 git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb # 1.6.16 git checkout 83ed494 /usr/local/Library/Formula/subversion.rb # 1.6.15 git checkout 809a18a /usr/local/Library/Formula/subversion.rb # 1.6.13 git checkout 7871a99 /usr/local/Library/Formula/subversion.rb # 1.6.12 git checkout c99b3ac /usr/local/Library/Formula/subversion.rb # 1.6.6 git checkout 8774131 /usr/local/Library/Formula/subversion.rb # 1.6.5 git checkout a82e823 /usr/local/Library/Formula/subversion.rb # 1.6.3 git checkout 6b6d369 /usr/local/Library/Formula/subversion.rb # $ cd `brew --prefix`
# $ git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb # $ brew install subversion
# $ brew switch subversion 1.6.17 # $ git checkout -- Library/Formula/subversion.rb
134
Lance Pollard 2011-10-17 12:12.

Theo gợi ý của @ halfcube, điều này thực sự hoạt động tốt:

  1. Tìm thư viện bạn đang tìm https://github.com/Homebrew/homebrew-core/tree/master/Formula
  2. Nhấp vào nó: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Nhấp vào nút "lịch sử" để xem các cam kết cũ: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. Nhấp vào một trong những bạn muốn: "postgresql: cập nhật phiên bản lên 8.4.4", https://github.com/Homebrew/homebrew-core/blob/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  5. Nhấp vào liên kết "thô": https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  6. brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
111
kylewelsby 2011-09-20 01:55.

Tôi đã phát hiện ra một giải pháp thay thế tốt hơn các giải pháp phức tạp khác.

brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb

Điều này sẽ tải xuống và cài đặt PostgreSQL 8.4.8


Tôi đã tìm thấy giải pháp này bằng cách bắt đầu làm theo các bước tìm kiếm repo và nhận xét trong repo.

Sau một cuộc nghiên cứu nhỏ, phát hiện ra rằng ai đó có một bộ sưu tập các công thức hiếm để pha chế.


Nếu bạn đang tìm kiếm MySQL 5.1.x, hãy thử cái này.

brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb
80
sealocal 2016-02-24 19:38.

Bạn có thể sử dụng chiến lược xác định công thức và một cam kết cụ thể trong lịch sử của công thức phù hợp với phiên bản gói bạn muốn cài đặt.

  1. Đi đến https://github.com/Homebrew/homebrew-core

  2. Nhấn ttrên bàn phím của bạn để kích hoạt công cụ tìm tệp.

  3. Xác định một công thức có vẻ phù hợp nhất, có lẽ Formula/mysql.rb:, đưa bạn đến vị trí tệp forumla:https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb.

  4. Xem lịch sử sửa đổi bằng cách nhấp vào Historynút, nằm ởhttps://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb. Nếu bạn quan tâm đến MySQL 5.7.10, bạn có thể muốn nhấp vào bản sửa đổi mới nhất trước 5.7.11, điều hướng đến cam kết GitHub:

    https://github.com/Homebrew/homebrew-core/commit/c77882756a832ac1d87e7396c114158e5619016c#Formula/mysql.rb

LƯU Ý: Bạn có thể phải xem lịch sử cam kết trong bảng điều khiển của mình theo đề xuất của GitHub nếu lịch sử cam kết không tải trong trình duyệt của bạn. Thay thế SHA cam kết ở trên trong URL nếu bạn muốn thấy cam kết đó trên GitHub. Ngoài ra, bỏ qua bước 7 bên dưới.

  1. Nhấp vào nút "Xem" để xem nguồn cho tệp mysql.rb sau khi áp dụng cam kết.

  2. Sau đó nhấp vào nút "Raw" để xem nguồn thô.

  3. Sao chép URL. Ngoài ra, hãy tự tạo URL với mysql.rbtên tệp để xác định công thức của bạn và phiên bản cụ thể của công thức đó (được xác định bằng SHA dấu phẩy trong URL bên dưới).

    https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb

  4. Cài đặt nó với $ brew install [URL from step 7]

    $ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
    

LƯU Ý: Câu trả lời này đã được cập nhật để giải thích cho việc xóa trang web braumeister.org. Nguyên tắc tương tự cũng được áp dụng, braumeister chỉ đơn giản là cung cấp một cách thân thiện với người mới bắt đầu để điều hướng các phiên bản công thức.

49
Konrad Rudolph 2018-12-14 06:18.

Hầu hết các câu trả lời khác hiện đã lỗi thời. Thật không may Homebrew vẫn không có một cách xây dựng trong cài đặt một phiên bản cũ, trừ khi phiên bản đó tồn tại như một công thức riêng biệt (ví dụ [email protected], [email protected] ...).

May mắn thay, đối với các công thức khác, có một cách dễ dàng hơn nhiều so với mớ hỗn độn phức tạp đã từng là cần thiết. Dưới đây là hướng dẫn đầy đủ:

  1. Tìm kiếm phiên bản chính xác trong nhật ký:

    brew log formula
    # Scroll down/up with j/k or the arrow keys
    # or use eg. /4\.4\.23 to search a specific version
    
    # This syntax only works on pre-2.0 Homebrew versions
    brew log --format=format:%H\ %s -F --grep=‹version› ‹formula›
    

    Điều này sẽ hiển thị một danh sách các băm cam kết. Lấy một cái thích hợp (chủ yếu là nó phải khá rõ ràng, và thường là cái gần đây nhất (tức là hàng đầu).

  2. Tìm URL mà tại đó công thức nằm trong kho lưu trữ ngược dòng:

    brew info ‹formula› | grep ^From:
    
  3. Sửa URL:

    1. Thay thế github.combằngraw.githubusercontent.com
    2. Thay thế blob/masterbằng băm cam kết mà chúng tôi đã tìm thấy trong bước đầu tiên.
  4. Cài đặt phiên bản mong muốn bằng cách thay thế masterURL đã tìm thấy trước đó bằng mã băm cam kết, ví dụ:

    brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/‹hash›/Formula/‹formula›.rb
    

(Bước cuối cùng có thể cần phải chạy brew unlink ‹formula›trước đó.)


Nếu bạn đã sao chép một băm cam kết mà bạn muốn sử dụng, bạn có thể sử dụng một cái gì đó như ví dụ này để cài đặt phiên bản đó, thay thế giá trị và bashbằng băm cam kết và công thức mong muốn của bạn.

BREW_VERSION_SHA=32353d2286f850fd965e0a48bcf692b83a6e9a41
BREW_FORMULA_NAME=bash
brew info $BREW_FORMULA_NAME \ | sed -n \ -e '/^From: /s///' \ -e 's/github.com/raw.githubusercontent.com/' \ -e 's%blob/%%' \ -e "s/master/$BREW_VERSION_SHA/p" \
| xargs brew install

Ví dụ này đang cài đặt bash 4.4.23 thay vì bash 5, mặc dù nếu bạn thực hiện brew upgradesau đó thì bash 5 sẽ được cài đặt trên cùng, trừ khi bạn thực hiện lần đầu tiên brew pin bash. Thay vào đó, để làm cho việc này trơn tru hơn mà KHÔNG cần ghim, trước tiên bạn nên cài đặt phiên bản mới nhất brew install bash, sau brew unlink bashđó cài đặt phiên bản cũ hơn mà bạn muốn theo tập lệnh ở trên, rồi sử dụng brew switch bash 4.4.23để thiết lập các liên kết tượng trưng cho phiên bản cũ hơn. Bây giờ a brew upgradesẽ không ảnh hưởng đến phiên bản Bash của bạn. Bạn có thể brew switch bashlấy danh sách các phiên bản có sẵn để chuyển sang.


Thay thế bằng cách sử dụng một lần nhấn chỉ cục bộ tùy chỉnh

Một cách khác để đạt được cùng một mục tiêu dường như là:

brew tap-new username/repo-name
# extract with a version seems to run a grep under the hood
brew extract --version='4.4.23' bash username/repo-name
brew install [email protected]
# Note this "fails" when trying to grab a bottle for the package and seems to have
# some odd doubling of the version in that output, but this isn't fatal.

Điều này tạo ra một [email protected]vòi tùy chỉnh của bạn mà bạn có thể cài đặt theo ví dụ trên. Nhược điểm là bạn có thể vẫn cần brew unlink bashvà sau đó brew link [email protected]để sử dụng phiên bản Bash cụ thể của bạn hoặc bất kỳ công thức nào khác.

29
Cameron Goodale 2012-02-13 10:35.

Tôi vừa sử dụng Homebrew để quay lại Maven 2.2.1 kể từ khi brew install mavencài đặt đơn giản Maven 3.0.3.

Đầu tiên bạn phải rời khỏi nhà thờ maven ở đó

$ brew hủy liên kết maven

Sử dụng lệnh pha bia

$ brew tap homebrew / phiên bản
Nhân bản thành '/ usr / local / Library / Taps / homebrew-Version' ...
từ xa: Đếm đối tượng: 590, xong.
từ xa: Nén các đối tượng: 100% (265/265), đã xong.
từ xa: Tổng 590 (delta 362), tái sử dụng 549 (delta 325)
Đối tượng tiếp nhận: 100% (590/590), 117,49 KiB | 79 KiB / s, đã xong.
Giải quyết các delta: 100% (362/362), đã xong.
Khai thác công thức 50

Bây giờ bạn có thể cài đặt công thức maven2:

$ brew cài đặt maven2
==> Đang tải xuống http://www.apache.org/dist/maven/maven-2/2.2.1/binaries/apache-maven-2.2.1-bin.tar.gz
###################################################### ####################### 100,0%
/usr/local/Cellar/maven2/2.2.1: 10 tệp, 3.1M, được tạo trong 6 giây
$ mvn - phiên bản
Apache Maven 2.2.1 (r801777; 2009-08-06 12: 16: 01-0700)
Phiên bản Java: 1.6.0_37
Trang chủ Java: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Ngôn ngữ mặc định: en_US, mã hóa nền tảng: MacRoman
Tên hệ điều hành: "mac os x" phiên bản: "10.7.4" Arch: "x86_64" Họ: "mac" 

Chỉnh sửa: Bạn cũng có thể brew switch maven 2.2.1chuyển sang một phiên bản khác.

Chỉnh sửa: Dự án Apache Maven đã tổ chức lại kho của họ. Đã cập nhật câu trả lời này để giải thích cho sự thay đổi này.

24
dragon788 2019-04-20 06:02.

Phương pháp chính thức (đánh giá từ phản hồi đối với https://github.com/Homebrew/brew/issues/6028 )

Thật không may Homebrew vẫn không có một rõ ràng cách dựng sẵn của việc cài đặt một phiên bản cũ.

May mắn thay, đối với hầu hết các công thức, có một cách dễ dàng hơn nhiều so với mớ hỗn độn phức tạp đã từng là cần thiết. Dưới đây là toàn bộ hướng dẫn sử dụng bashlàm ví dụ:

brew tap-new $USER/local-tap # extract with a version seems to run a `git log --grep` under the hood brew extract --version=4.4.23 bash $USER/local-tap
# Install your new version from the tap
brew install [email protected]
# Note this "fails" trying to grab a bottle for the package and seems to have
# some odd doubling of the version in that output, but this isn't fatal.

Điều này tạo ra [email protected]vòi tùy chỉnh của bạn mà bạn có thể cài đặt theo ví dụ trên. Một lưu ý quan trọng là bạn có thể cần brew unlink bashnếu trước đó bạn đã cài đặt phiên bản mặc định / mới nhất của công thức và sau đó brew link [email protected]để sử dụng phiên bản Bash cụ thể của bạn (hoặc bất kỳ công thức nào khác mà bạn đã cài đặt phiên bản mới nhất và cũ hơn).

Một nhược điểm tiềm ẩn của phương pháp này là bạn không thể dễ dàng chuyển đổi qua lại giữa các phiên bản vì theo brewnó là một "công thức khác".

Nếu bạn muốn có thể sử dụng bạn nên sử dụng phương pháp tiếp theo.brew switch $FORMULA $VERSION


Phương pháp tập lệnh (Được khuyến nghị)

Ví dụ này cho thấy việc cài đặt bash 4.4.23 cũ hơn, một ví dụ hữu ích vì bashcông thức hiện đang cài đặt bash 5.

  • Đầu tiên hãy cài đặt phiên bản mới nhất của công thức với brew install bash
  • sau đó brew unlink bash
  • sau đó cài đặt phiên bản cũ hơn bạn muốn theo các đoạn mã bên dưới
  • cuối cùng sử dụng brew switch bash 4.4.23để thiết lập các liên kết tượng trưng cho phiên bản của bạn

Nếu bạn thực hiện brew upgradesau khi cài đặt phiên bản cũ hơn mà không cài đặt phiên bản mới nhất trước, thì phiên bản mới nhất sẽ được cài đặt chặn phiên bản cũ của bạn, trừ khi bạn thực hiện lần đầu tiên brew pin bash.

Các bước ở đây TRÁNH ghim vì nó rất dễ bị quên và bạn có thể ghim vào một phiên bản không an toàn trong tương lai (xem Shellshock / etc). Với thiết lập brew upgradenày, không ảnh hưởng đến phiên bản Bash của bạn và bạn luôn có thể chạy brew switch bashđể nhận danh sách các phiên bản có sẵn để chuyển sang.

Sao chép, dán và chỉnh sửa các exportdòng từ đoạn mã bên dưới để cập nhật với phiên bản và tên công thức mong muốn của bạn, sau đó sao chép và dán phần còn lại như cũ và nó sẽ sử dụng các biến đó để thực hiện điều kỳ diệu.

# This search syntax works with newer Homebrew
export BREW_FORMULA_SEARCH_VERSION=4.4.23 BREW_FORMULA_NAME=bash
# This will print any/all commits that match the version and formula name
git -C $(brew --repo homebrew/core) log \ --format=format:%H\ %s -F --all-match \ --grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME

Khi bạn chắc chắn rằng phiên bản tồn tại trong công thức, bạn có thể sử dụng như sau:

# Gets only the latest Git commit SHA for the script further down
export BREW_FORMULA_VERSION_SHA=$(git -C $(brew --repo homebrew/core) log \ --format=format:%H\ %s -F --all-match \ --grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME | \ head -1 | awk '{print $1}')

Khi bạn đã xuất mã băm cam kết mà bạn muốn sử dụng, bạn có thể sử dụng mã này để cài đặt phiên bản gói đó.

brew info $BREW_FORMULA_NAME \ | sed -n \ -e '/^From: /s///' \ -e 's/github.com/raw.githubusercontent.com/' \ -e 's%blob/%%' \ -e "s/master/$BREW_FORMULA_VERSION_SHA/p" \
| xargs brew install

Làm theo hướng dẫn trong đầu ra công thức để đưa nó vào PATH của bạn hoặc đặt nó làm trình bao mặc định của bạn.

22
MattiSG 2012-07-10 04:06.

Dựa trên quy trình làm việc được mô tả bởi @tschundeee và bản cập nhật 1 của @ Debilski , tôi đã tự động hóa quy trình và thêm tính năng dọn dẹp trong tập lệnh này .

Tải xuống , đặt nó vào đường dẫn của bạn và brewv <formula_name> <wanted_version>. Đối với OP cụ thể, nó sẽ là:

cd path/to/downloaded/script/
./brewv postgresql 8.4.4

:)

20
Max Malysh 2020-01-11 07:07.

Nâng cấp Postgres một cách tình cờ?

Trường hợp của tôi:

  • postgresqlđã vô tình được nâng cấp từ 11 lên 12 (sau khi chạy brew upgrademà không có đối số)
  • Tôi muốn giữ Postgres 11.

Giải pháp:

  1. Dừng DB:
brew services stop postgresql
  1. Cài đặt Postgres 11:
brew install [email protected]
  1. Kích hoạt nó:
brew link [email protected] --force
  1. (Tùy chọn) Đổi tên thư mục dữ liệu DB từ postgresthành [email protected]:
cd /usr/local/var
ls -lh
mv [email protected] [email protected]
mv postgres [email protected]
  1. Khởi động DB:
brew services start [email protected]

Nếu bạn có bất kỳ lỗi nào, hãy kiểm tra /usr/local/var/log/[email protected](thông báo @ 11).

18
Miguel Reyes 2017-12-20 10:45.

Một câu trả lời được cập nhật kể từ đó bổ sung cho những gì @ lance-thăm dò đã đăng dưới dạng câu trả lời hiệu quả.

Cách cài đặt phiên bản cụ thể của Công thức (công thức được sử dụng trong ví dụ này là terraform):

  1. Tìm tệp công thức của bạn, ví dụ: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Nhận phiên bản cam kết từ lịch sử của github với https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rbhoặc git log master -- Formula/terraform.rbnếu bạn đã sao chép cục bộ repo.
  3. Nhận URL git thô với phiên bản cam kết của công thức của bạn: Nếu liên kết công thức trong github.com là https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb, URL thô của bạn sẽ là: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. Cài đặt nó với: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
12
Alex Sharp 2015-05-01 12:01.

Trên phiên bản homebrew mới nhất (0.9.5 tính đến thời điểm hiện tại) sẽ có một công thức cụ thể cho phiên bản homebrew mà bạn muốn cài đặt. Thí dụ:

$ brew search mongodb
mongodb    mongodb24  mongodb26

Sau đó cứ làm brew install mongodb26như bình thường.

Trong trường hợp mà bạn đã cài đặt phiên bản mới nhất, hãy chắc chắn để bỏ liên kết phiên bản mới nhất và liên kết các phiên bản mong muốn: brew unlink mongodb && brew link mongodb26.

11
rchawdry 2015-11-11 07:30.

Vấn đề homebrew/versionslà ai đó phải có phiên bản phần mềm cụ thể đó được liệt kê trong kho lưu trữ để bạn có thể sử dụng nó. Ngoài ra, vì brew versionskhông còn được hỗ trợ nên cần phải có giải pháp khác. Đối với các giải pháp cho biết đang sử dụng brew switch, điều này sẽ chỉ hoạt động nếu bạn chưa thực hiện brew cleanupvì phiên bản cần tồn tại trên máy tính của bạn.

Tôi gặp sự cố khi muốn cài đặt một phiên bản cũ hơn cụ thể docker-machinekhông được liệt kê trong đó homebrew/versions. Tôi đã giải quyết vấn đề này bằng cách sử dụng bên dưới, cũng sẽ hoạt động đối với bất kỳ phần mềm nào được cài đặt bia. Ví dụ bên dưới sẽ sử dụng docker-machinelàm gói mà tôi muốn hạ cấp từ phiên bản 0.5.0 xuống 0.4.1.

  1. Chuyển đến Formulathư mục homebrew của bạn .
    Bạn có thể xác định điều này bằng cách chạy brew info [any package name]. Ví dụ: brew info docker-machinecho tôi một dòng chỉ cho tôi một con đường - /usr/local/Cellar/docker-machine/0.5.0. Điều này cho tôi biết rằng trên máy tính của tôi, homebrew được cài đặt tại /usr/localFormulathư mục của tôi được đặt theo mặc định tại/usr/local/Library/Formula

  2. Tìm tệp công thức cụ thể (.rb) cho gói của bạn. Vì tôi muốn hạ cấp docker-machinenên tôi có thể xem một docker-machine.rbtệp.

  3. Lấy lịch sử phiên bản cho tệp công thức này . Nhập git log docker-machine.rb. Điều này sẽ liệt kê ra toàn bộ lịch sử cam kết cho tệp này. Bạn sẽ thấy đầu ra như thế này:

    ...hơn 

    cam kết 20c7abc13d2edd67c8c1d30c407bd5e31229cacc
    Tác giả: BrewTestBot 
    Ngày: Thứ Năm 5 tháng 11 16:14:18 2015 +0000

        docker-machine: cập nhật 0.5.0 chai.

    cam kết 8f615708184884e501bf5c16482c95eff6aea637
    Tác giả: Vincent Lesierse 
    Ngày: Thứ Ba ngày 27 tháng 10 22:25:30 2015 +0100

        docker-máy 0.5.0

        Đã cập nhật docker-machine thành 0.5.0

        Đóng # 45403.

        Người ký hợp đồng: Dominyk Tiller 

    cam kết 5970e1af9b13dcbeffd281ae57c9ab90316ba423
    Tác giả: BrewTestBot 
    Ngày: Thứ Hai ngày 21 tháng 9 14:04:04 2015 +0100

        docker-machine: cập nhật 0.4.1 chai.

    cam kết 18fcbd36d22fa0c19406d699308fafb44e4c8dcd
    Tác giả: BrewTestBot 
    Ngày: Chủ nhật 16 tháng 8 09:05:56 2015 +0100

        docker-machine: cập nhật 0.4.1 chai.

    ...hơn

Phần khó khăn là tìm cam kết mới nhất cho phiên bản cụ thể mà bạn muốn. Ở phía trên, tôi có thể nói phiên bản mới nhất 0.4.1 đã cam kết với điều này cam kết tag: commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423. Các cam kết ở trên thời điểm này bắt đầu sử dụng phiên bản 0.5.0 (các mục nhật ký git được liệt kê từ ngày mới nhất đến sớm nhất).

  1. Nhận phiên bản trước của tệp công thức. Sử dụng thẻ cam kết từ bước 3 (bạn có thể sử dụng 6 ký tự đầu tiên), bạn có thể nhận được phiên bản cũ hơn của tệp công thức bằng cách sử dụng như sau:

    git checkout 5970e1 docker-machine.rb

  2. Gỡ cài đặt phiên bản gói hiện tại của bạn. Chỉ cần chạy các lệnh brew thông thường để gỡ cài đặt phiên bản hiện tại của gói của bạn.
    Ví dụ.brew uninstall docker-machine

  3. Cài đặt phiên bản gói cũ hơn Bây giờ, bạn chỉ có thể chạy lệnh cài đặt brew bình thường và nó sẽ cài đặt công thức mà bạn đã kiểm tra. Ví dụ.brew install docker-machine

Bạn có thể cần liên kết lại bằng cách sử dụng brew link docker-machinenếu cần.

Nếu bất kỳ lúc nào bạn muốn hoàn nguyên về phiên bản mới nhất của một gói cụ thể, hãy chuyển đến thư mục Công thức và đưa ra các lệnh sau trên tệp công thức của bạn (.rb)

git reset HEAD docker-machine.rb
git checkout -- docker-machine.rb

Sau đó, bạn có thể brew uninstall docker-machinevà tải brew install docker-machinephiên bản mới nhất và giữ nó như vậy về sau.

11
ffghfgh 2018-05-25 06:12.

Cài đặt phiên bản gói bia cũ (ví dụ Flyway 4.2.0)

Tìm git dir homebrew địa phương của bạn hoặc sao chép Homebrew / homebrew-core cục bộ

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/

HOẶC LÀ

git clone [email protected]:Homebrew/homebrew-core.git

Liệt kê tất cả các phiên bản có sẵn

git log master -- Formula/flyway.rb

Sao chép ID cam kết cho phiên bản bạn muốn và cài đặt trực tiếp

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb

10
demosten 2019-02-21 05:38.

Tôi đã thử hầu hết các giải pháp ở đây và chúng đã lỗi thời. Tôi đã phải kết hợp một số ý tưởng từ đây với công việc của riêng tôi. Do đó, tôi đã tạo một tập lệnh để giúp tôi thực hiện công việc nặng nhọc mà bạn có thể tìm thấy tại đây

Sử dụng:

brewv.sh formula_name desired_version
6
Maxim Kholyavkin 2014-08-11 20:26.

nó có thể được thực hiện rất dễ dàng cho phiên bản cuối cùng của bia.

brew tap homebrew/versions
brew install subversion17 # for svn 1.7 branch instead of last available
brew install postgresql8  # for postgresql 8 (which you ask)
6
tenfishsticks 2016-07-06 11:18.

Không có cái nào trong số này thực sự phù hợp với trường hợp của tôi (Python), vì vậy tôi sẽ thêm 2 xu của mình:

cd `brew --prefix`
git log Library/Formula/python.rb

Đầu ra giống như sau:

commit 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de
Author: Dominyk Tiller <[email protected]>
Date:   Thu Jun 30 17:42:18 2016 +0100

    python: clarify pour_bottle reason

commit cb3b29b824a264895434214e191d0d7ef4d51c85
Author: BrewTestBot <[email protected]>
Date:   Wed Jun 29 14:18:40 2016 +0100

    python: update 2.7.12 bottle.

commit 45bb1e220341894bbb7de6fd3f6df20987dc14f0
Author: Rakesh <[email protected]>
Date:   Wed Jun 29 10:02:26 2016 +0530

    python 2.7.12

    Closes #2452.

    Signed-off-by: Tim D. Smith <[email protected]>

commit cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
Author: BrewTestBot <[email protected]>
Date:   Fri Jun 17 20:14:36 2016 +0100

    python: update 2.7.11 bottle.

...

Tôi muốn phiên bản 2.7.11để băm của tôi là cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9(hay gọi cf5da05tắt là). Tiếp theo, tôi kiểm tra phiên bản đó và cài đặt công thức python:

git checkout cf5da05
brew install python

Cuối cùng, dọn dẹp:

git checkout master
6
Emil Rehhnberg 2019-01-24 19:46.

Hiện tại, các cách cài đặt phiên bản công thức cụ thể cũ đã không còn được dùng nữa. Vì vậy, có vẻ như chúng ta phải sử dụng brew edit [formula]. Ví dụ: giả sử chúng tôi muốn cài đặt 62.1phiên bản của icu4c(cần thiết, ví dụ: cho postgresql 10.5). Sau đó, bạn phải

> brew edit icu4c
# drops you to editor

Ở đây bạn phải thay đổi url, versionsha256(có lẽ cũng có thể mirror) thành các 62.1chuỗi tương ứng .

url "https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz"
mirror "https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz"
version "62.1"
sha256 "3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3"

sau đó chạy brew reinstall icu4cđể cuối cùng tải xuống 62.1phiên bản.

6
lfender6445 2015-09-16 08:32.

Nếu bạn không thể tìm thấy phiên bản của mình brew search <formula>, bạn cũng có thể thử xem lại nhật ký cam kết cho công thức của mình để tìm phiên bản bạn muốn:

đây là một ví dụ để cài đặt phiên bản cũ hơn của nginx qua brew:

  • nhật ký cam kết công thức ngxnx

  • xem nginx: update 1.6.3 bottle eba75b9a1a474b9fc4df30bd0a32637fa31ec049

Từ đó, chúng ta có thể cài đặt 1.6.3với url git sha và raw:

brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb

1
mmrs151 2011-07-14 06:30.

Cập nhật trên dòng 8 của Library / Formula / postgresql.rb để

http://ftp2.uk.postgresql.org/sites/ftp.postgresql.org/source/v8.4.6/postgresql-8.4.6.tar.bz2

Và MD5 trên dòng 9 đến

fcc3daaf2292fa6bf1185ec45e512db6

Lưu và thoát.

brew install postgres
initdb /usr/local/var/postgres

Bây giờ trong giai đoạn này, bạn có thể gặp phải postgresql could not create shared memory segmentlỗi, để khắc phục sự cố cập nhật đó /etc/sysctl.confnhư sau:

kern.sysv.shmall=65536
kern.sysv.shmmax=16777216

Hãy thử initdb /usr/local/var/postgreslại và nó sẽ chạy trơn tru.

Để chạy postgresql khi bắt đầu

launchctl load -w /usr/local/Cellar/postgresql/8.4.6/org.postgresql.postgres.plist

Hy vọng rằng sẽ giúp :)

1
Thaars 2017-09-09 01:53.

Tôi vừa sao chép một bản phát hành cũ hơn củaasticsearch vào /usr/local/Cellar/elasticsearchthư mục.

$ mkdir /usr/local/Cellar/elasticsearch/5.4.3/bin $ cp elasticsearch /usr/local/Cellar/elasticsearch/5.4.3/bin
$ brew switch elasticsearch 5.4.3

Đó là nó. Có thể nó hữu ích cho bất kỳ ai.

1
divs1210 2020-05-06 22:21.

Tôi đã tạo một công cụ để giảm bớt quy trình được quy định trong câu trả lời này .

Để tìm một gói pkgcó phiên bản a.b.c, hãy chạy:

$ brew-install-specific [email protected]

Điều này sẽ liệt kê các cam kết trên pkgcông thức homebrew đề cập đến phiên bản nhất định cùng với các url GitHub của chúng.

Matching versions:
1. pkg: update a.b.c bottle.
   https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>
2. pkg: release a.b.c-beta
   https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>
3. pkg a.b.c
   https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>

Select index: 

Xác minh cam kết từ URL đã cho và nhập chỉ mục của cam kết đã chọn.

Select index: 2
Run:
  brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/<COMMIT-SHA>/Formula/pkg.rb

Sao chép và chạy lệnh đã cho để cài đặt.

0
J. B. Rainsberger 2013-11-03 03:30.

Tôi quyết định, chống lại sự đánh giá tốt hơn của mình, để tạo ra một công thức cho Maven 3.1.1, công thức homebrew/versionskhông có. Để làm điều này:

  1. Tôi đã fork homebrew/versionstrên github.
  2. Tôi đã liên kết biểu tượng từ $(brew --prefix)/Library/Tapsđến bản sao làm việc cục bộ của fork của tôi. Tôi sẽ gọi cái này my-homebrew/versions.
  3. Tôi đã kiểm tra bằng cách chỉ định công thức là my-homebrew/versions/<formula>.
  4. Tôi đã gửi một yêu cầu kéo đến homebrew/versionscho công thức mới của mình.

Đúng vậy.

0
Lutzifer 2017-07-16 07:18.

Đối với các phiên bản hiện không có trong công thức pha rượu mặc định, bạn có thể dễ dàng tạo lần nhấn của riêng mình bằng công cụ từ https://github.com/buildtools-version-taps/homebrew-versions-tap-tool

0
Vitah 2020-11-07 00:56.

brew versionsbrew install https://raw.githubusercontent.com/Homebrew/homebrew-core/<COMMIT-HASH>/Formula/<Formula>.rbkhông được hỗ trợ ngay bây giờ.

Bạn có thể thử như thế này:

$ brew extract --version 5.6.2 gradle vitahlin/core $ brew install [email protected]

Related questions

MORE COOL STUFF

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

8 công dụng tuyệt vời của Baking Soda và Giấm

8 công dụng tuyệt vời của Baking Soda và Giấm

Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.

Trong Saturday Night Live, The Bachelor is Bland và Tina Fey trở lại với vai 'Crazy' Sarah Palin

Trong Saturday Night Live, The Bachelor is Bland và Tina Fey trở lại với vai 'Crazy' Sarah Palin

Sau khi Sarah Palin tán thành Donald Trump vào đầu tuần này, gần như không thể tránh khỏi việc Tina Fey sẽ trở lại Saturday Night Live để thăm lại ấn tượng Palin cổ điển của cô. Và Fey chắc chắn đã không làm thất vọng, cô ấy đã đưa ra một lời khen ngợi không hề nhẹ về bài phát biểu chứng thực Iowa quanh co và khó hiểu của Palin trong khi Trump của Darrell Hammond đưa ra bình luận xuyên suốt.

Đây có phải là sự khởi đầu cho sự kết thúc của việc giam giữ Brittney Griner?

Đây có phải là sự khởi đầu cho sự kết thúc của việc giam giữ Brittney Griner?

Brittney Griner (r.) Ngay từ đầu, thân phận của Brittney Griner đã là tình huống con tin Mỹ độc nhất trong lịch sử hiện đại.

Tom Brady là bộ tứ vệ đầu tiên cuối cùng có thể giúp Julio Jones có hơn 10 lần chạm bóng trong một mùa giải

Tom Brady là bộ tứ vệ đầu tiên cuối cùng có thể giúp Julio Jones có hơn 10 lần chạm bóng trong một mùa giải

Chúng ta có thể thấy nhiều hơn nữa về một Julio Jones khỏe mạnh trong khu vực cuối năm nay. John Parker Wilson, Greg McElroy, A.

Đó phải là Đức

Đó phải là Đức

Đối với đội tuyển Anh, không có kẻ thủ ác nào lớn hơn Hầu hết các cổ động viên Anh, nếu không muốn nói là tất cả, hẳn sẽ phải gật gù khi tiếng còi mãn cuộc của trận bán kết lượt về W Euro 2022 vang lên. Bởi vì nó báo hiệu rằng Đức sẽ chờ đợi ở Wembley trong trận chung kết với Anh và là điều duy nhất giữa Anh và chiếc cúp lớn đầu tiên của đội tuyển nữ.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"

Đường băng hạ cánh

Đường băng hạ cánh

Cuối hè đầu thu là mùa hoài niệm. Những chiếc đèn đường chiếu ánh sáng của chúng qua những con đường đẫm mưa, và những chiếc lá dưới chân - màu đỏ cam tắt trong bóng chạng vạng - là lời nhắc nhở về những ngày đã qua.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.

Language