2014-07-17 29 views
5

Ho installato Ubuntu 14.04 sul mio laptop e sto provando a compilare il codice di MonoDevelop 5.3 che ho scaricato da GitHub, ho installato tutte le dipendenze.Errore durante la compilazione di MonoDevelop 5.3 su Linux

Ho installato Mono 3.2.8:

[email protected]:~/Downloads/monodevelop$ mono -V 
Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1) 
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com 
    TLS:   __thread 
    SIGSEGV:  altstack 
    Notifications: epoll 
    Architecture: amd64 
    Disabled:  none 
    Misc:   softdebug 
    LLVM:   supported, not enabled. 
    GC:   sgen 

Quando ho usato ./Configure ottengo questo:

Configuration summary 

    * Installation prefix = /usr 
    * Version = 5.3 
    * Version Label = 5.3 
    * Compat Version = 5.0 
    * C# compiler = /usr/bin/dmcs 
    * Mono class library development extensions: yes 
    * Version control providers: 
    *  Subversion (Unix): yes 
    *  Git: yes 
    * Platform bindings: GNOME 
    * Unit tests: no 

Now type `make' to compile MonoDevelop 
Configuration Summary 
--------------------- 

MonoDevelop has been configured with 
    prefix = /usr 
    profile = default 

Packages included in the build: 
    main 

Ma quando io uso make mi manda questo errore:

Errors: 

/home/raven/Downloads/monodevelop/main/Main.sln (default targets) -> 
(Build target) -> 
/home/raven/Downloads/monodevelop/main/src/addins/AspNet/MonoDevelop.AspNet.csproj (default targets) -> 
(BeforeBuild target) -> 

    /home/raven/Downloads/monodevelop/main/src/addins/AspNet/MonoDevelop.AspNet.csproj: error : Command 'mono ../../../external/nuget-binary/NuGet.exe restore -SolutionDirectory ../../..' exited with code: 1. 

    1 Warning(s) 
    1 Error(s) 

Time Elapsed 00:00:24.5810510 
make[2]: *** [sln_build] Error 1 
make[2]: Leaving directory `/home/raven/Downloads/monodevelop/main' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/home/raven/Downloads/monodevelop/main' 
make: *** [all-recursive] Error 1 

Se qualcuno sa come risolvere questo errore, per favore fatemelo sapere, grazie.

+1

Si tratta di un errore quando si cerca di ripristinare i pacchetti Nuget. Sfortunatamente il vero messaggio di errore non viene visualizzato. Potrebbe essere un errore di certificato. Prova a eseguire l'esterno/nuget-binary/NuGet.exe e passa il percorso alla directory della soluzione - 'mono ../../../external/nuget-binary/NuGet.exe restore -SolutionDirectory ../ ../.. '. O potresti semplicemente eseguire 'mono external/nuget-binary/NuGet.exe ripristinare Main.sln' dalla directory principale della directory. Questo dovrebbe mostrare un messaggio di errore migliore, si spera. –

+0

Ho già utilizzato 'mono external/nuget-binary/NuGet.exe ripristina Main.sln' e questo era il messaggio di errore: **' AVVERTENZA: la funzione di inizializzazione tenta di accedere a Valore su questa istanza ATTENZIONE: Errore durante la risposta flusso (Scrittura: l'autenticazione o la decrittografia non è riuscita.): SendFailure AVVISO: la funzione di inizializzazione tenta di accedere a Valore su questa istanza Impossibile trovare la versione "4.0.30506" del pacchetto "Microsoft.AspNet.Mvc". Impossibile trovare la versione '2.0.30506' del pacchetto 'Microsoft.AspNet.WebPages'. Impossibile trovare la versione '2.0.30506' del pacchetto 'Microsoft.AspNet.Razor'.'** – R4v3nPr0

+8

Sembra un problema di certificato. Hai provato a eseguire 'mozroots --import --sync' –

risposta

5

Se si verifica un errore durante la compilazione NuGet MonoDevelop su Linux, allora si può vedere il messaggio di errore effettivo eseguendo NuGet ripristinare direttamente sulla riga di comando.

mono external/nuget-binary/NuGet.exe restore Main.sln 

Se il messaggio di errore contiene:

Error getting response stream (Write: The authentication or decryption has failed.): SendFailure 

allora questo è probabilmente un errore di certificato dal Linux by default does not trust any certificates.

Questo errore NuGet di solito può essere fissata eseguendo il comando seguente:

mozroots --import --sync 

Se quanto sopra non funziona dare un'occhiata al posto NuGet on Linux Error Getting Response Stream StackOverflow che dispone di comandi altre mozroots leggermente diverse si può provare.

(Quanto sopra è stato spostato dai commenti per rendere più facile da trovare)

+0

Awesome, Matt. Grazie mille. – Tico

+0

Un'altra cosa che potrebbe influire sugli utenti che utilizzano GNOME. Il recente gnome-terminal non accetta più l'argomento --disable-factory. Quindi, se vuoi accedere a Monodevelop al di fuori del terminale, crea uno script: "esporta GNOME_DESKTOP_SESSION_ID = && monodevelop' e sostituisci il file .desktop per eseguire lo script invece di solo monodevelop. (Nota: potrebbe anche funzionare 'unset GNOME_DESKTOP_SESSION_ID && monodevelop'). – Tico

+0

Il primo comando ha fatto il trucco per me su Ubuntu 14. Grazie mille amico! –