Saya menginstal auctex dari pusat perangkat lunak Ubuntu, dan kemudian saya menginstal versi lebih baru dari auctex dari emacs.
Saya kemudian menghapus instalan auctex yang diinstal oleh pusat perangkat lunak Ubuntu. Saya menemukan bahwa itu tidak menghapus yang saya instal dari emacs.
Bagaimana emacs mengelola paketnya?
Apakah tidak ada gangguan antara emacs dan Ubuntu dalam mengelola instalasi dan penghapusan instalasi paket emacs?
Jika saya benar, beberapa tahun yang lalu, tidak ada cara untuk menginstal paket dalam emacs?
Terima kasih.
M-x report-emacs-bug
. Orang-orang yang menanggapi pertanyaan semacam itu di sini akan lebih baik berkontribusi pada dokumen Emacs, jika infonya hilang. MENURUT OPINI SAYA.Jawaban:
Seperti kata paprika, Emacs menggunakan
load-path
untuk mencari daftarelisp
file yang tersedia (.elc
,.el
)Itu
load-path
dicari untuk paket yang cocok pertama saat diperlukan. Jika beberapa salinan paket diinstal, maka yang pertama akan dimuat.Manajer paket distro tidak dapat menginstal ke sumber yang sama dengan yang
package-install
ada, karena satu adalah seluruh sistem dan yang lainnya adalah khusus pengguna.Sumber Paket
Built-in dan Khusus Distro
Manajer Paket DistroManajer paket distro menyediakan pilihan paket emacs yang dapat diinstal. Dalam pengalaman saya, ini sering di antara paket yang lebih populer / banyak digunakan. Sebelum pengembangan
package.el
ini adalah cara termudah untuk mendapatkan paket. (Paling mudah berdasarkan hanya berjalanapt-get install <package>
daripada menggunakan kontrol versi atau unduhan langsung.Paket yang diinstal melalui manajer paket distro diinstal ke
Package.el/usr/local/share/emacs/site-lisp/
yang merupakan default diload-path
dan akan disembunyikan olehload-path
tambahan khusus pengguna .package.el
pertama kali disertakan denganEmacs 24
. Versi ini kompatibel denganEmacs 23
tetapi perlu diinstal secara manual, paket yang diambil olehnya mungkin atau mungkin tidak kompatibel dengannyaEmacs 23
.package.el
menyediakan repositori yang dapat ditelusuri paket untuk Emacs. Secara default hanyaElpa
repositori yang dikonfigurasi, tetapi akses ke MELPA dan Marmelade dapat ditambahkan:Ini memberikan akses ke kumpulan paket yang jauh lebih besar.
Secara default
Git / Bzr / hg / ... + EmacsWikipackage.el
menginstal paket ke~/.emacs.d/elpa
dan ketika(package-initialize)
dipanggil direktori ini akan ditempatkan lebih dekat ke depanload-path
, sehingga paket-paket ini diutamakan daripada yang diinstal dengan oleh manajer paket distribusi.Paket yang dikontrol versi dapat secara manual diambil dari repositori mereka melalui kloning. Beberapa juga menyediakan rilis paket yang dapat diunduh secara langsung.
File EmacsWiki Elisp juga dapat diunduh, meskipun mereka biasanya file tunggal daripada direktori.
Setelah paket diambil, pastikan folder tujuan ada di Anda
load-path
dan akan tersedia untuk digunakan.Manajemen paket pihak ketiga
Alat-alat ini menyediakan pembungkus atau fungsionalitas tambahan di atas untuk memusatkan manajemen paket. Mereka dirancang dengan konfigurasi bersama untuk memastikan semua mesin Anda memiliki paket yang sama.
El-GetEl-Dapatkan menyimpan daftar resep yang memungkinkan untuk mengambil paket menggunakan
Tong kecilpackage.el
,git
,emacswiki
sebagai sumber (antara lain). Ini juga menyediakan fungsi untuk memastikan paket terbaru, mengelola pemuatan (ditangguhkan atau langsung), dan menyimpan kustomisasi khusus paket dalam file yang dimuat secara otomatis ketika paket tersebutrequired
.Tong dirancang untuk manajemen proyek di / untuk Emacs. Itu menggunakan
cask
file untuk mempertahankan daftar dependensi (paket lain) yang diperlukan untuk menggunakan paket, dan akan mengunduh paket yang hilang untuk memastikan semuanya berhasil dimuat.Ini dapat digunakan untuk mengelola konfigurasi paket lokal dengan memperlakukan Anda
~/.emacs.d
sebagai proyek dan memanggil(cask-initialize)
startup.straight.el
Paket penggunaanstraight.el
dirancang untuk orang-orang yang ingin membuat perubahan lokal ke paket mereka, dan mungkin berkontribusi perubahan itu di hulu. Ini menarik resep dari MELPA , GNU ELPA , dan EmacsMirror , atau memungkinkan Anda untuk menentukan sendiri. Ini juga mendukung penulisan lockfile revisi untuk reproduktifitas maksimum, di antara banyak fitur lainnya.Paket penggunaan dirancang terutama sebagai alat manajemen konfigurasi emacs. Ini akan mengunduh
package.el
paket yang diperlukan tetapi tidak memiliki mekanisme bawaan untuk mengakses sumber lain. Hal ini memungkinkan untuk pemuatan paket yang ditangguhkan dan kustomisasi yang ditangguhkan. Ini meningkatkan inisialisasi emacs sambil memperlambat penggunaan awal paket (tetapi jika tidak menggunakannya dalam sesi yang diberikan hanya ada keuntungan bersih).sumber
/usr/share/emacs/site-lisp
, bukan/usr/local/share...
karenalocal
dirs dimaksudkan untuk instalasi non distro.Emacs menggunakan
load-path
, yang pada dasarnya adalah daftar direktori yang harusnya dicari oleh file Lisp. Jika sebuah paket tersedia diload-path
maka itu diinstal .Tidak ada antarmuka antara manajer paket Debian / Ubuntu dan manajer paket Emacs (package.el). Mantan menginstal paket Emacs dalam mode seluruh sistem (tersedia untuk setiap pengguna komputer) sementara yang terakhir menginstal paket secara default di bawah direktori home Anda. Secara teoritis Anda dapat menggunakan kedua sumber untuk menginstal paket. Namun, saya akan menyarankan agar praktik ini: Anda mungkin mengalami beberapa masalah ketika Anda menginstal paket yang sama dari kedua sumber.
Daftar paket Emacs yang dapat Anda instal melalui manajer paket Debian / Ubuntu jauh lebih terbatas jika dibandingkan dengan ELPA / MELPA / ..., karena setiap paket harus disiapkan khusus untuk Debian / Ubuntu. Dengan kata lain: paket di ELPA! = Paket di Debian.
sumber