Instalasi Kernel C++17 di JupyterHub Menggunakan xeus-cling dan mamba
Jupyter
Artikel ini menjelaskan langkah-langkah lengkap dan berhasil diverifikasi untuk menambahkan kernel C++17 ke dalam JupyterHub berbasis Docker/LXC menggunakan xeus-cling
yang diinstal lewat mamba
.
Langkah Instalasi
1. Instalasi Miniforge (Mamba)
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh
Jawab yes saat diminta menambahkan ke .bashrc
, lalu jalankan ulang shell:
exec bash
2. Membuat Environment C++ Kernel
mamba create -n cpp_kernel -c conda-forge xeus-cling -y
3. Registrasi Kernel ke Jupyter
for V in 17 14 11; do
jupyter kernelspec install --sys-prefix /root/miniforge3/envs/cpp_kernel/share/jupyter/kernels/xcpp${V}
done
4. Perbaiki Izin Akses agar Bisa Dijalankan oleh User Jupyter
chmod o+x /root
chmod -R o+rx /root/miniforge3
5. Uji Jalankan Kernel dari User Non-root
sudo -u labreza /root/miniforge3/bin/mamba run -n cpp_kernel xcpp --version
Jika berhasil, lanjut ke konfigurasi kernel.
6. Edit kernel.json untuk Gunakan mamba run
nano /srv/jupyterhub/venv/share/jupyter/kernels/xcpp17/kernel.json
Isi dengan:
{
"display_name": "C++17",
"language": "c++",
"argv": [
"/root/miniforge3/bin/mamba",
"run", "-n", "cpp_kernel",
"xcpp", "-std=c++17",
"-f", "{connection_file}"
]
}
Lalu pastikan permission-nya terbuka:
chmod a+r /srv/jupyterhub/venv/share/jupyter/kernels/xcpp17/kernel.json
7. Restart JupyterHub
docker restart jhub
8. Uji Kernel C++17 di JupyterHub
Klik "New → C++17", lalu jalankan:
#include
std::cout << "C++17 kernel aktif 🎉" << std::endl;
Resume Kendala dan Solusinya
Kendala | Solusi |
---|---|
Kernel C++ tidak muncul di Jupyter | Gunakan jupyter kernelspec install --sys-prefix untuk tiap kernel |
Kernel muncul tapi tidak bisa dijalankan (status: Connecting) | Edit kernel.json agar pakai mamba run -n cpp_kernel xcpp |
Error Permission denied saat user biasa jalankan mamba |
Beri akses via: chmod o+x /root dan chmod -R o+rx /root/miniforge3 |
Error libxeus-cling.so.0 not found saat jalankan xcpp |
Gunakan mamba run agar dependency .so di-load dari environment |
jupyter kernelspec install gagal karena symbolic link |
Hapus link lama pakai rm , lalu install ulang |
Kernel tidak bisa jalan karena xcpp tidak bisa diakses dari venv |
Buat kernel pakai mamba run → hindari link langsung ke xcpp |
Muncul C++11 dan C++14, padahal hanya ingin C++17 | Hapus kernel lainnya dari folder: /srv/jupyterhub/venv/share/jupyter/kernels/ |
Penutup
Semoga bermanfaat!
🚀 Happy hacking with C++17 in Jupyter!