Bạn đang muốn bắt đầu với Ruby on Rails là gì, một trong những framework phát triển web mạnh mẽ và linh hoạt nhất? Cài đặt môi trường trên Ubuntu là gì 20.04 có thể là một thử thách, đặc biệt với những người mới. Việc quản lý các phiên bản Ruby khác nhau cho từng dự án thường gây ra xung đột và khó khăn không đáng có. Đây chính là lúc rbenv là gì, một công cụ quản lý phiên bản Ruby nhẹ và hiệu quả, trở thành giải pháp tối ưu. Nó giúp bạn chuyển đổi giữa các phiên bản Ruby một cách liền mạch mà không can thiệp vào hệ thống.
Trong bài viết này, AZWEB sẽ hướng dẫn bạn chi tiết từng bước cài đặt Ruby on Rails trên Ubuntu 20.04 bằng rbenv. Chúng ta sẽ cùng nhau đi từ khâu chuẩn bị môi trường, cài đặt các công cụ cần thiết, cho đến việc tạo dự án Rails đầu tiên và khắc phục các lỗi thường gặp. Hãy cùng bắt đầu hành trình chinh phục Ruby on Rails một cách bài bản và chuyên nghiệp nhé!
Chuẩn bị môi trường trên Ubuntu 20.04
Trước khi đi sâu vào cài đặt Ruby và Rails, bước đầu tiên và quan trọng nhất là chuẩn bị một môi trường làm việc sạch sẽ và đầy đủ trên Ubuntu 20.04. Một hệ thống được cập nhật và trang bị các gói cần thiết sẽ giúp quá trình cài đặt diễn ra suôn sẻ, tránh được những lỗi vặt không đáng có. Hãy xem đây như việc xây một nền móng vững chắc cho ngôi nhà ứng dụng của bạn.
Cập nhật hệ thống và cài đặt các gói cần thiết
Đầu tiên, hãy đảm bảo hệ thống của bạn được cập nhật lên phiên bản mới nhất. Việc này giúp vá các lỗ hổng bảo mật và đảm bảo tính tương thích của các gói phần mềm. Mở Terminal là gì của bạn và chạy lần lượt hai lệnh sau:
sudo apt update
sudo apt upgrade
Sau khi hệ thống đã được cập nhật, chúng ta cần cài đặt một số gói phụ thuộc. Đây là những công cụ và thư viện nền tảng mà Ruby cần để có thể biên dịch và hoạt động chính xác. Chạy lệnh dưới đây để cài đặt tất cả cùng một lúc:
sudo apt install git curl build-essential libssl-dev libreadline-dev zlib1g-dev
Lệnh này sẽ cài đặt GitHub là gì, cURL, và các thư viện cần thiết cho việc build Ruby từ mã nguồn.

Giới thiệu các phụ thuộc quan trọng
Bạn có thắc mắc tại sao chúng ta lại cần những gói phần mềm trên không? Mỗi gói đều đóng một vai trò quan trọng trong hệ sinh thái phát triển của bạn.
- git: Đây là hệ thống quản lý phiên bản phân tán không thể thiếu. Chúng ta sẽ dùng nó để tải (clone) rbenv và plugin ruby-build trực tiếp từ kho mã nguồn trên GitHub.
- curl: Một công cụ dòng lệnh mạnh mẽ để truyền dữ liệu. Nó thường được sử dụng để tải các file hoặc script cài đặt từ internet.
- build-essential: Gói này chứa đựng những công cụ cơ bản để biên dịch phần mềm từ mã nguồn, bao gồm trình biên dịch GCC và các tiện ích liên quan. Ruby sẽ được build từ mã nguồn, vì vậy đây là gói bắt buộc phải có.
- libssl-dev: Cung cấp các thư viện cần thiết cho việc mã hóa SSL/TLS. Nếu thiếu gói này, Ruby sẽ không thể kết nối an toàn qua HTTPS, gây lỗi khi tải các gem là gì.
- libreadline-dev: Thư viện này giúp cải thiện trải nghiệm dòng lệnh, cho phép bạn sử dụng các phím mũi tên để điều hướng và xem lại lịch sử lệnh trong các môi trường tương tác như IRB (Interactive Ruby).
- zlib1g-dev: Cung cấp các hàm nén và giải nén dữ liệu, một thư viện được nhiều gem khác nhau sử dụng.
Hiểu rõ vai trò của từng thành phần sẽ giúp bạn tự tin hơn khi xử lý các vấn đề phát sinh sau này.
Thiết lập rbenv để quản lý phiên bản Ruby
Sau khi đã chuẩn bị xong môi trường, giờ là lúc chúng ta cài đặt “nhân vật chính”: rbenv là gì. Thay vì cài đặt Ruby trực tiếp vào hệ thống, việc sử dụng rbenv cho phép bạn cài đặt nhiều phiên bản Ruby song song. Mỗi dự án có thể sử dụng một phiên bản Ruby riêng, giúp tránh xung đột và dễ dàng quản lý hơn rất nhiều. Hãy tưởng tượng rbenv như một người quản gia, giúp bạn sắp xếp gọn gàng các phiên bản Ruby khác nhau trong “ngôi nhà” Ubuntu.

Cài đặt rbenv và ruby-build
Quá trình cài đặt rbenv rất đơn giản, chúng ta sẽ sử dụng git để clone repository của nó về máy.
- Clone rbenv: Mở Terminal và chạy lệnh sau để tải rbenv vào thư mục
~/.rbenv:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
- Thêm rbenv vào PATH: Tiếp theo, bạn cần thêm rbenv vào biến môi trường
PATHđể có thể gọi lệnhrbenvtừ bất kỳ đâu. Chạy hai lệnh sau:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Những lệnh này sẽ tự động thêm các dòng cấu hình cần thiết vào cuối file .bashrc của bạn.
- Cài đặt plugin ruby-build: rbenv chỉ quản lý các phiên bản Ruby, còn việc cài đặt chúng là nhiệm vụ của plugin
ruby-build. Hãy clone plugin này vào thư mục plugins của rbenv:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
- Khởi động lại shell: Để các thay đổi về biến môi trường có hiệu lực, bạn cần khởi động lại shell bằng lệnh:
exec $SHELL
Kiểm tra và xác nhận cài đặt rbenv
Làm sao để biết rbenv đã được cài đặt đúng cách? Hãy thực hiện vài bước kiểm tra đơn giản. Đầu tiên, dùng lệnh type để xác nhận rằng rbenv đã được nạp dưới dạng một hàm của shell:
type rbenv
Bạn sẽ nhận được kết quả là “rbenv is a function”, điều này cho thấy mọi thứ đã sẵn sàng.
Tiếp theo, bạn có thể kiểm tra phiên bản của rbenv để chắc chắn rằng nó đã được cài đặt:
rbenv -v
Để yên tâm hơn, rbenv cung cấp một script “bác sĩ” giúp chẩn đoán các vấn đề tiềm ẩn. Hãy chạy nó bằng lệnh sau:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
Nếu tất cả các kiểm tra đều báo “OK”, xin chúc mừng! Bạn đã cài đặt thành công rbenv và sẵn sàng cho bước tiếp theo.
Cài đặt Ruby phiên bản mới nhất bằng rbenv
Với rbenv đã được thiết lập, việc cài đặt Ruby trở nên vô cùng linh hoạt và an toàn. Bạn có thể xem danh sách tất cả các phiên bản Ruby có sẵn và chọn phiên bản phù hợp nhất cho dự án của mình. Quá trình này đảm bảo phiên bản Ruby bạn cài sẽ được quản lý hoàn toàn bởi rbenv, không ảnh hưởng đến Ruby mặc định của hệ thống.
Tìm và chọn phiên bản Ruby phù hợp
Trước khi cài đặt, bạn nên xem qua danh sách các phiên bản Ruby mà ruby-build hỗ trợ. Việc này giúp bạn chọn được phiên bản ổn định và mới nhất. Sử dụng lệnh sau:
rbenv install -l
Lệnh này sẽ liệt kê một danh sách dài các phiên bản có sẵn, bao gồm cả các phiên bản chính thức, phiên bản preview, và các biến thể khác như JRuby hay TruffleRuby.

Đối với các dự án mới, bạn nên chọn phiên bản ổn định mới nhất (ví dụ: 3.2.2, 3.1.4 tại thời điểm viết bài). Tránh các phiên bản có đuôi -dev hoặc -rc (Release Candidate) cho môi trường production vì chúng chưa phải là bản chính thức.
Thực hiện cài đặt và thiết lập Ruby mặc định
Sau khi đã chọn được phiên bản mong muốn, ví dụ là 3.2.2, hãy tiến hành cài đặt nó bằng lệnh:
rbenv install 3.2.2
Quá trình này sẽ tải mã nguồn của Ruby và biên dịch nó trên máy của bạn, vì vậy có thể mất vài phút. Hãy kiên nhẫn chờ đợi đến khi quá trình hoàn tất.
Khi cài đặt xong, phiên bản Ruby này đã có trên hệ thống nhưng chưa được kích hoạt. Bạn cần thiết lập nó làm phiên bản mặc định toàn cục (global). Điều này có nghĩa là mỗi khi bạn mở một Terminal mới, đây sẽ là phiên bản Ruby được sử dụng.
rbenv global 3.2.2
Bây giờ, hãy kiểm tra lại phiên bản Ruby hiện tại để xác nhận mọi thứ đã hoạt động chính xác:
ruby -v
Nếu kết quả trả về là ruby 3.2.2..., bạn đã cài đặt và cấu hình Ruby thành công thông qua rbenv.
Cài đặt Rails sau khi hoàn thành Ruby
Khi đã có một môi trường Ruby sạch sẽ được quản lý bởi rbenv, việc cài đặt Rails chỉ còn là vài bước đơn giản. Rails được phân phối dưới dạng một “gem” – một gói thư viện trong hệ sinh thái Ruby. Chúng ta sẽ sử dụng công cụ quản lý gem mặc định đi kèm với Ruby để cài đặt framework này.

Cài đặt gem Rails
Một trong những quy tắc quan trọng khi làm việc với rbenv là không bao giờ sử dụng sudo để cài đặt gem. Khi bạn chạy gem install, các gem sẽ được cài đặt vào thư mục của phiên bản Ruby hiện tại do rbenv quản lý, không cần quyền quản trị. Việc dùng sudo sẽ cố gắng cài đặt gem cho Ruby hệ thống, phá vỡ mục đích của rbenv và gây ra các lỗi về quyền truy cập.
Để cài đặt phiên bản Rails mới nhất, hãy chạy lệnh sau:
gem install rails
Lệnh này sẽ tự động tải Rails và tất cả các gem phụ thuộc cần thiết. Quá trình này có thể mất một chút thời gian tùy thuộc vào tốc độ mạng của bạn.
Sau khi cài đặt xong một gem cung cấp các lệnh mới (như rails), bạn cần thông báo cho rbenv biết về sự thay đổi này. Lệnh rbenv rehash sẽ quét qua các tệp thực thi của gem và tạo các “shim” tương ứng, giúp shell của bạn tìm thấy chúng.
rbenv rehash
Mặc dù các phiên bản rbenv mới hơn thường tự động chạy rehash, việc thực hiện thủ công vẫn là một thói quen tốt để đảm bảo mọi thứ được cập nhật.
Xác nhận phiên bản Rails và kiểm tra môi trường
Sau khi quá trình cài đặt hoàn tất, bước cuối cùng là xác nhận rằng Rails đã sẵn sàng để sử dụng. Bạn có thể kiểm tra phiên bản Rails vừa cài đặt bằng lệnh:
rails -v
Nếu Terminal hiển thị phiên bản Rails (ví dụ: Rails 7.0.8), xin chúc mừng! Bạn đã cài đặt thành công Ruby on Rails trên môi trường Ubuntu 20.04 của mình. Hệ thống của bạn giờ đã sẵn sàng để bắt đầu xây dựng những ứng dụng web tuyệt vời.
Kiểm tra và xác nhận cài đặt thành công
Lý thuyết là vậy, nhưng cách tốt nhất để đảm bảo mọi thứ hoạt động trơn tru là tạo và chạy thử một dự án Rails thực tế. Bước kiểm tra cuối cùng này sẽ xác nhận rằng tất cả các thành phần từ Ruby, gem, đến Rails đều được liên kết và hoạt động chính xác với nhau. Đây là khoảnh khắc “hello world” của một lập trình viên Rails.
Đầu tiên, hãy di chuyển đến thư mục bạn muốn chứa dự án của mình, ví dụ như thư mục ~/projects. Sau đó, sử dụng lệnh rails new để tạo một ứng dụng mới. Chúng ta hãy đặt tên cho nó là my_awesome_app:
rails new my_awesome_app
Rails sẽ tự động tạo một cấu trúc thư mục hoàn chỉnh với tất cả các tệp cần thiết cho một ứng dụng web.

Sau khi quá trình tạo dự án hoàn tất, hãy di chuyển vào thư mục của ứng dụng:
cd my_awesome_app
Bây giờ, bạn đã ở bên trong dự án Rails của mình. Để khởi động máy chủ web, hãy chạy lệnh sau:
rails server
Hoặc bạn có thể dùng lệnh bin/rails server để chắc chắn rằng bạn đang sử dụng phiên bản Rails đi kèm với dự án. Máy chủ Puma (mặc định của Rails) sẽ khởi động và lắng nghe ở cổng 3000.

Mở trình duyệt web của bạn và truy cập vào địa chỉ http://localhost:3000. Nếu bạn thấy trang chào mừng của Ruby on Rails, điều đó có nghĩa là toàn bộ quá trình cài đặt đã thành công mỹ mãn!
Để tổng kết lại, bạn có thể chạy các lệnh sau để kiểm tra lại toàn bộ môi trường của mình:
rbenv versions: Hiển thị các phiên bản Ruby đã cài và phiên bản đang được sử dụng.ruby -v: Kiểm tra phiên bản Ruby mặc định.gem -v: Kiểm tra phiên bản của RubyGems.rails -v: Kiểm tra phiên bản của Rails.
Nếu tất cả các lệnh đều trả về kết quả mong muốn, bạn đã có một nền tảng vững chắc để bắt đầu phát triển.
Hướng dẫn khắc phục các lỗi phổ biến trong quá trình cài đặt
Ngay cả khi đã tuân thủ cẩn thận các bước, đôi khi bạn vẫn có thể gặp phải một vài lỗi không mong muốn. Đừng lo lắng, đây là một phần bình thường của quá trình học hỏi. Dưới đây là hai lỗi phổ biến nhất và cách để bạn nhanh chóng khắc phục chúng.
Lỗi thiếu thư viện phụ thuộc khi cài Ruby
Đây là lỗi thường gặp nhất, đặc biệt là khi bạn cài đặt Ruby trên một hệ thống Ubuntu mới tinh.
- Dấu hiệu nhận biết: Khi bạn chạy lệnh
rbenv install <version>, quá trình biên dịch sẽ bị dừng lại giữa chừng và hiển thị thông báo lỗiBUILD FAILED. Kèm theo đó là một đường dẫn đến tệp log, ví dụ:/tmp/ruby-build.202310271030.log. - Nguyên nhân: Quá trình biên dịch Ruby cần một số thư viện hệ thống (như
libyaml-devhoặclibffi-dev) nhưng không tìm thấy chúng. - Cách khắc phục:
- Đọc kỹ tệp log lỗi bằng lệnh
cathoặclesstheo đường dẫn được cung cấp. - Tìm các dòng có chứa “error” hoặc “missing”. Thông thường, log sẽ chỉ rõ thư viện nào đang bị thiếu.
- Sử dụng
sudo apt installđể cài đặt thư viện đó. Ví dụ, nếu lỗi liên quan đến YAML, bạn chạysudo apt install libyaml-dev. - Sau khi cài đặt xong thư viện còn thiếu, hãy thử chạy lại lệnh
rbenv install <version>.
- Đọc kỹ tệp log lỗi bằng lệnh

Lỗi cấu hình PATH và rbenv không nhận diện version Ruby
Lỗi này xảy ra khi shell của bạn không “nhìn thấy” rbenv hoặc các phiên bản Ruby do nó quản lý.
- Dấu hiệu nhận biết:
- Bạn gõ
rbenvvà nhận được thông báocommand not found. - Bạn chạy
ruby -vvà nó hiển thị phiên bản Ruby của hệ thống (ví dụruby 2.7.0p0) thay vì phiên bản bạn đã cài bằng rbenv.
- Bạn gõ
- Nguyên nhân: Các dòng cấu hình
PATHvàeval "$(rbenv init -)"chưa được thêm vào file cấu hình shell (.bashrc) một cách chính xác, hoặc bạn chưa khởi động lại shell sau khi thay đổi. - Cách khắc phục:
- Mở tệp
~/.bashrcbằng một trình soạn thảo văn bản (ví dụnano ~/.bashrc). - Kiểm tra xem hai dòng sau có tồn tại ở cuối tệp không:
export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" - Nếu không có, hãy thêm chúng vào. Nếu có nhưng bị sai, hãy sửa lại cho đúng.
- Lưu tệp và đóng trình soạn thảo.
- Quan trọng nhất: Khởi động lại shell của bạn bằng cách chạy
exec $SHELLhoặc đóng và mở lại cửa sổ Terminal.
- Mở tệp
Việc hiểu và xử lý được các lỗi này sẽ giúp bạn trở nên tự tin hơn rất nhiều khi làm việc với môi trường dòng lệnh.
Best Practices
Cài đặt thành công chỉ là bước khởi đầu. Để duy trì một môi trường phát triển Ruby on Rails lành mạnh, hiệu quả và không xung đột, bạn nên tuân thủ một vài quy tắc và thói quen tốt. Những “best practices” này sẽ giúp bạn tiết kiệm rất nhiều thời gian và tránh được những cơn đau đầu trong tương lai.
- Luôn cập nhật rbenv và ruby-build thường xuyên: Các phiên bản Ruby mới được phát hành liên tục. Để có thể cài đặt chúng, bạn cần cập nhật
ruby-build. Hãy chạy hai lệnh sau định kỳ (ví dụ mỗi tháng một lần) để lấy về phiên bản mới nhất của các công cụ này:git -C ~/.rbenv pull git -C ~/.rbenv/plugins/ruby-build pull - Sử dụng phiên bản Ruby cụ thể cho từng dự án: Thay vì chỉ dùng
rbenv global, hãy tập thói quen dùngrbenv localcho mỗi dự án. Khi bạn ở trong thư mục dự án, hãy chạy lệnhrbenv local 3.2.2. Lệnh này sẽ tạo một file.ruby-versionngay trong thư mục đó. Bất cứ khi nào bạncdvào thư mục này, rbenv sẽ tự động chuyển sang phiên bản Ruby được chỉ định, đảm bảo mọi thành viên trong nhóm đều làm việc trên cùng một môi trường.

- Không cài đặt gem bằng sudo: Chúng tôi không thể nhấn mạnh điều này đủ. Luôn luôn sử dụng
gem install <gem_name>, không bao giờ dùngsudo gem install. Sử dụng sudo sẽ phá vỡ sự cô lập mà rbenv tạo ra, gây ra các vấn đề về quyền và xung đột phiên bản khó gỡ. - Kiểm tra kỹ các thư viện phụ thuộc trước khi bắt đầu: Trước khi chạy
rbenv install, hãy đảm bảo bạn đã chạy lệnhsudo apt install git curl build-essential ...một cách đầy đủ. Thói quen này giúp bạn tránh được 90% lỗiBUILD FAILEDvà tiết kiệm thời gian chờ đợi biên dịch lại.
Bằng cách áp dụng những thực hành tốt này, bạn không chỉ giữ cho môi trường phát triển của mình luôn sạch sẽ mà còn làm việc hiệu quả hơn, đặc biệt là khi tham gia vào các dự án lớn hoặc cộng tác với người khác.
Kết luận
Vậy là chúng ta đã cùng nhau hoàn thành một hành trình chi tiết qua từng bước cài đặt Ruby on Rails trên Ubuntu 20.04 bằng công cụ quản lý phiên bản rbenv. Từ việc chuẩn bị và cập nhật hệ thống, cài đặt các thư viện phụ thuộc, thiết lập rbenv, cho đến cài đặt Ruby và Rails, mỗi bước đều đóng vai trò quan trọng trong việc xây dựng một nền tảng phát triển vững chắc và linh hoạt. Hy vọng rằng với hướng dẫn này, những khó khăn ban đầu khi thiết lập môi trường đã không còn là rào cản đối với bạn.
AZWEB khuyến khích bạn không chỉ đọc mà hãy bắt tay vào thực hành ngay. Hãy thử tạo một dự án Rails nhỏ, viết vài dòng code, và trải nghiệm sức mạnh của framework này. Quá trình tự mình thực hiện và khắc phục lỗi (nếu có) chính là cách học hiệu quả nhất.
Sau khi đã làm chủ được quá trình cài đặt, bạn có thể bắt đầu khám phá sâu hơn về kiến trúc MVC của Rails, tìm hiểu về Active Record, hoặc khám phá các gem hữu ích để mở rộng chức năng cho ứng dụng của mình. Chúc bạn có những trải nghiệm thú vị và xây dựng được nhiều sản phẩm tuyệt vời với Ruby on Rails