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.crtsynchronizuje 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-removeomija 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.