F # никогда не работал для меня под Linux. Сегодня с Mono 2.8 и выпуском F # в ноябре 2010 года (который, как ни странно, имеет тот же номер версии, что и предыдущий выпуск ?!), я получаю:
$ sudo ./install-mono.sh
In order to add FSharp.Core.dll to the Mono GAC the DLL needs to be
re-signed with the mono.snk key. The mono.snk key is available from
the 'Mono Sources'.
http://www.mono-project.com/
http://github.com/mono/mono/raw/master/mcs/class/mono.snk
For example, run:
wget -O mono.snk http://github.com/mono/mono/raw/master/mcs/class/mono.snk
Then re-run this script.
An alternative to installing the DLLs in the Mono GAC is to add the
FSharp bin directory to the MONO_PATH variable. For more information
on 'How Mono Finds Assemblies' see http://www.mono-project.com/Gacutil
Если я запускаю предложенную команду wget
, то она умирает:
$ wget -O mono.snk http://github.com/mono/mono/raw/master/mcs/class/mono.snk
--2010-11-23 17:02:43-- http://github.com/mono/mono/raw/master/mcs/class/mono.snk
Resolving github.com... 207.97.227.239
Connecting to github.com|207.97.227.239|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/mono/mono/raw/master/mcs/class/mono.snk [following]
--2010-11-23 17:02:44-- https://github.com/mono/mono/raw/master/mcs/class/mono.snk
Connecting to github.com|207.97.227.239|:443... connected.
ERROR: certificate common name `*.github.com' doesn't match requested host name `github.com'.
To connect to github.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
Теперь, если я перезапущу установщик F #, я получу другую ошибку:
$ sudo ./install-mono.sh
-- Resigning FSharp.Core.dll with mono.snk
ERROR: Invalid number of parameters.
Usage: sn [-q | -quiet] options [parameters]
-q | -quiet Quiet mode (minimal display)
Help options
-? | -h Show this help screen about the tool
-? | -h config Configuration options
-? | -h csp Crypto Service Provider (CSP) related options
-? | -h convert Format convertion options
-? | -h sn StrongName signing options
-- Installing FSharp DLLS into the GAC
Failure adding assembly bin/FSharp.Core.dll to the cache: Strong name cannot be verified for delay-signed assembly
Если я скопирую файл mono.snk
из каталога Mono 2.8 вручную в каталог F #, то программа установки, похоже, будет работать:
$ sudo ./install-mono.sh
-- Resigning FSharp.Core.dll with mono.snk
Assembly bin/FSharp.Core.dll signed.
-- Installing FSharp DLLS into the GAC
Installed bin/FSharp.Core.dll into the gac (/usr/local/lib/mono/gac)
Но сам F # по-прежнему не работает точно так же, как раньше (кажется, зависает при вводе):
$ mono bin/fsi.exe
Microsoft (R) F# 2.0 Interactive build 2.0.0.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
> 1+2*3;;
Мне нужно использовать CTRL + Z, чтобы восстановить контроль, а затем kill %1
, чтобы убить процесс мошенничества.