Mono (Polski)
Z Wikipedii:
- Mono – zestaw narzędzi umożliwiający uruchamianie programów stworzonych dla platformy .NET Framework, w skład których wchodzi między innymi kompilator języka C# oraz środowisko CLR (Common Language Runtime).
Instalacja
Zainstaluj pakiet mono.
Jeśli potrzebujesz obsługi VisualBasic.Net, musisz zainstalować interpreter VisualBasic.Net z pakietem mono-basicAUR.
/usr/share/.mono/certs/Trust/
, ale usunięcie pakietu ich nie usuwa.[1]
Uruchamianie aplikacji Mono
Pliki binarne Mono można uruchomić ręcznie wywołując mono
:
$ mono nazwa_programu.exe
Można również wykonywać pliki binarne Mono bezpośrednio, tak jak natywne pliki binarne:
$ chmod 755 nazwa_programu.exe $ ./nazwa_programu.exe
Testowanie Mono
Make a new file:
test.cs
using System; public class Test { public static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
Następnie uruchom:
$ mcs test.cs $ mono test.exe Hello world!
Programowanie
OmniSharp zapewnia wtyczki/integracje programistyczne .NET/Mono dla kilku edytorów, w tym Vim, Emacs i Visual Studio Code.
Alternatywnie, można zainstalować riderAUR. Jeśli zainstalujesz Ridera nie z AUR, będziesz musiał zainstalować mono-msbuild, ponieważ ostatnie wersje Ridera porzuciły wsparcie xbuild na rzecz MSBuild z net-core.
Jeśli chcesz mieć przeglądarkę dokumentacji API i kilka narzędzi do testowania i programowania, musisz zainstalować mono-tools.
Rozwiązywanie problemów
Otrzymuję błąd, gdy próbuję uruchomić pliki Mono bezpośrednio: "cannot execute binary file"
Obsługa binfmt_misc dla Mono nie została jeszcze skonfigurowana, jak wyjaśniono szczegółowo na stronie Mono Project website.
Aby to naprawić, zrestartuj usługę systemd-binfmt
.
Otrzymuję błąd uzgadniania TLS (lub podobny oparty na certyfikacie)
Może to być spowodowane brakiem certyfikatów w magazynie certyfikatów Mono lub nieaktualnymi uszkodzonymi certyfikatami pozostającymi w magazynie certyfikatów Mono.
Jeśli to możliwe, upewnij się, że systemowy magazyn certyfikatów jest w dobrym stanie, uruchamiając curl -vI
lub podobne polecenie, aby zreplikować nieudane żądanie poza Mono.
-
cert-sync /etc/ssl/certs/ca-certificates.crt
synchronizuje magazyn mono z magazynem systemowym, dodając brakujące certyfikaty. - Aby usunąć uszkodzone certyfikaty (jeśli powyższe nie pomogło), należy usunąć katalog
/usr/share/.mono
, a następnie ponownie uruchomićcert-sync /etc/ssl/certs/ca-certificates.crt
. - W ostateczności, starsze narzędzie
mozroots --import --ask-remove
omija systemowy magazyn certyfikatów i bezpośrednio pobiera magazyn zaufania Mozilli. To również nie usuwa uszkodzonych certyfikatów i może powodować inne problemy, jeśli polegasz na prywatnych urzędach certyfikacji.
Zarówno cert-sync
jak i mozroots
są częścią pakietu mono.