make install
làm bất cứ điều gì Makefile
tác giả muốn nó làm. Thông thường, đến thời điểm này, đã quá muộn để thay đổi thư mục cài đặt, vì nó thường được biết đến trước đó , trong quá trình xây dựng, vì vậy các tệp trợ giúp và tệp cấu hình có thể được tham chiếu với tên đường dẫn chính xác.
Nhiều dự án sử dụng GNU Autotools để cố gắng cải thiện tính di động của chúng giữa các khác biệt về phần cứng và hệ điều hành. (Các biến thể Unix khác nhau sử dụng các tiêu đề hơi khác nhau để khai báo các hàm hơi lệch khỏi đường dẫn thông thường - ngoại trừ hầu hết các chương trình cần một hoặc một trong các biến thể được khai báo ở các vị trí khác nhau.)
Khi một dự án sử dụng Autotools, câu thần chú thông thường để cài đặt nó là:
./configure
make
make install
Các ./configure
điển hình cho phép bạn sử dụng tùy chọn dòng lệnh như --prefix /opt/apache
hoặc một cái gì đó tương tự để xác định một tên đường dẫn khác nhau. /usr/local/
là một mặc định phổ biến prefix
. Phần mềm được xây dựng tại địa phương dễ dàng hơn nhiều để sống ở một nơi và phần mềm được cung cấp phân phối để sống trong "thư mục chính" /usr/
/bin/
:, v.v. (Người đóng gói rất cẩn thận để không bao giờ chạm vào các tệp trong /usr/local/
- họ biết rằng nó chỉ dành riêng cho quản trị viên hệ thống.)
Dù sao, ./configure --prefix /path/to/new/prefix
sẽ đặt một biến Makefile
có sẵn khi biên dịch chương trình, sửa đổi các trang thủ công để chúng trỏ đến vị trí chính xác cho các tệp, sửa đổi tệp cấu hình, v.v. Vì vậy, make
sẽ xây dựng phần mềm cụ thể cho vị trí cài đặt bạn muốn và make install
sẽ cài đặt nó vào vị trí đó.
Hầu hết các chương trình có thể chạy ngay cả khi không có make install
bước cuối cùng - ./program_name
thường sẽ khởi động chúng. Đây chắc chắn là một điều mỗi dự án - một số người, như postfix
, qmail
vv, được tạo thành từ nhiều mảnh di chuyển khác nhau và dựa vào tất cả chúng làm việc cùng nhau. Những người khác, thích ls
hoặc su
có thể khép kín đủ để thực thi tốt từ thư mục mà họ đã xây dựng. (Điều này thường không hữu ích - nhưng đôi khi rất hữu ích.)
Tuy nhiên, không phải tất cả các dự án đều sử dụng Autotools - chúng rất lớn , phức tạp và khốn khổ để duy trì. Viết tay Makefile
đơn giản hơn nhiều để viết và cá nhân tôi nghĩ rằng chỉ cần phân phối đơn giản Makefile
với các biến cấu hình có sẵn sẽ dễ dàng hơn nhiều cho cả nhà phát triển và người dùng. (Mặc dù ./configure ; make ; make install
câu thần chú thực sự dễ dàng với người dùng khi nó hoạt động.)
make install
các bước từ quan điểm của lập trình viên.