2013-01-19 59 views
13

Khi tôi đi trên thiết bị đầu cuối (i cài đặt smlnj) và tôi gõ sml nó mang lại cho tôi lỗi sml: unable to determine architecture/operating system. Điều đó có nghĩa là gì??? Tôi đã cài đặt sml như thế này at this website, nhưng tôi không chắc chắn - là các hướng dẫn sai?
enter image description hereKhông thể xác định OS

Trả lời

12

Nếu bạn đang sử dụng OSX 10.8 trở lên (uname -r mang đến cho bạn một cái gì đó bắt đầu với 12 hoặc cao hơn), SML/NJ trước 110,75 không làm việc quá tốt mà không có một số tinh chỉnh thêm. Đó là một known issue có thể được cố định bằng cách thêm lựa chọn 10,8 (xem dòng 12 bên dưới) vào mã phát hiện hệ điều hành trong .arch-n-opsys:

: 
    10*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.6 
    11*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.7 
    12*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.8 
    13*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.9 Mavericks 
    14*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.10 Yosemite 
    15*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.11 El Capitan 
    16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.12 Sierra 
    17*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.13 High Sierra 

    *) exit 1;; 
esac;; 
+0

Các vấn đề tương tự là/đã có mặt cho kernel 3.x linux : s –

+4

Cụ thể, bạn cần thêm nó vào '/ usr/local/smlnj/bin/.arch-n-opsys'. (Đề cập đến nó ở đây vì liên kết bị hỏng, và vấn đề vẫn tồn tại với 110,79 và 10,11 El Capitan…) –

12

Vấn đề với trình cài đặt nhị phân OS X gần đây vẫn còn tồn tại chỉ tập trung chuyển đến 10,9 Mavericks và 10.10 phiên bản Yosemite của OS X. Mặc dù nguyên nhân gốc rễ được giải quyết trong phiên bản mã nguồn gần đây.

Đó là lý do tại sao một số thời gian giải quyết vấn đề này chỉ là về việc có một gói nhị phân mới được biên dịch. Và cho rằng bạn có thể tốt hơn là cài đặt smlnj qua homebrew. Bạn có thể làm điều đó với các lệnh sau:

brew update 
brew install smlnj 

Điều này sẽ biên dịch gói cho bạn để bạn có thể rảnh rỗi khi kiểm tra mã nguồn và tự biên soạn.

Chỉ cần để làm sạch hệ thống của bạn và tránh trùng lặp, bạn có thể loại bỏ các cài đặt trước đó chỉ đơn giản bằng cách làm như sau:

sudo rm -rf /usr/local/smlnj* 

Đối với dấu hoa thị: Tôi có một thư mục smlnj trần với 110,76 bên trong nó và một smlnj -110,75 thư mục Tôi đoán tôi đã cố gắng cài đặt hai phiên bản khác nhau trước đó ...

Bạn có thể cần phải xóa mọi liên kết mềm mà bạn đã tạo cho mình trỏ đến thư mục smlnj cũ hơn trực tiếp trong/usr/local/removed trong phần trước bậc thang.

+0

Tôi đã thử cài đặt brew, chỉ để nhận những điều sau đây: '/usr/local/Cellar/smlnj/110.77/SMLNJ_HOME/ bin/.run/run.x86-darwin: Lỗi nghiêm trọng - Ngoại lệ chưa được thực hiện SysErr với được nêu tại config/install.sh !!! Mã khởi động không thành công, không có hình ảnh heap (sml.x86-darwin) .' Đó rõ ràng là một vấn đề đã biết. https://github.com/Homebrew/homebrew/issues/32915 (Ngoài ra, bạn có thể nhắc mọi người cập nhật công thức sản xuất bia của họ trước khi cài đặt không? Thật dễ quên nếu bạn không phải là người dùng thường xuyên pha). –

+0

tăng gấp 10 lần tính đặc hiệu. quá xấu quy tắc bỏ phiếu thần tượng không áp dụng. ;-) – vwvan

0

Tôi gặp sự cố này sau khi vô tình cài đặt phiên bản SML/NJ cũ hơn. Tôi đã xóa cài đặt trước đó của mình bằng cách truy cập /usr/local/smlnj và cài đặt lại bằng cách sử dụng the pre-built system of OS X for SML/NJ 110.78. Tải xuống gần đây nhất có sẵn theo Tải xuốnghere, đó là những gì người tìm kiếm trong tương lai nên tham khảo, vì các giải pháp của tôi có thể sẽ lỗi thời vào thời điểm họ đến.

5

Như một cập nhật cho câu trả lời paxdiablo, nếu bạn đang chạy hệ điều hành MacOS Sierra (phiên bản 10.12), bạn cần phải nhập vào dòng sau để có được sml chạy:

16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.12 Sierra 

Vì vậy, với bối cảnh nhiều hơn nó sẽ giống như thế này :

 11*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.7 Lion 
     12*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.8 Mountain Lion 
     13*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.9 Mavericks 
     14*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.10 Yosemite 
     15*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # MacOS X 10.11 El Capitan 
     16*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.12 Sierra 
     17*) OPSYS=darwin; HEAP_OPSYS=darwin ;; # macOS 10.13 High Sierra 
     *) exit 1;; 
    esac;; 

SML/NJ phiên bản 110.79 có OS X lên El Capitan được định cấu hình nhưng Sierra vẫn bị thiếu.

+0

Lưu thịt xông khói của tôi. Cập nhật hệ điều hành giữa các phiên làm việc. Tất cả mọi thứ đã phá vỡ. Doh. Cảm ơn vì đã bảo lãnh. – brntsllvn

0

Sierra 10.12.6

Install SML qua Homebrew brew install smlnj

Sửa .bash_profile và thêm export PATH=/usr/local/Cellar/smlnj/110.81/bin:$PATH đến cuối của tập tin của bạn.

Sau source ~/.bash_profile rằng để áp dụng các con đường mới để hệ thống của bạn thêm địa điểm mới và sau đó biết nơi để tìm các tập tin cần thiết khi bạn gõ sml

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