Pada sistem Linux, paket Vim biasanya hanya memiliki satu python
atau python3
diaktifkan. Dimungkinkan untuk keduanya diaktifkan (menggunakan python/dyn
dan python3/dyn
), tetapi selama sesi, hanya satu yang dapat digunakan. Diskusi milis ini mengatakan :
Itu tergantung pada bagaimana perpustakaan Python dibangun. Pada sistem berbasis Debian (untuk alasan yang saya tidak ingat begitu saja), mereka dibuat sedemikian rupa sehingga RTLD_GLOBAL harus digunakan untuk mendapatkan akses ke simbol. Ini mencegah memuat libpython2.x dan libpython3.x dalam proses yang sama.
Apa yang dapat dilakukan untuk mengaktifkan pemuatan keduanya di sesi yang sama?
Opsi yang bisa saya lihat:
- Bangun kembali paket-paket Python {2,3} sehingga
RTLD_GLOBAL
(apa pun itu) tidak diperlukan. - Entah bagaimana, pustaka dimuat lebih awal untuk dibongkar (?!) Oleh Vim. (Apakah itu mungkin?)
Untuk setiap rincian distro, asumsikan, dengan meningkatkan urutan spesifisitas:
- Berbasis Debian
- Ubuntu
- Ubuntu 14.04
- Atau, Arch Linux, jika sistem berbasis Debian terlalu rumit.
Perhatikan bahwa saya harus membangun Vim dengan dukungan pemuatan dinamis untuk keduanya, jadi membangun Vim bukan masalah.
sumber
vim-runtime
paket, mereka memilikivim
,gvim
,vim-python3
dangvim-python3
. Satu-satunya perbedaan antara-python3
paket normal dan adalah versi Python diaktifkan. Tentu, itu menggandakan jumlah paket frontend, tapi itu semua cacat yang saya lihat dalam kemasan tersebut.vim-nox
,vim-gtk
,vim-gnome
, danvim-athena
. Menggandakannya hanya agar pengguna tetap tidak bisa menggunakan plugin Python dan Python3 sepertinya tidak berguna.Ubuntu 16.04 sekarang memiliki
vim-*-py2
paket yang termasuk dalam repo. Ini berarti semua pengguna Debian Vim dapat bermigrasi ke Ubuntu jika diperlukan.Paket-
vim-*
paket yang sekarang disediakan+python3
, dan binari-binari diberi nama berbeda untuk menghindari konflik:vim.nox
untukvim-nox
dan+python3
vim.nox-py2
untukvim-nox-py2
dan+python
Dan seterusnya.
sumber