2009-10-01 14 views

Trả lời

11

Cách chống lừa đảo nhất là sử dụng chroot: có "cài đặt" chạy bên trong nhà tù chroot; tính toán một danh sách các tập tin mà bạn đã có trước khi cài đặt, và so sánh nó với danh sách các tập tin sau khi cài đặt.

Nhiều cài đặt sẽ hỗ trợ tùy chọn cấu hình --prefix và/hoặc biến môi trường DESTDIR. Bạn có thể sử dụng chúng cho phiên bản chroot chờ đợi nhẹ hơn (tin tưởng rằng quá trình cài đặt sẽ thất bại nếu nó cố gắng ghi vào một vị trí bên ngoài các cài đặt này nếu bạn chạy cài đặt với tư cách người dùng không có đặc quyền).

Một cách tiếp cận khác là thay thế chương trình cài đặt. Nhiều gói hỗ trợ một biến môi trường INSTALL, đó là chương trình cài đặt để sử dụng; có phiên bản truy tìm cài đặt xung quanh.

3

Nó khác với mọi dự án bạn chạy 'cài đặt'. Các tập tin được cài đặt được điều khiển bởi mục tiêu cài đặt trong Makefile đang được sử dụng. Đặt cược của bạn tốt nhất là mở Makefile và tìm kiếm 'install:' - từ đó bạn có thể xem những file nào sẽ được sao chép vào hệ thống của bạn.

13

Tôi vừa điều tra bản thân mình trong khi biên dịch phiên bản QEMU tùy chỉnh. Tôi đã sử dụng các phương pháp sau đây để tìm ra những gì đã được cài đặt và nơi (cũng như sử dụng nó như là một cơ sở cho một tập tin .deb):

mkdir /tmp/installer 
./configure --target-list=i386-softmmu 
make 
sudo make install DESTDIR=/tmp/installer 
cd /tmp/installer 
tree . 

Tree là một tiện ích mà đệ quy sẽ hiển thị các nội dung của một thư mục trong một cách hấp dẫn trực quan - sudo apt-get install tree dành cho người dùng Debian/Ubuntu

Hy vọng rằng sẽ giúp ai đó ... tôi mất một chút để giải quyết vấn đề, nhưng tôi thấy đây là cách hữu ích để hình dung những gì đang diễn ra .

+0

ls -R (cùng với bất kỳ tùy chọn định dạng nào khác bạn muốn) và tùy chọn -printf để tìm GNU cũng có liên quan để trả lời câu hỏi "có gì trong thư mục này". – dannysauer

0

Nếu chương trình bạn đang sử dụng không hỗ trợ DESTDIR hoặc --prefix (hoặc tương đương) cài đặt, tôi đã phát hiện ra rằng nó có thể có thể để xác định tập tin mới như sau:

  1. Bắt đầu với làm sạch hệ thống càng tốt (một hình ảnh VM mới là thích hợp hơn)
  2. Biên dịch phần mềm, đợi một vài phút.
  3. Cài đặt gói phần mềm.
  4. Tìm tệp được sửa đổi trong 5 phút qua: sudo find/-mmin -5 -type f (lệnh tìm có nhiều thông số cho truy vấn dựa trên sửa đổi tệp/lần tạo, nhưng điều này làm việc khá tốt đối với tôi, bạn chỉ cần thu hẹp khoảng thời gian sao cho bạn chọn các tập tin được tạo bởi trình cài đặt nhưng không có gì khác).
2

make uninstall có thể hiển thị các tệp khi nó xóa chúng nếu tác giả của hướng dẫn biên dịch cung cấp thông tin để cho phép gỡ cài đặt (đã một thời gian kể từ khi tôi làm như vậy để tôi không thể chắc chắn).

Cũng make -n install sẽ thực hiện "khô ru n" của quá trình cài đặt và có thể hợp lý để trích xuất thông tin từ kết quả của nó.

Các vấn đề liên quan