PowerShell in openSUSE Leap 42.2 installieren
PowerShell gibt es schon länger für Linux-Systeme, allerdings nur für Ubuntu und CentOS. Wobei die Installation unter Fedora mit dem CentOS-Paket auch geklappt hat. Seit Version 6.0.0-alpha.17 ist die PowerShell auch für weiter Distributionen verfügbar, auch für openSUSE, allerdings nur für Version 13.2 und nicht für Leap.
Wenn man der Anleitung auf GitHub für openSUSE folgt, kann man das RPM-Paket zwar installieren, erhält aber beim Start der PowerShell eine Fehlermeldung:
$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc $ sudo zypper install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/powershell-6.0.0_alpha.17-1.suse.13.2.x86_64.rpm $ powershell Failed to initialize CoreCLR, HRESULT: 0x80131500 |
Auf einem standardmäßig eingerichtetem openSUSE Leap 42.2 scheint der PowerShell etwas zu fehlen, vermutlich eine bestimmte Bibliothek. Mit folgendem Befehl kann man herausfinden, welche das sein könnte:
$ sudo find /opt/microsoft/powershell/6.0.0-alpha.17/ -name '*.so' -type f -print | xargs ldd | grep 'not found' ... liblldb.so.3.5.0 => not found libicuuc.so.53.1 => not found libicui18n.so.53.1 => not found liblttng-ust.so.0 => not found |
Jetzt kennt man zwar die Probleme, kann aber bei der Beschaffung der Programme auf weitere Hindernisse stoßen. Denn das Programm icu
, von dem man die Bibliothek libicuuc.so
in der Version 53.1 benötigt, gibt es in den Repositories von Leap nur die Version 52.1, was zu niedrig ist.
$ zypper info icu ... Informationen zu Paket icu: --------------------------- Repository : openSUSE-Leap-42.2-Oss Name : icu Version : 52.1-11.5 Arch : x86_64 Anbieter : openSUSE Installierte Größe : 541,4 KiB Installiert : Ja Status : aktuell Zusammenfassung : International Components for Unicode Beschreibung : ICU is a set of C and C++ libraries that provides robust and full-featured Unicode and locale support. The library provides calendar support, conversions for many character sets, language sensitive collation, date and time formatting, support for many locales, message catalogs and resources, message formatting, normalization, number and currency formatting, time zone support, transliteration, and word, line, and sentence breaking, etc. This subpackage contains the runtime programs for interacting with ICU. |
Nach einer kurzen Suche auf software.opensuse.org findet man die Version 53.1 in einem Repo für Tumbleweed für die Sprache R. Für die Installation von PowerShell wird es vorübergehend hinzugefügt:
$ sudo zypper ar http://download.opensuse.org/repositories/devel:/languages:/R:/released/openSUSE_Tumbleweed/ R $ sudo zypper refresh $ sudo zypper install icu-53.1-70.1.x86_64 lttng-ust |
Nach der Installation wird das Repository wieder entfernt und das Paket icu
mit Zypper gegen ein Downgrade auf die alte Version gesperrt. Genau das versucht Zypper nämlich, sobald das Repo, in dem die Version 53.1 enthalten war, fehlt:
$ sudo zypper rr http://download.opensuse.org/repositories/devel:/languages:/R:/released/openSUSE_Tumbleweed/ R $ sudo zypper addlock icu $ sudo zypper refresh $ sudo zypper update |
Mit der aktuellen Version von icu
kann man jetzt PowerShell unter openSUSE Leap ausführen.
Geschrieben in Gnu/Linux, OpenSuse, Powershell