Cara Memasang Jupyter Notebook Di NixOS
Jupyter Notebook yang sebelumnya dikenal sebagai IPython Notebook merupakan antarmuka berbasis web dari python untuk menjalankan serangkaian perintah pertahap. Tujuannya untuk memudahkan pengguna untuk melakukan pembelajaran, penelitian, klarifikasi, dan visualisasi.
Jupyter Notebook diakses melalui web browser atau editor yang berbasis web seperti vscode atau vscodium. Umumnya tidak hanya jupyter-notebook saja yang perlu dipasang, tetapi pustaka pendukung lainnya untuk perhitungan komputasi dan visualisasi juga perlu dipasang. Misalnya pustaka numpy, scipy, pandas, scikit-learn, matplotlib atau seaborn untuk visualisasinya.
Faktanya, Jupyter Notebook juga mendukung banyak bahasa pemrograman lain seperti Julia, Python, Haskell, Ruby, dan R. Tetapi pada artikel ini Jupyter notebook yang dibahas adalah untuk bahasa pemrograman python.

Gambar 1: Contoh tampilan Jupyter Notebook.
Jenis pemasangan
Terlebih saya masih menggunakan modul native dari NixOS tanpa home-manager dan
Flake, jadi pemasangan jupyter-notebook secara global di sistem NixOS dengan
/etc/nixos/configuration.nix
atau anda bisa memecahnya menjadi beberapa berkas
konfigurasi nix
.
Ada 2 cara untuk memasang Jupyter notebook secara global, yaitu:
- Pemasangan dari pustaka python.
- Pemasangan dari modul layanan systemd.
Cara yang pertama menjalankan manual layanan jupyter-notebook, menunggu beberapa saat untuk proses jupyter selesai kemudian baru bisa digunakan secara lokal via web browser. Modul tersebut dibundel dengan pustaka python lainnya.
Sedangkan cara yang kedua menjalankan jupyter-notebook secara otomatis saat komputer dinyalakan, sehingga langsung membuka port via web browser.
Cara pertama atau kedua tidak masalah, terlebih lagi modul tersebut tidak terduplikasi karena sistem di NixOS yang menggunakan symlink untuk integrasi antar paket. Bahkan saya pun menggunakan kedua cara tersebut untuk mengetahui perbedaannya dan mempelajari deklarasi jupyter di Nix.
Pemasangan 1: Melalui pustaka dari python
Di dalam bagian python3.withPackages
dan seterusnya, tambahkan ke dalam
environment.systemPackages
bersama nama paket sistem lainnya.
/etc/nixos/configuration.nix
environment = {
systemPackages = with pkgs; [
(python3.withPackages ( # tambahkan di awal baris ini.
ps:
with ps; [
jupyter
jupyterlab
matplotlib
numpy
pandas
plotly
seaborn
scikit-learn
scipy
sympy
]
)
) # sampai baris ini.
];
};
Anda juga bisa menambahkan pustaka python lainnya yang dibutuhkan di repositori NixOS.
Konfigurasi ini dapat dilihat di repositori saya (dotfiles cara 1).
Pemasangan 2: Melalui modul layanan systemd
Cara kedua ini menjalankan otomatis layanan jupyter sehingga pengguna dapat langsung membuka via web browser. Tambahkan konfigurasi layanan jupyter.
/etc/nixos/configuration.nix
services = {
jupyter = {
enable = true;
group = "jupyter";
user = "jupyter";
password = "'argon2:$argon2id$v=19$m=10240,t=10,p=xxxxxxx... '"; # dienkripsi
kernels = {
python3 = let
env = (pkgs.python3.withPackages (ps: with ps; [
jupyterlab
matplotlib
numpy
pandas
plotly
seaborn
selenium
scikit-learn
scipy
sympy
statsmodels
]
));
in {
displayName = "Python for Machine Learning";
argv = [
"${env.interpreter}"
"-m"
"ipykernel_launcher"
"-f"
"{connection_file}"
];
language = "python";
};
};
};
group
danuser
sebaiknya tetap menggunakanjupyter
.password
dapat diperoleh dengan menjalankan perintah dibawah ini di terminal.python -c 'from notebook.auth import passwd; print(passwd())'
Ganti password sesuai yang dikehendaki, salin dan tempelkan ke
password =
.
Konfigurasi diatas dapat dilihat di repositori (dotfiles: cara 2)
Selanjutnya beri hak akses user dan grup jupyter. Tambahkan jupyter
ke dalam
extraGroups
milik pengguna.
/etc/nixos/configuration.nix
users = {
users = {
# tambahkan grup jupyter
jupyter = {
group = "jupyter";
};
hervyqa = { # contoh username
isNormalUser = true;
description = "Hervy Qurrotul"; # contoh fullname
extraGroups = [
"jupyter" # tambahkan pengguna ke grup jupyter
"audio"
"disk"
"input"
"users"
"video"
"wheel"
# ... dan grup opsional lainnya
];
};
};
};
Konfigurasi di atas dapat dilihat di repositori (dotfiles: cara 2 konfigurasi grup).
Perbedaan dari cara sebelumnya:
- Layanan
jupyter.service
akan berjalan otomatis saat komputer dinyalakan. - Dikarenakan menggunakan user
jupyter
dan grupjupyter
, maka direktori proyek jupyter yang dibuat akan diletakkan di/var/lib/jupyter
dengan hak aksesjupyter:jupyter
. - Hanya user
jupyter
saja yang bisa mengakses melalui web browser dengan kata sandi.
Ekstensi Jupyter Notebook VSCode
Sebagai pendukung di IDE editor (opsional), tambahkan beberapa ekstensi Jupyter Notebook di vscode atau vscodium.
environment = {
systemPackages = with pkgs; [
(
vscode-with-extensions.override {
vscode = vscodium; # jika menggunakan vscodium
vscodeExtensions = with vscode-extensions;
[
ms-pyright.pyright
ms-python.python
ms-toolsai.jupyter
ms-toolsai.jupyter-keymap
ms-toolsai.jupyter-renderers
ms-toolsai.vscode-jupyter-cell-tags
ms-toolsai.vscode-jupyter-slideshow
]
}
)
];
};
Menjalankan Notebook melalui web browser
Setelah selesai mengkonfigurasi jupyter-notebook. Bangun ulang sistem NixOS.
sudo nixos-rebuild switch
Kemudian pengguna dapat membukanya melalui web browser.
- Buka tautan http://localhost:8888 .
- Login dan masuk menggunakan password jika ada.

Gambar 2: Halaman login Jupyter Notebook.
Penutup
NixOS menggunakan deklarasi untuk konfigurasi sistem operasinya baik dari segi sistem root maupun user. Terlihat menyakitkan karena butuh konfigurasi yang cukup panjang, tetapi konfigurasi tersebut diperlukan sekali dan hasilnya dapat digunakan berulang-ulang di mesin yang berbeda.
Jupyter Notebook vs IDE lebih baik yang mana?
Bagi saya keduanya terbaik, tergantung kebutuhan. Jupyter lebih disarankan untuk kebutuhan yang cepat dan sederhana. Sedangkan jika menggunakan IDE misalnya seperti Spyder IDE, VSCode, PyCharm tentu lebih memiliki keunggulan fitur spesifik. Kembali lagi kepada kebutuhan pengguna.
Demikian catatan dari saya. Jika Anda mempunyai pertanyaan, saran, dan kritikan silahkan komentar dibawah ini atau bisa menyapa saya di telegram @hervyqa . Sekian, semoga tulisan ini bermanfaat untuk pembaca semuanya. Aamiin.
Artikel lainnya
Cara Memasang R dan RStudio Di NixOS
Bahasa pemrograman R lebih dikenal sebagai bahasa pemrograman untuk statistika dan visualisasi grafis. Dibuat oleh Ross Ihaka dan Robert Gentleman di Universitas Auckland, dan sekarang dikembangkan oleh R Development Core Team.
Cara Memasang Zotero dan Plugin LibreOffice Di NixOS
Zotero merupakan salah satu perangkat lunak pengolah daftar bibliografi yang wajib dimiliki oleh pelajar, mahasiswa dan tenaga pendidik.
Kelebihan Spyder IDE Untuk Pemrograman Python
IDE (Integrated Development Environment) merupakan suatu perangkat lunak yang sudah dibundel dengan perkakas yang dibutuhkan oleh seorang programmer.