2011-01-11 27 views
10

Tôi đang sử dụng DBI và DBD :: SQLite, và bây giờ tôi muốn sử dụng tính năng R * Tree của SQLite. Vì tính năng này không được biên soạn bởi DBD :: SQLite theo mặc định, tôi phải thêm một biến số -DSQLITE_ENABLE_RTREE=1 vào biến số @CC_DEFINE trong DBD :: Makefile.PL của SQLite. Nếu tôi thực hiện 'perl Makefile.PL & & hãy & & cài đặt', mọi thứ hoạt động tốt trên máy tính của tôi, nhưng điều này cuối cùng cần phải được triển khai/phân phối cho người dùng cuối.Thực hành tốt nhất cho việc sử dụng mô-đun thay đổi nhỏ từ CPAN?

Tôi nên làm gì trong trường hợp như thế này? Tôi có nên sao chép nguồn, grep nguồn và tạo DBD :: SQLite :: WithRTree không? Tạo một phiên bản riêng của DBD :: SQLite 1.31.1 (Trường hợp 1.31 là phiên bản hiện tại của DBD :: SQLite)? Có lẽ một cách tốt hơn hoàn toàn?

Tất cả các bản phân phối khác trong dự án được triển khai/phân phối qua CPAN ngoài công cộng :: Mini mirror + CPAN :: Mini :: Inject.

Trả lời

11

tôi có thêm một '-DSQLITE_ENABLE_RTREE = 1' vào biến @CC_DEFINE trong DBD :: SQLite của Makefile.PL

Bạn đang làm sai này, perl Makefile.PL DEFINE='-DSQLITE_ENABLE_RTREE=1' công trình. Đây là tài liệu trong ExtUtils::MakeMaker. Bây giờ bạn đã biết rằng, một giải pháp đơn giản liên quan đến Distroprefs có thể sẽ xảy ra.

3

Đối với vấn đề tương tự, tôi đã cài đặt phân phối của biến đổi trong một thư mục riêng biệt (mà không thay đổi bất kỳ tên mô-đun), và sử dụng use lib qw(the/special/directory) hoặc thiết $PERL5LIB cho các kịch bản mà cần phải sử dụng các module nâng cao.

Chỉnh sửa tên của mô-đun cũng sẽ thực hiện công việc, nhưng âm thanh đó giống như rất nhiều công việc để thực hiện và thử nghiệm.

+1

Và giữ kỷ lục cẩn thận về những gì bạn đã thay đổi – justintime

0

Bạn có thể làm điều này:

cpan 
o conf makepl_arg "DEFINE='-DSQLITE_ENABLE_RTREE=1'" 
o conf commit 

CPAN sau đó sẽ vĩnh viễn thêm rằng DEFINE vào phía trước của tất cả Makefile.PL của bạn gọi.

Vì vậy, nó nên chỉ là

cpan DBD::SQLite 

Và tùy chọn makefile của bạn nên được nhồi vào dòng biên dịch của bạn

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