_If you wish to report errors or suggest improvements for this FAQ,
please go to our
[GitHub repository](https://github.com/ruby/www.ruby-lang.org/)
and open an issue or pull request._


## Cài đặt Ruby

Để biết thông tin mới nhất về tải xuống và cài đặt Ruby,
hãy xem trang [Cài đặt](/vi/documentation/installation/)
hoặc [Tải xuống](/vi/downloads/).

### Những hệ điều hành nào hỗ trợ Ruby?

<div class="not-prose bg-ruby-100 dark:bg-ruby-800 rounded-lg p-8 my-6">
  <div class="flex items-start gap-3">
    <svg class="w-6 h-6 text-ruby-700 dark:text-ruby-200 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
      <path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"/>
    </svg>
    <p class="text-sm text-ruby-700 dark:text-ruby-200 italic">
      This section or parts of it might be out-dated or in need of confirmation.
    </p>
  </div>
</div>


Ruby được phát triển trên Linux, và được viết bằng C khá đơn giản.
Nó chạy trên Linux và các hệ điều hành tương tự UNIX khác, macOS,
Windows, DOS, BeOS, Amiga, Acorn Risc OS, và OS/2.

### Tôi có thể lấy mã nguồn Ruby ở đâu?

Phiên bản mới nhất của Ruby có thể được tải xuống từ:
[www.ruby-lang.org/vi/downloads/](/vi/downloads/).
Các trang mirror cũng được liệt kê trên trang này.

Ngoài ra trên trang này còn có liên kết đến bản snapshot hàng đêm của cây phát triển.

### Tôi có thể truy cập cây mã nguồn phát triển không?

<div class="not-prose bg-ruby-100 dark:bg-ruby-800 rounded-lg p-8 my-6">
  <div class="flex items-start gap-3">
    <svg class="w-6 h-6 text-ruby-700 dark:text-ruby-200 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
      <path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"/>
    </svg>
    <p class="text-sm text-ruby-700 dark:text-ruby-200 italic">
      This section or parts of it might be out-dated or in need of confirmation.
    </p>
  </div>
</div>


Nếu bạn có ứng dụng CVS, bạn có thể lấy cây mã nguồn hiện tại bằng cách:

~~~
$ cvs -d :pserver:anonymous@cvs.netlab.co.jp:/home/cvs login
(Logging in to anonymous@cvs.netlab.co.jp)
CVS password: guest
$ cvs -d :pserver:anonymous@cvs.netlab.co.jp:/home/cvs co ruby
~~~

Nếu bạn không có CVS, bạn có thể lấy bản snapshot hàng đêm của mã nguồn
phát triển từ
[https://cache.ruby-lang.org/pub/ruby/snapshot.tar.gz](https://cache.ruby-lang.org/pub/ruby/snapshot.tar.gz).

### Làm thế nào để biên dịch Ruby?

Trên Unix, Ruby sử dụng hệ thống `autoconf` để cấu hình môi trường biên dịch.
Bạn không cần lệnh `autoconf` trên máy để biên dịch Ruby
từ bản phân phối; chỉ cần dùng các lệnh:

~~~
$ ./configure [configure options]
$ make
$ make test
$ make install
~~~

Bạn có thể cần quyền superuser để cài đặt Ruby nếu bạn không thay đổi
vị trí cài đặt mặc định (`/usr/local`). Bạn có thể xem danh sách đầy đủ
các tùy chọn `configure` bằng:

~~~
$ ./configure --help
~~~

Nếu bạn đang làm việc từ kho mã nguồn, bạn có thể cần chạy
`autoconf` trước khi chạy `configure`.

### Làm thế nào để cho Ruby biết thư viện của tôi ở đâu?

<div class="not-prose bg-ruby-100 dark:bg-ruby-800 rounded-lg p-8 my-6">
  <div class="flex items-start gap-3">
    <svg class="w-6 h-6 text-ruby-700 dark:text-ruby-200 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
      <path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"/>
    </svg>
    <p class="text-sm text-ruby-700 dark:text-ruby-200 italic">
      This section or parts of it might be out-dated or in need of confirmation.
    </p>
  </div>
</div>


Trên một số hệ thống, quá trình biên dịch có thể không tìm thấy thư viện được sử dụng
bởi các module mở rộng (ví dụ các thư viện `dbm`).

Bạn có thể cho Ruby biết nơi tìm thư viện bằng các tùy chọn cho `configure`.
Từ [\[ruby-talk:5041\]][ruby-talk:5041]:

~~~
$ ./configure --with-xxx-yyy=DIR
~~~

trong đó xxx là

~~~
opt           đường dẫn phần mềm bổ sung nói chung
dbm           đường dẫn cho thư viện dbm
gdbm          đường dẫn cho thư viện gdbm
x11           ...cho X11..
tk            ...cho Tk...
tcl           ...cho Tcl...
~~~

và yyy là

~~~
dir           chỉ định -I DIR/include -L DIR/lib
include       chỉ định -I DIR
lib           chỉ định -L DIR
~~~

Trên HP-UX, có thể gặp vấn đề khi biên dịch với `gcc`. Hãy thử sử dụng trình
biên dịch gốc thay thế. WATANABE Tetsuya khuyến nghị:

~~~
$ CC="cc -Ae" CFLAGS=-O ./configure --prefix=/opt/gnu
~~~

Cũng có thể gặp vấn đề với `sed` gốc của HP.
Ông khuyến nghị cài đặt phiên bản GNU tương đương.

[ruby-talk:5041]: https://blade.ruby-lang.org/ruby-talk/5041

### Có sẵn các bản biên dịch sẵn không?

Một gói tải xuống duy nhất chứa mọi thứ bạn cần để chạy Ruby trên
các hệ điều hành Windows có sẵn tại [RubyInstaller](https://rubyinstaller.org/).

[Reuben Thomas](mailto:Reuben.Thomas@cl.cam.ac.uk) viết:

> You could mention that there's a port to Acorn RISC OS, currently of v1.4.3.
> I made the port, and have no plans to maintain it, but I did send the
> patches to matz, so newer versions may well compile too.

### "cygwin", "mingw", và "djgpp" là gì?

<div class="not-prose bg-ruby-100 dark:bg-ruby-800 rounded-lg p-8 my-6">
  <div class="flex items-start gap-3">
    <svg class="w-6 h-6 text-ruby-700 dark:text-ruby-200 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
      <path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"/>
    </svg>
    <p class="text-sm text-ruby-700 dark:text-ruby-200 italic">
      This section or parts of it might be out-dated or in need of confirmation.
    </p>
  </div>
</div>


Ruby được viết để tận dụng bộ tính năng phong phú của môi trường Unix.
Thật không may, Windows thiếu một số hàm, và triển khai các hàm khác
theo cách khác. Vì vậy, cần có một lớp ánh xạ nào đó để chạy Ruby
(và các chương trình dựa trên Unix khác) trên Windows.

Bạn có thể gặp các phiên bản khác nhau của tệp thực thi Ruby sử dụng
các lớp ánh xạ wrapper khác nhau.

Phiên bản rbdj là phiên bản độc lập của bản nhị phân Windows của Ruby.
Nó sử dụng các công cụ DJ Delorie
([http://www.delorie.com](http://www.delorie.com)).

Phiên bản rbcw là bản nhị phân Windows của Ruby yêu cầu thư viện cygwin,
có tại [http://www.cygwin.com](http://www.cygwin.com) hoặc từ các
trang tải xuống Ruby. Cygwin vừa là một lớp giả lập vừa là một bộ
tiện ích ban đầu được sản xuất bởi Cygnus Solutions (nay thuộc Redhat).
Phiên bản cygwin của Ruby có lẽ có bộ tính năng đầy đủ nhất trên
Windows, nên hầu hết lập trình viên sẽ muốn sử dụng nó.

Để sử dụng phiên bản rbcw, bạn cần cài đặt tệp cygwin .dll riêng.
Sau khi cài đặt cygwin trên máy tính, hãy sao chép `cygwin1.dll` (nằm
trong thư mục con `bin` của bản phân phối cygwin) vào thư mục
`Windows\System32` (hoặc một nơi khác trên đường dẫn PATH của bạn).

Cảm ơn Anders Schneiderman đã cung cấp nền tảng cho phần mô tả này.

### Tại sao đồ họa Tk không hoạt động trên Windows?

<div class="not-prose bg-ruby-100 dark:bg-ruby-800 rounded-lg p-8 my-6">
  <div class="flex items-start gap-3">
    <svg class="w-6 h-6 text-ruby-700 dark:text-ruby-200 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
      <path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"/>
    </svg>
    <p class="text-sm text-ruby-700 dark:text-ruby-200 italic">
      This section or parts of it might be out-dated or in need of confirmation.
    </p>
  </div>
</div>


Tk đã được cài đặt đúng trên máy Windows của bạn chưa? Truy cập
[https://wiki.tcl-lang.org/page/Binary+Distributions](https://wiki.tcl-lang.org/page/Binary+Distributions#85b8647b1ec80c2fa1698c3c7e76204a944a95db2487347c51773f26b9dad6ae)
để tìm bản phân phối nhị phân Tcl/Tk biên dịch sẵn cho máy của bạn.

Các biến môi trường `TCL_LIBRARY` và `TK_LIBRARY` có đang trỏ đến
các thư mục chứa tcl và tk không?

Thư viện tk có nằm trong đường dẫn PATH của bạn không?
