Thứ sáu, 30/08/2013 | 00:00 GMT+7

Cách biên dịch và cài đặt các gói từ nguồn bằng Make trên VPS


Giới thiệu

Khi làm việc trên máy Linux hoặc VPS, các gói bạn cần thường có sẵn thông qua apt hoặc một trình quản lý gói khác. Nhưng đôi khi nó xảy ra rằng bạn cần một gói không có sẵn từ repository hoặc đôi khi bạn chỉ cần một version mới hơn, hiện đại hơn version hiện có.

Trong ví dụ này, ta sẽ biên dịch và cài đặt curl từ nguồn. Những điều cơ bản được sử dụng trong ví dụ này áp dụng cho phần lớn các gói và có thể được áp dụng trong hầu hết các trường hợp.

Yêu cầu

Để biên dịch các nguồn trên Linux, bạn cần gói có tên "build-essential" trên các hệ thống dựa trên Debian và "Development Tools" trên CentOS, vì nó chứa các trình biên dịch và thư viện gcc / g ++ cần thiết để biên dịch các gói. Để cài đặt cái này trên Debian và Ubuntu, hãy chạy:

apt-get install build-essential

Và trên CentOS chạy:

yum groupinstall "Development Tools"

Một số gói yêu cầu bạn phải cài đặt một số phụ thuộc để được biên dịch hoặc chạy sau đó. Khi sử dụng apt hoặc một trình quản lý gói khác, nó thường xử lý việc này cho bạn. Khi tự biên dịch các gói, bạn phải luôn kiểm tra tài liệu và đảm bảo bạn đã cài đặt các gói bắt buộc trước đó.

Vì ta trong ví dụ này đang biên dịch curl nên bạn sẽ có mọi thứ bạn cần. Tuy nhiên, bạn cần quyền truy cập root hoặc sudo trên VPS bạn đang sử dụng để cài đặt mã nguồn đã biên dịch sau đó.

Lấy và biên dịch mã nguồn trên VPS

Download Tarball

Điều đầu tiên ta cần là download mã nguồn curl. Có rất nhiều cách khác nhau để tải mã nguồn, nhưng trong ví dụ này, ta sẽ sử dụng tarball có sẵn từ trang web curl . Bạn có thể thay thế url trong lệnh tiếp theo bằng version hiện tại của curl nếu bạn muốn. Chỉ cần nhớ rằng nó phải là liên kết đến file tar.gz. Khi đã sẵn sàng , hãy tiếp tục và chạy:

wget -O curl.tar.gz http://curl.haxx.se/download/curl-7.32.0.tar.gz

Thao tác này sẽ download và lưu nguồn dưới dạng curl.tar.gz trong folder hiện tại của bạn.

Tiếp theo, ta cần extract tarball. Để làm điều này, hãy chạy:

tar -xvzf curl.tar.gz

Nguồn sẽ nằm trong một folder có tên "curl-" và sau đó là số version . Nếu bạn gõ:

ls
nó sẽ xuất ra thông tin như thế này:
user@server:~/curl ls
curl-7.32.0  curl.tar.gz

Trong trường hợp của tôi, folder được gọi là "curl-7.32.0", do đó để vào folder tôi gõ:

cd curl-7.32.0

Cấu hình và biên dịch nguồn

Bên trong folder , bạn sẽ nhận thấy rất nhiều file khác nhau. Hiện tại, ta sẽ chỉ tập trung vào file có tên "config". "config" là một tập lệnh được thiết kế để hỗ trợ một chương trình chạy trên nhiều máy tính khác nhau. Hãy tiếp tục và chạy:

./configure

Điều này sẽ tự động sử dụng các biến hệ thống của bạn để cấu hình và sẵn sàng nguồn cho VPS của bạn. Về cơ bản, nó phù hợp với các thư viện mà chương trình yêu cầu, với những thư viện được cài đặt trên hệ thống. Bằng cách làm này, trình biên dịch biết nơi tìm kiếm các thư viện được yêu cầu bởi nguồn, hoặc trong trường hợp này là bằng curl. Bên cạnh đó, nó cũng sẽ tìm ra nơi để cài đặt gói sau đó. Khi hoàn tất, nó sẽ tạo ra một file có tên Makefile với tất cả thông tin trong đó. Đến đây bạn đã sẵn sàng để biên dịch nguồn. Để biên dịch nó, hãy chạy lệnh:

make

Điều này sẽ biên dịch kết quả nguồn rất nhiều rác sang console của bạn. Cứ tiếp tục và để nó kết thúc. Nó sẽ mất khoảng một phút hoặc lâu hơn. Khi hoàn tất, bạn nên sẵn sàng cài đặt. Khi chạy root:

make install

Bây giờ Make sẽ làm theo hướng dẫn trong Makefile để cài đặt gói đã biên dịch.

Trong hầu hết các trường hợp, bạn nên làm ngay bây giờ. Bạn có thể tiếp tục và gõ curl ngay bây giờ. Nếu curl đã được cài đặt đúng cách, bạn sẽ thấy thông tin như sau:

curl: try 'curl --help' or 'curl --manual' for more information

Nếu nó xuất ra lỗi bash, hãy tiếp tục và nhập:

ln -s /usr/local/bin/curl /usr/bin/curl

Thao tác này sẽ tạo một liên kết tại / usr / bin / curl kết nối nó với / usr / local / bin / curl. Điều này sẽ cho phép bạn chạy curl bằng cách chỉ cần gõ curl trong console . Điều này thường sẽ được thực hiện tự động, nhưng trong một số trường hợp, tập lệnh cấu hình không thể tìm thấy vị trí cài đặt phù hợp. Đến đây bạn có thể tiếp tục và nhập:

curl -V

Thao tác này sẽ xuất ra version uốn tóc hiện tại của bạn.

Nó sẽ trả về một kết quả như thế này:

user@server:~/curl curl -V
curl 7.32.0 (x86_64-unknown-linux-gnu) libcurl/7.26.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.2 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp
Features: Debug GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

Xin chúc mừng! Đến đây bạn đã biên dịch thành công và cài đặt curl từ nguồn.

Kết luận

Các bước bạn đã sử dụng trong ví dụ này phù hợp với phần lớn các gói và do đó được dùng lại trong nhiều trường hợp. Tuy nhiên, bạn nên luôn đọc trước tài liệu của gói bạn muốn cài đặt. Nó thường cho bạn biết những phụ thuộc nào cần thiết và đôi khi nó thậm chí còn cho bạn biết những lệnh nào cần chạy. Chỉ cần luôn nhớ: ./configure , sau đó make và sau đó make install .

Đệ trình bởi: Mathias Jensen

Tags:

Các tin liên quan