Chào bạn, tôi là Bùi Mạnh Đức. Với kinh nghiệm nhiều năm trong lĩnh vực phát triển web và làm việc với các hệ thống mã nguồn mở, tôi hiểu rằng việc thiết lập một môi trường lập trình hiệu quả là bước đệm quan trọng cho mọi dự án. Jupyter Notebook đã và đang trở thành một công cụ không thể thiếu, đặc biệt trong cộng đồng lập trình Python và khoa học dữ liệu. Tuy nhiên, nhiều người dùng mới chuyển sang Ubuntu 20.04 thường cảm thấy bối rối trong các bước cài đặt và cấu hình ban đầu. Họ không chắc nên bắt đầu từ đâu, cài đặt những gói nào, hay làm sao để khởi chạy ứng dụng một cách chính xác. Thấu hiểu khó khăn đó, bài viết này được tạo ra để trở thành người bạn đồng hành, hướng dẫn bạn chi tiết từng bước một, từ việc chuẩn bị hệ thống cho đến khi khởi chạy thành công Jupyter Notebook trên Ubuntu 20.04 với Python 3. Chúng ta sẽ cùng nhau đi qua toàn bộ quy trình, đảm bảo bạn có thể tự tin thiết lập môi trường làm việc lý tưởng cho riêng mình.
Giới thiệu về Jupyter Notebook trên Ubuntu 20.04
Jupyter Notebook ngày càng trở thành công cụ không thể thiếu trong cộng đồng lập trình Python và khoa học dữ liệu. Nó cho phép bạn tạo và chia sẻ các tài liệu chứa mã nguồn, phương trình, trực quan hóa dữ liệu và văn bản tường thuật. Sức mạnh của Jupyter nằm ở khả năng thực thi mã theo từng khối (cell), giúp việc thử nghiệm, phân tích và trình bày kết quả trở nên trực quan và linh hoạt hơn bao giờ hết. Tuy nhiên, đối với người mới dùng Ubuntu 20.04, quá trình cài đặt và cấu hình Jupyter Notebook ban đầu có thể gây ra một vài trở ngại. Bạn có thể không chắc chắn về các gói phụ thuộc cần thiết, các lệnh chính xác cần dùng, hay cách thiết lập môi trường sao cho tối ưu và bảo mật. Bài viết này sẽ là kim chỉ nam của bạn. Chúng tôi sẽ hướng dẫn bạn từng bước, từ việc giới thiệu công cụ, chuẩn bị hệ thống, cài đặt các thành phần cần thiết, cho đến cách khởi chạy và xử lý các lỗi thường gặp. Mục tiêu là giúp bạn tự tin làm chủ công cụ mạnh mẽ này trên hệ điều hành Ubuntu 20.04.

Yêu cầu hệ thống và chuẩn bị trước khi cài đặt
Trước khi bắt đầu hành trình cài đặt Jupyter Notebook, việc đảm bảo hệ thống của bạn đáp ứng các yêu cầu cơ bản là vô cùng quan trọng. Giống như xây một ngôi nhà, bạn cần một nền móng vững chắc. Bước chuẩn bị này sẽ giúp quá trình cài đặt diễn ra suôn sẻ và tránh được những lỗi không đáng có.
Yêu cầu hệ thống tối thiểu
Để cài đặt và vận hành Jupyter Notebook một cách ổn định trên Ubuntu, hệ thống của bạn cần đáp ứng một vài tiêu chí cơ bản. Mặc dù Jupyter không quá nặng, một cấu hình tốt sẽ mang lại trải nghiệm mượt mà hơn, đặc biệt khi xử lý các tập dữ liệu lớn.
- Phiên bản hệ điều hành: Bạn cần có một máy chủ hoặc máy tính cá nhân đang chạy Ubuntu 20.04 (Focal Fossa).
- Dung lượng ổ đĩa: Dành ra ít nhất 5GB dung lượng trống để chứa hệ điều hành, Python, Jupyter và các thư viện liên quan.
- RAM: Tối thiểu 2GB RAM là cần thiết, tuy nhiên, 4GB RAM trở lên được khuyến khích để có hiệu suất tốt nhất.
- Quyền truy cập: Bạn phải có quyền truy cập vào một tài khoản người dùng với đặc quyền
sudo. Hầu hết các lệnh cài đặt và cập nhật hệ thống đều yêu cầu quyền quản trị viên này.
Chuẩn bị môi trường làm việc
Sau khi đã xác nhận hệ thống đáp ứng yêu cầu, chúng ta cần thực hiện một vài bước chuẩn bị để môi trường làm việc sẵn sàng. Đầu tiên, hãy kiểm tra lại phiên bản Ubuntu của bạn để chắc chắn rằng bạn đang làm việc trên nền tảng chính xác. Mở Terminal và chạy lệnh sau: lsb_release -a Lệnh này sẽ hiển thị thông tin chi tiết về phiên bản Ubuntu, bao gồm tên mã là “Focal”. Tiếp theo, và cũng là bước quan trọng nhất, hãy cập nhật toàn bộ hệ thống. Việc này đảm bảo rằng tất cả các gói phần mềm hiện có đều ở phiên bản mới nhất, giúp tăng cường bảo mật và đảm bảo tính tương thích khi cài đặt các công cụ mới.

Cập nhật hệ điều hành và cài đặt Python 3 trên Ubuntu 20.04
Nền tảng của một môi trường lập trình ổn định chính là một hệ điều hành được cập nhật đầy đủ và một phiên bản Python tương thích. Trong phần này, chúng ta sẽ thực hiện hai công việc cốt lõi: làm mới hệ thống Ubuntu và xác nhận việc cài đặt Python 3.
Cách cập nhật Ubuntu 20.04
Cập nhật hệ điều hành là một thói quen tốt, giúp vá các lỗ hổng bảo mật và cải thiện hiệu suất chung. Trên Ubuntu, quá trình này rất đơn giản với trình quản lý gói apt. Bạn chỉ cần mở Terminal và thực thi hai lệnh sau theo thứ tự. Đầu tiên, chạy lệnh update để làm mới danh sách các gói phần mềm từ kho lưu trữ: sudo apt update Lệnh này sẽ quét qua các kho chứa phần mềm và tải về thông tin mới nhất về các phiên bản có sẵn. Sau khi hoàn tất, bạn sẽ biết được có bao nhiêu gói có thể được nâng cấp. Tiếp theo, thực thi lệnh upgrade để tiến hành cài đặt các phiên bản mới của những gói đã lỗi thời: sudo apt upgrade -y Tùy chọn -y sẽ tự động trả lời “có” cho các câu hỏi xác nhận, giúp quá trình diễn ra liền mạch. Sau khi nâng cấp, bạn có thể kiểm tra phiên bản kernel mới bằng lệnh uname -r để xem các thay đổi.
Cài đặt Python 3
Tin vui là Ubuntu 20.04 đã được cài đặt sẵn Python 3. Đây là phiên bản mặc định và được tích hợp sâu vào hệ thống. Tuy nhiên, việc kiểm tra lại phiên bản để đảm bảo mọi thứ đều đúng là một bước không bao giờ thừa. Để kiểm tra phiên bản Python 3 hiện có, hãy gõ lệnh: python3 --version Bạn sẽ thấy kết quả trả về, ví dụ như Python 3.8.10. Đây là phiên bản đủ để chạy Jupyter Notebook một cách hoàn hảo. Trong trường hợp hiếm hoi máy của bạn chưa có Python 3, bạn có thể cài đặt nó một cách dễ dàng bằng lệnh: sudo apt install python3 Trên Ubuntu 20.04, lệnh python thường không được định nghĩa sẵn để tránh nhầm lẫn với Python 2. Thay vào đó, bạn phải sử dụng lệnh python3 một cách tường minh. Đây là một thay đổi tích cực, giúp đảm bảo mã của bạn luôn chạy trên môi trường Python 3 như mong đợi.

Cài đặt pip và các thư viện cần thiết
Khi đã có Python 3, bước tiếp theo là trang bị công cụ quản lý gói cho nó, đó chính là pip. Pip là chìa khóa để bạn có thể cài đặt Jupyter Notebook và hàng ngàn thư viện hữu ích khác từ kho lưu trữ Python Package Index (PyPI) một cách dễ dàng.
Cài đặt pip cho Python 3
Pip không được cài đặt sẵn cùng với Python trên Ubuntu 20.04, nhưng bạn có thể bổ sung nó chỉ bằng một dòng lệnh duy nhất. Mở Terminal và chạy lệnh sau: sudo apt install python3-pip Lệnh này sử dụng trình quản lý gói của hệ thống (apt) để cài đặt pip dành riêng cho python3. Quá trình này diễn ra khá nhanh chóng. Sau khi cài đặt xong, hãy kiểm tra để chắc chắn rằng pip đã hoạt động. Gõ lệnh sau để xem phiên bản của nó: pip3 --version Kết quả sẽ hiển thị phiên bản pip đã được cài đặt cùng với đường dẫn đến thư mục Python mà nó quản lý. Việc thấy được thông báo này xác nhận rằng bạn đã sẵn sàng để cài đặt các thư viện Python. Tương tự như python3, bạn nên sử dụng lệnh pip3 để đảm bảo đang làm việc với đúng phiên bản pip.
Các thư viện python cần thiết cho Jupyter Notebook
Jupyter Notebook hoạt động dựa trên một hệ sinh thái gồm nhiều gói Python khác nhau. Tuy nhiên, bạn không cần phải cài đặt chúng một cách riêng lẻ. Gói notebook chính là gói “tất cả trong một” mà chúng ta cần. Nó sẽ tự động kéo theo các thư viện phụ thuộc quan trọng khác. Các gói cốt lõi bao gồm:
- ipython: Một trình thông dịch Python tương tác nâng cao, là “trái tim” của kernel Jupyter.
- jupyter: Gói lõi cung cấp các cấu trúc và giao thức cơ bản cho hệ sinh thái Jupyter.
- notebook: Gói ứng dụng web cho phép bạn tạo và quản lý các file notebook trên trình duyệt.
Để cài đặt tất cả những thứ cần thiết, bạn chỉ cần dùng pip3 để cài đặt gói notebook: pip3 install notebook Pip sẽ tự động tìm và cài đặt phiên bản mới nhất của notebook cùng với tất cả các gói phụ thuộc của nó.

Cài đặt Jupyter Notebook và cấu hình môi trường làm việc
Bây giờ, chúng ta sẽ tiến hành cài đặt Jupyter Notebook vào môi trường người dùng của bạn. Đây là cách làm được khuyến khích vì nó không can thiệp vào các gói hệ thống và tránh được việc phải sử dụng quyền sudo khi quản lý thư viện Python, giúp tăng cường bảo mật.
Cài đặt Jupyter Notebook bằng pip
Thay vì cài đặt vào hệ thống chung, chúng ta sẽ cài đặt Jupyter Notebook chỉ cho người dùng hiện tại. Điều này giúp quản lý các gói dễ dàng hơn và tránh xung đột. Sử dụng lệnh sau trong Terminal: python3 -m pip install --user jupyter Hãy cùng phân tích lệnh này:
python3 -m pip: Đảm bảo chúng ta đang dùng pip của python3.
install --user: Tùy chọn quan trọng nhất, chỉ định rằng gói sẽ được cài đặt vào thư mục riêng của người dùng hiện tại (thường là ~/.local/).
Sau khi cài đặt, các tệp thực thi của Jupyter sẽ nằm trong ~/.local/bin. Bạn cần thêm thư mục này vào biến môi trường PATH để có thể chạy lệnh jupyter từ bất kỳ đâu. Thêm dòng sau vào cuối tệp ~/.bashrc của bạn: export PATH="$HOME/.local/bin:$PATH" Sau đó, chạy source ~/.bashrc để áp dụng thay đổi ngay lập tức.
Cấu hình cơ bản sau khi cài đặt
Để Jupyter Notebook hoạt động theo ý muốn, bạn nên tạo một tệp cấu hình mặc định. Chạy lệnh sau để thực hiện việc này: jupyter notebook --generate-config Lệnh này sẽ tạo một tệp mới tại ~/.jupyter/jupyter_notebook_config.py. Đây là nơi bạn có thể tùy chỉnh mọi thứ. Một trong những cấu hình đầu tiên bạn nên làm là đặt mật khẩu để bảo vệ Jupyter Notebook. Chạy lệnh: jupyter notebook password Hệ thống sẽ yêu cầu bạn nhập và xác nhận mật khẩu. Mật khẩu này sẽ được mã hóa và lưu lại. Ngoài ra, bạn có thể muốn thay đổi thư mục làm việc mặc định của Jupyter. Mở tệp jupyter_notebook_config.py và tìm dòng #c.NotebookApp.notebook_dir. Bỏ dấu # ở đầu dòng và thay đổi đường dẫn đến thư mục dự án của bạn, ví dụ: c.NotebookApp.notebook_dir = '/home/your_username/projects/python' Lưu tệp lại và các thiết lập của bạn sẽ được áp dụng trong lần khởi chạy tiếp theo.

Kiểm tra và khởi chạy Jupyter Notebook trên Ubuntu
Sau khi hoàn tất các bước cài đặt và cấu hình, đây là khoảnh khắc mà chúng ta mong chờ: khởi chạy và trải nghiệm Jupyter Notebook. Quá trình này rất đơn giản và sẽ giúp bạn xác nhận rằng mọi thứ đã được thiết lập chính xác.
Khởi chạy Jupyter Notebook từ terminal
Để bắt đầu, bạn chỉ cần mở Terminal và gõ một lệnh duy nhất: jupyter notebook Ngay sau khi bạn nhấn Enter, một loạt thông tin sẽ xuất hiện trên Terminal. Jupyter Notebook server đang được khởi chạy ở chế độ nền. Terminal sẽ hiển thị các thông tin quan trọng, bao gồm cả URL để bạn truy cập vào ứng dụng. URL này thường có dạng http://localhost:8888/?token=... hoặc http://127.0.0.1:8888/?token=.... Đoạn token là một chuỗi ký tự ngẫu nhiên dùng để xác thực phiên làm việc đầu tiên của bạn. Đừng đóng cửa sổ Terminal này, vì Jupyter server sẽ dừng lại nếu bạn làm vậy. Bạn cũng có thể sử dụng một số tham số dòng lệnh phổ biến. Ví dụ, nếu cổng 8888 đã được sử dụng, bạn có thể khởi chạy trên một cổng khác bằng lệnh: jupyter notebook --port 9999
Xác nhận truy cập trên trình duyệt
Thông thường, Jupyter Notebook sẽ tự động mở một tab mới trên trình duyệt web mặc định của bạn. Nếu không, bạn chỉ cần sao chép một trong các URL từ cửa sổ Terminal và dán nó vào thanh địa chỉ của trình duyệt. Khi trang được tải, bạn sẽ thấy giao diện chính của Jupyter. Nếu bạn đã thiết lập mật khẩu ở bước trước, bạn sẽ được yêu cầu nhập mật khẩu đó thay vì sử dụng token. Giao diện này hiển thị danh sách các tệp và thư mục trong thư mục làm việc của bạn. Để kiểm tra cuối cùng, hãy tạo một notebook mới. Nhấp vào nút “New” ở góc trên bên phải và chọn “Python 3“. Một tab mới sẽ mở ra với một notebook trống. Trong ô đầu tiên, hãy thử gõ một lệnh Python đơn giản như print("Hello, Bùi Mạnh Đức!") và nhấn Shift + Enter để chạy. Nếu kết quả Hello, Bùi Mạnh Đức! được in ra bên dưới, xin chúc mừng! Bạn đã cài đặt và khởi chạy thành công Jupyter Notebook.

Các lưu ý và cách xử lý lỗi phổ biến khi cài đặt
Ngay cả với một quy trình chuẩn, đôi khi bạn vẫn có thể gặp phải một vài sự cố không mong muốn. Đừng lo lắng, hầu hết các lỗi phổ biến đều có nguyên nhân rõ ràng và cách khắc phục đơn giản. Dưới đây là một số vấn đề thường gặp và cách xử lý chúng.
Lỗi không thể khởi chạy Jupyter Notebook
Đây là một trong những lỗi phổ biến nhất sau khi cài đặt.
- Nguyên nhân 1: Xung đột cổng (Port conflict)
- Triệu chứng: Terminal báo lỗi “Port 8888 is already in use”.
- Giải pháp: Lỗi này xảy ra khi một ứng dụng khác đã chiếm mất cổng 8888. Bạn chỉ cần khởi chạy Jupyter trên một cổng khác. Ví dụ, thử cổng 9000:
jupyter notebook --port 9000.
- Nguyên nhân 2: Thiếu thư viện hoặc đường dẫn (PATH) sai
- Triệu chứng: Terminal báo “command not found: jupyter”.
- Giải pháp: Lỗi này có nghĩa là hệ thống không tìm thấy tệp thực thi
jupyter. Nếu bạn đã cài đặt với tùy chọn --user, hãy chắc chắn rằng bạn đã thêm ~/.local/bin vào biến môi trường PATH trong tệp ~/.bashrc và đã chạy source ~/.bashrc.
- Nguyên nhân 3: Vấn đề quyền truy cập
- Triệu chứng: Lỗi liên quan đến “Permission denied”.
- Giải pháp: Tránh chạy
jupyter notebook với sudo. Nếu bạn đã lỡ cài đặt thư viện bằng sudo pip, hãy gỡ chúng ra và cài đặt lại với tùy chọn --user hoặc trong một môi trường ảo.
Lỗi kernel không khởi động hoặc kết nối thất bại
Lỗi này xảy ra khi giao diện web không thể giao tiếp được với “bộ não” xử lý mã Python.
- Triệu chứng: Trong notebook, bạn thấy thông báo “Kernel starting, please wait…” mãi không tắt, hoặc “Connection failed”.
- Nguyên nhân: Thường là do cài đặt Python hoặc gói
ipykernel bị lỗi. Có thể có sự không tương thích giữa các phiên bản thư viện.
- Giải pháp 1: Cài đặt lại kernel spec: Chạy lệnh sau để đăng ký lại kernel Python 3 với Jupyter.
python3 -m ipykernel install --user
- Giải pháp 2: Cài đặt lại các thư viện cốt lõi: Đây là giải pháp mạnh hơn, buộc
pip phải cài đặt lại các gói quan trọng. pip3 install --upgrade --force-reinstall ipython jupyter notebook Sau khi chạy lệnh này, hãy thử khởi động lại Jupyter Notebook.

Best Practices
Cài đặt thành công Jupyter Notebook chỉ là bước khởi đầu. Để có một trải nghiệm làm việc hiệu quả, an toàn và dễ quản lý trong dài hạn, bạn nên tuân thủ một vài quy tắc và thói quen tốt. Đây là những kinh nghiệm được đúc kết để giúp bạn trở thành một người dùng Jupyter chuyên nghiệp.
Luôn sử dụng môi trường ảo
Đây là lời khuyên quan trọng nhất. Môi trường ảo (virtual environment) cho phép bạn tạo ra các không gian làm việc Python độc lập cho từng dự án. Mỗi môi trường có bộ thư viện riêng, tránh xung đột phiên bản và giữ cho hệ thống của bạn sạch sẽ.
- Cách thực hiện: Trước khi bắt đầu một dự án mới, hãy tạo một môi trường ảo.
python3 -m venv my_project_env (Tạo môi trường)
source my_project_env/bin/activate (Kích hoạt môi trường)
pip install notebook pandas numpy (Cài đặt các thư viện cần thiết cho dự án)
- Lợi ích: Bạn có thể có một dự án dùng TensorFlow 1.x và một dự án khác dùng TensorFlow 2.x mà không gặp bất kỳ xung đột nào.
Không chạy Jupyter Notebook với quyền root
Tuyệt đối không chạy lệnh sudo jupyter notebook. Việc này sẽ tạo ra các tệp với quyền sở hữu của root, gây khó khăn cho việc quản lý sau này. Quan trọng hơn, nó tiềm ẩn một rủi ro bảo mật nghiêm trọng: bất kỳ mã độc nào được thực thi trong notebook cũng sẽ có quyền quản trị cao nhất trên hệ thống của bạn. Luôn chạy Jupyter với tài khoản người dùng thông thường.
Luôn cập nhật Python và các thư viện
Công nghệ luôn thay đổi. Các phiên bản mới của Python, Jupyter và các thư viện khác thường đi kèm với các bản vá bảo mật, sửa lỗi và tính năng mới. Hãy tạo thói quen cập nhật định kỳ.
- Cập nhật Jupyter và các thư viện chính:
pip install --upgrade jupyter notebook
- Cập nhật tất cả thư viện trong môi trường ảo:
pip list --outdated | cut -d' ' -f1 | xargs -n1 pip install -U
Sao lưu file cấu hình
Trước khi thực hiện bất kỳ thay đổi lớn nào trong tệp ~/.jupyter/jupyter_notebook_config.py, hãy tạo một bản sao lưu. Một lệnh đơn giản là đủ: cp ~/.jupyter/jupyter_notebook_config.py ~/.jupyter/jupyter_notebook_config.py.bak Nếu có sự cố xảy ra, bạn có thể dễ dàng khôi phục lại cấu hình cũ.
Thường xuyên kiểm tra và cập nhật bảo mật cho Ubuntu
Cuối cùng, đừng quên rằng Jupyter đang chạy trên nền tảng Ubuntu. Một hệ điều hành khỏe mạnh và an toàn là lớp bảo vệ vững chắc nhất. Hãy thường xuyên chạy sudo apt update và sudo apt upgrade để giữ cho hệ thống của bạn luôn được cập nhật.

Kết luận
Qua bài viết này, chúng ta đã cùng nhau đi qua một hành trình chi tiết để cài đặt và cấu hình Jupyter Notebook trên hệ điều hành Ubuntu 20.04. Từ việc chuẩn bị hệ thống, cập nhật Ubuntu, cài đặt Python 3 và pip, cho đến việc thiết lập Jupyter một cách an toàn và hiệu quả, mỗi bước đều được hướng dẫn cặn kẽ. Jupyter Notebook không chỉ là một công cụ, mà là một không gian sáng tạo, nơi bạn có thể biến những ý tưởng về dữ liệu và mã nguồn thành hiện thực một cách trực quan. Việc làm chủ quy trình cài đặt chính là bước đầu tiên để bạn khai phá tiềm năng vô hạn của nó.
Tôi khuyến khích bạn hãy bắt tay vào thực hành ngay theo những gì đã được chia sẻ. Đừng ngần ngại thử nghiệm, tùy chỉnh và thậm chí là mắc lỗi, vì đó là cách học tốt nhất. Giờ đây, khi môi trường lập trình Python của bạn đã sẵn sàng, bước tiếp theo là gì? Hãy bắt đầu khám phá các tính năng nâng cao của Jupyter, tìm hiểu về các thư viện khoa học dữ liệu mạnh mẽ như Pandas, Matplotlib, hoặc khởi động dự án Python đầu tiên của chính bạn. Chúc bạn thành công trên con đường chinh phục dữ liệu và lập trình!
