Tôi đã cố gắng cài đặt Nền tảng Haskell và cabal-install
được cài đặt trên Linux trong không gian người dùng trên hệ thống không cài đặt gói GNU Multi-Precision (GMP).Sử dụng GHC, cabal với GMP được cài đặt trong không gian người dùng
Tôi đã cài đặt GHC-6.12.1 và GHCi bằng cách thiết lập LB_LIBRARY_PATH
để trỏ vào thư mục lib nơi tôi đã cài đặt GMP, nhưng sau đó gặp sự cố trong bước tiếp theo, nhận cabal-install
để hoạt động. Nó tiếp tục cố gắng (tĩnh) liên kết với GMP.
Điều này không thành công vì GMP chưa được cài đặt trong hệ thống và ld
không phải là đầu mối để tìm thư viện và không có biến môi trường (mà tôi biết) có thể nói ld nơi tìm người dùng GMP cài đặt, và (rõ ràng) không có cách nào để nói cấu hình Cabal để cung cấp cờ -L
có liên quan.
Sau nhiều lần tìm kiếm và hack không thành công, tôi nhấn vào ý tưởng đơn giản vô lý khi cài đặt tập lệnh shell ld
của riêng tôi gọi hệ thống ld
với cờ -L
thích hợp.
Đây là shell scripting 101, tất nhiên:
#!/bin/sh
/usr/bin/ld -L$HOME/gnu/lib "[email protected]"
Với kịch bản này được cài đặt trong một thư mục trên của tôi PATH
trước /usr/bin
tất cả những vấn đề dường như đã biến mất.
Đối với những người đã cài đặt GHC trong thư mục người dùng, họ sẽ có thể thực hiện lệnh cuối cùng với sudo. Khi tôi chỉnh sửa rts.pkg theo cách thủ công, tôi không biết loại cab được sử dụng trong trường nào, vì vậy tôi chỉ cần đặt thư mục thư viện bổ sung vào dòng riêng của nó sau bản gốc. – Emanuel
Dấu phân cách cho các thư viện thư viện này chỉ là không gian. –
Sao chép libgmp.so vào một trong các 'include-dirs' ví dụ: '/ home/dilawar/bin/lib/ghc-7.8.3/rts-1.0'. Nó làm việc cho tôi. – Dilawar