Làm thế nào để cài đặt một phiên bản cụ thể của gói?


7

Khi tôi làm, M-x package-install RET magitnó sẽ cài đặt phiên bản mới nhất của pháp sư 2.1.0.

Tôi muốn cài đặt magit 1.4.2. Tôi không muốn làm thủ công bằng cách tải xuống và tải gói.

Ví dụ: nếu tôi đang tải xuống gói python, tôi có thể chỉ định số phiên bản trong khi cài đặt.

pip install django==1.8

Làm thế nào tôi có thể làm một cái gì đó như thế và cài đặt magit=1.4.2?


1
AFAIK, Melpa không giải quyết các bản phát hành chính thức và bạn không thực sự có phiên bản 2.1.0 - bạn đang nhận được mã mới nhất (có thể không ổn định) từ kho lưu trữ nguồn, có thể sẽ gọi chính nó là 2.1.0 nếu không có bản phát hành chính thức tiếp theo, nhưng đó không phải là mã giống như phiên bản chính thức đó. Sử dụng kho lưu trữ gói khác nhau nếu bạn muốn bản phát hành chính thức (thử Marmalade hoặc Melpa-Stable).
phils

@phils Có cách nào để cài đặt một bản phát hành cũ từ melpa ổn định không?
ChillarAnand

Tôi không thấy một cách rõ ràng, tôi sợ. Trong trường hợp này, người bảo trì có thể phải đăng ký gói thứ hai (ví dụ magit-1.xvs magit-2.x). Tôi nghi ngờ rằng bạn sẽ phải sử dụng một phương pháp thay thế để cài đặt. Tuy nhiên, tôi không quá quen thuộc với người quản lý gói, vì vậy người khác có thể biết rõ hơn.
phils

Câu trả lời:


12

Bạn không thể cài đặt phiên bản trước của gói trong cơ sở hạ tầng hiện tại của chúng tôi. Mặc dù trình quản lý gói tích hợp của Emacs hiện hỗ trợ nhiều phiên bản của gói trong các bản phát hành gần đây, nhưng không có kho lưu trữ gói phổ biến nào (ví dụ MELPA Stable và Marmalade) thực sự giữ lại các bản phát hành trước đó.

Emacs đã không hỗ trợ điều này trong một thời gian dài và hiện tại, nhu cầu về tính năng này dường như khá thấp vì nó thường dành cho các phiên bản được phát hành, vì MELPA Stable ít phổ biến hơn MELPA. Đáng chú ý, chưa có ai tình nguyện làm việc tồn đọng các bản phát hành cho MELPA Stable, và do đó có rất ít động lực cho các nhà bảo trì thực hiện nó.

Bạn sẽ phải tải xuống, xây dựng và cài đặt gói cho mình. QUELPA với một công thức tùy chỉnh cho Magit có thể sẽ giúp ích ở đây.


1
Vẫn còn như vậy, bốn năm sau, rằng không thể cài đặt một bản phát hành lịch sử từ MELPA ổn định? Nếu vậy, làm thế nào để mọi người ngăn chặn các bản phát hành MELPA xấu phá vỡ toàn bộ thiết lập emacs của họ trên mọi máy họ sử dụng?
Tom Ellis

@TomEllis Tôi không biết, nhưng uhm, tại sao bạn không tự tìm hiểu? Nó đủ dễ phải không?

1
Tôi không chắc là tôi hiểu. Đây là một trang web câu hỏi và trả lời và tôi đang hỏi nếu câu hỏi ban đầu được hỏi có câu trả lời mới không (và đưa ra một lý do tại sao người ta có thể muốn có một câu trả lời mới). Làm thế nào bạn có thể đề nghị tôi tự tìm hiểu, không hỏi ở đây?
Tom Ellis

@TomEllis Không có ý xúc phạm, nhưng bạn thực sự có thể tự kiểm tra nội dung lưu trữ gói của MELPA, ví dụ như thông qua M-x list-packagesEmacs. Nếu bạn thấy rằng câu trả lời của tôi cần cập nhật, vui lòng đề xuất chỉnh sửa sau đó.

5

Bạn có thể sử dụng el-get để cài đặt bất kỳ sửa đổi cụ thể nào của bất kỳ gói nào, từ một repo git.

(el-get-bundle git-timemachine
  :checkout "3.0")

Điều này sẽ sao chép git-timemachine từ github và thẻ thanh toán 3.0 và yêu cầu git-timemachine.


Tính năng này có còn được hỗ trợ không? Tôi đã cố gắng cài đặt phiên bản magit trước đó (phiên bản hiện tại của chúng không hỗ trợ emacs 24 nữa) bằng cách chạy như sau: (el-get-bundle! magit :checkout "2.90.0") trong bộ đệm đầu và chỉ nhận được thông báo lỗi(error "El-get can not find a recipe for package \"package\"")
menuhin

Nó hoạt động mà không có dấu chấm than: (el-get-bundle magit :checkout "2.90.0") Vui lòng sửa đổi câu trả lời của bạn. Cảm ơn.
menuhin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.