2010-11-23 9 views
5

Actualización: Se intentó la versión CTP de noviembre. El mismo mensaje de error. Olvidé mencionar que este servidor tiene instalada la edición del servidor de Ubuntu. No tengo este problema en mi escritorio Ubuntu que ejecuta Desktop 10.10. Entonces sospeché que podrían faltar algunas bibliotecas relacionadas con la línea de comando. Después de instalar libreadline-dev y libreadline5, el mensaje de error desapareció. Sin embargo, el problema que fsi pegado todavía está allí.FSI.exe no funciona en Ubuntu 10.10

Update2: Probé el nuevo Mono 2.8.1. Mismo problema pegado de FSI.

Update3: Como este problema es muy reproducible, lo informé como un error en fsi.exe para Microsoft. Veamos cómo va.

Update4: Obtuve una respuesta rápida de Don Syme. La solución que él sugirió resolvió este problema. Creé la respuesta yo mismo.

Hola,

he instalado F # 2.0 en un servidor que ejecuta Ubuntu 10.10 y Mono 2.8. fsc.exe funciona perfectamente, no tengo ningún problema para compilar archivos fs. Sin embargo, cuando corro fsi.exe de la siguiente manera: mono /usr/local/FSharp/bin/fsi.exe

me dieron el FSI rápido, pero un mensaje de error seguir repitiendo

"Error al instalar ctrl -c controlador - Ctrl-C manejo no estará disponible. Error fue: Excepción ha sido lanzada por el objetivo de una invocación "

¿Me falta algo aquí?

El Mono 2.8 se compiló e instaló desde la fuente.

+0

¿Utilizaste el último lanzamiento CTP de noviembre de F #? ¿Esto mata a FSI o puede continuar usándolo (aunque Ctrl + C no funcionará para romper la ejecución del código F #) –

+0

Utilicé la versión CTP de agosto de 2010. No estaba al tanto de la nueva versión. Lo probaré. El síntoma fue que después de mostrar ese mensaje de error, FSI simplemente se quedó allí, todavía está allí, pero nunca respondió mi entrada – Cygwin98

Respuesta

7

Siéntase realmente incómodo para responder mi propia pregunta.De todos modos, lo responderé para que otras personas puedan beneficiarse.

En primer lugar, instale libreadline-dev y libreadline5 por lo que puede deshacerse de la siguiente mensaje de error

Error al instalar el controlador de Ctrl-C - Manejo de Ctrl-C no estará disponible. Error fue: Se inició una excepción por el destino de una invocación

Si se encuentra con tema fsi.exe atascado, intente

fsi --gui- 

Funciona perfectamente en mi caso.

Aquí está mi entendimiento de por qué sucedió tal problema. Si observa el código, descubrirá que fsi.exe en realidad hace referencia a System.Windows.Forms, que se vincula adicionalmente al sistema de Windows. En mi caso, ejecuté fsi en un servidor sin el sistema X instalado. En consecuencia, fsi se quedó allí tratando de hablar con la inexistente X. Eso explica por qué no tengo el problema en mi escritorio.

1

F # nunca funcionó en Linux. Hoy en día con Mono 2.8 y la caída de noviembre de 2010 de F # (que confusamente tiene el mismo número de versión exacta como la versión anterior ?!) me sale:

$ 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 

Si funciono con el comando wget que sugiere entonces muere:

$ 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. 

Ahora bien, si me vuelva a ejecutar el instalador F # me sale un error diferente:

$ 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 

Si copio el archivo mono.snk del director Mono 2.8 y en el # directorio de F con la mano, entonces el instalador parece funcionar:

$ 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) 

Pero F # en sí todavía no funciona exactamente de la misma manera que lo hacía antes (que aparece al pasar cada vez que se introduce de entrada):

$ 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;; 

Tengo que usar CTRL + Z para recuperar el control y luego kill %1 para matar el proceso deshonesto.

+0

Hola, Jon, hice los mismos pasos que tú. Ahora el mensaje de error se ha ido mientras el fsi todavía está atascado. Supongo que debe faltar algunas otras bibliotecas. – Cygwin98

Cuestiones relacionadas