2011-12-09 23 views
5

Tôi mới dùng cl, và tôi chỉ học cách cài đặt gói bằng cách sử dụng asdf-install, nhưng tôi không biết nó hoạt động như thế nào, tôi tự hỏi làm thế nào gói có thể cài đặt manully, sau đó tôi có thể hiểu việc sử dụng các tập tin trong thư mục gốc của mã nguồn, cảm ơn.Cách cài đặt gói mới cho lisp chung mà không cần asdf-install

Trả lời

17

Câu trả lời ngắn: Chỉ cần sử dụng quicklisp.

Câu trả lời dài: nếu bạn muốn hiểu, làm thế nào gói, hoặc - chính xác hơn - hệ thống ASDF, được đặt ra, đó là một ý tưởng tốt. Trên thực tế, không có gì khó khăn về điều đó.

Mỗi hệ thống ASDF phải có tệp định nghĩa hệ thống với tiện ích mở rộng là .asd. Tệp này đặt tên cho tệp khác của hệ thống với đường dẫn của chúng tương ứng với tệp .asd, các loại của chúng (theo mặc định: mã nguồn lisp) và các phụ thuộc. Lisp của bạn nên biết nơi để tìm tập tin định nghĩa hệ thống. Trong ASDF có 2 cách để thông báo cho Lisp về nó: thêm thư mục, trong đó bạn lưu trữ tập tin hoặc liên kết tới nó, vào danh sách asdf:*central-registry* hoặc thiết lập các tập tin cấu hình đặc biệt (gọi là source-registry - thêm vào đó trong ASDF manual).

Bây giờ nếu bạn muốn cài đặt hệ thống bằng tay, chỉ cần tải xuống nguồn của nó, trích xuất chúng vào một số thư mục (như trong /home/user/lib/lisp/ - bạn có thể nhận được /home/user/lib/lisp/cl-ppcre-2.3.1/, bên trong đó có cl-ppcre.asd). Để cho Lisp của bạn tìm hiểu về nó chỉ (push "/home/user/lib/lisp/cl-ppcre-2.3.1/" asdf:*central-registry*) (và đừng quên dấu gạch chéo sau - nó được yêu cầu), và sau đó bạn có thể tải hệ thống với (asdf:oos 'asdf:load-op :cl-ppcre).

Bạn cũng có thể thiết lập một thư mục đặc biệt, nơi bạn sẽ liên kết hệ thống hiện tại của mình, như /home/user/.lisp/ và thêm nó vào *central-registry* tại loại khởi động Lisp (ví dụ: .sbclrc). Bây giờ nếu bạn muốn tạm thời ghi đè lên một số hệ thống được liên kết trong thư mục này, nói rằng, với phiên bản mới hơn, bạn không cần phải hủy liên kết bất kỳ thứ gì - chỉ cần đẩy đường dẫn đến hệ thống thay thế đến *central-registry*.

Quicklisp thực hiện tất cả những điều đó cho bạn và hơn thế nữa ...

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