Pendekatan paling sederhana, jika memungkinkan adalah dengan hanya menggunakan salah satu nvm
atau .deb
paket. Ini mungkin akan menghemat banyak sakit kepala dalam jangka panjang, jadi lihatlah dulu. Sepertinya hampir semua hal yang berhubungan dengan simpul yang disediakan oleh suatu .deb
paket dapat diinstal melalui nvm
gantinya.
Namun, jika itu benar-benar tidak mungkin, Anda mungkin bisa membuat .deb
paket "dummy" menggunakan equivs-control
dan equivs-build
memberi tahu apt
bahwa Anda memiliki dependensi yang diinstal. Perhatikan bahwa ini berpotensi membingungkan jika Anda melakukan kesalahan. Juga, bahkan jika Anda menghapus nvm
paket, apt masih akan berpikir Anda memiliki pengganti yang telah Anda tetapkan dalam paket dummy sampai Anda menghapus sendiri paket dummy.
Pertama, instal "equivs" sehingga kita dapat membangun paket-paket dummy:
sudo apt-get install equivs
Buat file kontrol yang menjelaskan paket boneka:
cd ~
equivs-control nodejs-dummy
Edit file kontrol ini:
nano nodejs-dummy
Batalkan komentar dan ubah baris dalam file kontrol seperti yang diinginkan. Khususnya setel baris "Menyediakan:" untuk mencantumkan paket yang telah Anda gantikan dengan menggunakan nvm
. Sebagai contoh:
Package: nodejs-dummy
Version: (version slightly higher than what the apt package actually provides)
Maintainer: Your Name <[email protected]>
Provides: nodejs
Architecture: all
Description: Something that will remind you what this does ;)
Bangun paket:
equivs-build nodejs-dummy
Akhirnya, instal:
sudo dpkg -i nodejs-dummy_use_the_actual_filename.deb
Bilas dan ulangi untuk paket apa pun yang telah Anda gunakan nvm
. Jika suatu paket tergantung pada versi spesifik dari paket lain yang telah Anda ganti nvm
, Anda mungkin perlu menggunakan nomor versi persis yang menjadi sandarannya. Namun, saya tidak yakin masalah apa yang muncul karena melakukannya, dan Anda mungkin harus terus membangun kembali paket tiruan Anda setiap kali paket OS mengubah versi.
Ini adalah masalah dengan bagaimana nvm mendistribusikan perangkat lunak. Mereka tidak melakukan pengemasan khusus distro. Untuk lebih spesifik melakukan pembacaan cepat dari nvm dan mereka hanya binari wget'ing. Sebagai contoh, inilah yang diinstal untuk nodejs 6: https://nodejs.org/.../lates.../node-v6.3.1-linux-x64.tar.gz Ini tidak mengandung standar .deb atau metadata .rpm sehingga sampai mereka benar merilis paket nyata tidak ada banyak paket manajer tingkat distro yang dapat dilakukan dan mereka kemungkinan akan saling bertentangan. Jika saya memahami titik nvm merilis paket yang tepat bukanlah sesuatu yang mereka tertarik justru karena mengikat mereka untuk mendukung paket-paket khusus distro. Jadi alih-alih kita memiliki retasan yang adalah nvm. Mungkin mengajukan masalah terhadap git mereka. Ini hanya dapat diperbaiki oleh komunitas nodejs.
Khususnya npm dan nvm saat ini tampaknya tidak mendukung konsep penandatanganan kode ( sumber ) apa pun sehingga bila dibandingkan dengan kemasan distro yang didukung dengan baik di sebagian besar manajer paket distro. Ini adalah pendekatan yang cukup tidak aman untuk menginstal paket sistem.
sumber
Tidak, Anda tidak bisa seperti yang Anda katakan. Apt bekerja di tingkat sistem, di mana nvm biasa menginstal paket di tingkat pengguna.
Anda memiliki dua opsi -
Baik paket yang Anda inginkan melalui nvm dan gunakan paket nvm lain yang telah diinput, atau
instal paket menggunakan
apt-get
dan instal semua dependensi dengannya.sumber