İle yeni nesil paket yönetimi straight.el
package.el
Paketlerimi yönetmek için + Quelpa'yı kullanmak için uzun ve sinir bozucu bir mücadeleden sonra mermiyi ısırdım ve kendi paket yöneticimi yazdım . Neredeyse her açıdan package.el
üstün bir paket yönetim deneyimi sağlayarak tamamen yerini alması amaçlanmıştır .
Tüm özellikleri hakkında bilgi edinmek için çok kapsamlı belgeleri okuyabilirsiniz , ancak bu soru ile en alakalı olanı mükemmel tekrarlanabilirliğestraight.el
odaklanmasıdır . Bu, Emacs'ı normal olarak başlatmanızın veya yeni bir makinede başlatmanızın önemli olmaması ve yerel değişikliklerin sürüm kontrollü olması ve standart bir duruma döndürülebilmesi anlamına gelmez. Pratik olarak, bunu (1) Git depoları olarak paketleri klonlamak ve durumlarını yönetmek için otomatik araçlar sağlamak; (2) init dosyasını başka bir yerde depolanabilir hiçbir veri olmadan paket yönetimi durumu için tek gerçek kaynak olarak kullanmak ; ve (3) her paketin kesin Git revizyonlarını, ayrıca tüm reçete depolarını vestraight.el
kendisi.
Başlamak için , yüklenecek ve etkinleştirilecek önyükleme snippet'ini takın straight.el
. Ardından, bir paketin kurulu olduğundan emin olmak straight-use-package
için init dosyanıza bir çağrı yapmanız yeterlidir :
(straight-use-package 'projectile)
Evet, bu kadar basit. package-refresh-contents
O çöple uğraşmak yok . Bu formu init dosyanızdan kaldırır ve Emacs'ı yeniden başlatırsanız, Projectile artık yüklenmez (aksine package.el
). Bu, yanlışlıkla bir şekilde bildirilmeyen paketlere bağımlı olduğunuz için yapılandırmanızın bir şekilde yeni bir makinede çalışmadığı konusunda endişelenmenize gerek olmadığı anlamına gelir.
İnit dosyanız boyunca paketleri istediğiniz zaman ve istediğiniz zaman kurabilirsiniz (bunların listesini tek bir noktada bildirmenize gerek yoktur). Tabii ki sadece
(dolist (package '(ace-jump-mode ... zzz-to-char)) (straight-use-package package))
listeyi tercih ederseniz. Ancak use-package
paket yapılandırmanızı yönetmek için kullanmanızı öneririz . İlk önce yüklemeniz gerekir:
(straight-use-package 'use-package)
Ardından, straight.el
yerleşik entegrasyonundan bu yana , use-package
aşağıdaki "sadece çalışır":
(use-package projectile
:straight t
:init (projectile-mode 1))
İnit dosyanızı ihtiyaç duyduğunuz paketleri yüklemek için yazdıktan sonra, M-x straight-freeze-versions
bir sürüm kilit dosyasını kaydetmek için çalıştırın ~/.emacs.d/straight/versions/default.el
. straight.el
Emacs'ı yeni bir makinede ilk kez başlattığınızda, bu dosyayı sürüm kontrolünde tutmalısınız . (Manuel olarak kilit dosyasında belirtilen sürümlere geri dönebilirsiniz M-x straight-thaw-versions
.)
Ben bahsedilen o makine yerel dotfiles fikrini desteklemek için benim diğer cevap , straight.el
bir sunan profil sistemi . Hala nokta dosyalarınız için sembolik bağlantılar kullanmanızı öneririm (bu durumda, init.el
varsa yerel init dosyanız ve kullanmak istiyorsanız kilit dosyası).
straight.el
Diğer paket yöneticileriyle nasıl karşılaştırıldığını merak ediyorsanız , kapsamlı karşılaştırmalar bölümüne göz atın . Ancak diğer her şey hakkında daha fazla dokümantasyon var .
init.el
Etrafınızı hareket ettirebildiğiniz sürece (örneğin git kullanarak), bu yaklaşım da işe yarar (dayalıuse-package
): lunaryorn.com/posts/…