Đến từ thế giới của C và C ++, hầu hết các hệ thống xây dựng đều có một install
mục tiêu, đáng chú ý là Makefiles ( ví dụ như GNU được đề xuất ) hoặc CMake . Mục tiêu này sao chép các tệp thời gian chạy (tệp thực thi, thư viện, ...) trong hệ điều hành (ví dụ: trong C:\Program Files\
Windows).
Điều này cảm thấy thực sự khó khăn, vì đối với tôi , trách nhiệm của hệ thống xây dựng là không cài đặt chương trình (đây thực sự là trách nhiệm của hệ điều hành / quản lý gói). Nó cũng có nghĩa là hệ thống xây dựng hoặc tập lệnh xây dựng phải biết tổ chức các chương trình đã cài đặt, với các biến môi trường, biến đăng ký, liên kết tượng trưng, quyền, v.v.
Tốt nhất, các hệ thống xây dựng nên có một release
mục tiêu sẽ tạo ra một chương trình có thể cài đặt (ví dụ .deb
hoặc .msi
), sau đó vui lòng yêu cầu hệ điều hành cài đặt chương trình đó. Nó cũng sẽ cho phép người dùng gỡ cài đặt mà không cần phải gõ make uninstall
.
Vì vậy, câu hỏi của tôi: tại sao hệ thống xây dựng thường khuyên bạn nên có một install
mục tiêu?
make install
thường cài đặt bên dưới /usr/local
(hoặc thậm chí /opt
) là các thư mục không được xử lý bởi "hệ thống quản lý gói / hệ điều hành lõi". Không biết liệu Windows có một số quy ước tương tự mặc dù.
make install
không có ý nghĩa gì khi chúng ta nói về biên dịch chéo
DESTDIR
.