Mono (Polski)

From ArchWiki
Translation Status: This article is a localized version of Mono. Last translation date: 2024-05-01. You can help to synchronize the translation, if there were changes in the English version.

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.

Note: Instalacja pakietu przechowuje urzędy certyfikacji w /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.

Zobacz także