Pewnie już to wiesz, ale format pakietów RPM jest oparty o systemy będące pochodnymi RedHata (CentOS, RHEL, Fedora). RPM Package Manager jest darmowym narzędziem, które pozwala na instalację, usuwanie oraz zarządzanie pakietami w Linuxie. Oczywiście jak już wiesz nie dotyczy to każdej dystrybucji, a tylko tych wyżej wymienionych. Co w sytuacji, w której potrzebujemy zainstalować paczkę .rpm na WSL(Ubuntu)? Czy jest to możliwe? Tak, ale musisz uważać na możliwy konflikt zależności pakietów podczas instalacji. W poniższym wpisie zobaczysz w jaki sposób można zainstalować pakiet .rpm na WSL (Ubuntu).
Wymagania:
- konto z uprawnieniami sudo
- apt manager pakietów (domyślnie zainstalowany)
Aby przeprowadzić w miarę bezpieczny proces instalacji pakietu .rpm na WSL będziemy musieli przekonwertować naszą paczkę na format pliku .deb (oczywiście nie odbędzie się to przez operację zmiany nazwy pliku;)). Do tego celu użyjemy przydatnego narzędzia Alien, które pozwala na konwersję paczek .rpm, .deb, .slp, .sz czy .pkg
W pierwszej kolejności upewnimy się czy repozytorium universe jest włączone. Więcej o czterech głównych repozytoriach przeczytasz tutaj. Jeżeli z jakiś powodów byłoby wyłączone to poniższa komenda je włączy.
marcin@DESKTOP-7G3F672:~$ sudo add-apt-repository universe
Upewnij się, że wszystkie informacje o pakietch w repozytoriach są aktualne:
marcin@DESKTOP-7G3F672:~$ sudo apt-get update
Następnie przejdź do instalacji narzędzia Alien:
marcin@DESKTOP-7G3F672:~$ sudo apt-get install alien Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: autoconf automake autopoint autotools-dev debhelper debugedit dh-autoreconf dh-strip-nondeterminism dwz gettext intltool-debian libarchive-cpio-perl libarchive-zip-perl libcroco3 libdebhelper-perl libdw1 libfile-stripnondeterminism-perl libltdl-dev liblua5.2-0 libmail-sendmail-perl libnspr4 libnss3 librpm8 librpmbuild8 librpmio8 librpmsign8 libsub-override-perl libsys-hostname-long-perl libtool m4 po-debconf rpm rpm-common rpm2cpio Suggested packages: lintian autoconf-archive gnu-standards autoconf-doc dh-make rpm-i18n gettext-doc libasprintf-dev libgettextpo-dev libtool-doc gfortran | fortran95-compiler gcj-jdk m4-doc libmail-box-perl python elfutils rpmlint rpm2html The following NEW packages will be installed: alien autoconf automake autopoint autotools-dev debhelper debugedit dh-autoreconf dh-strip-nondeterminism dwz ... After this operation, 22.5 MB of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 autotools-dev all 20180224.1 [39.6 kB] Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 m4 amd64 1.4.18-4 [199 kB] Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 autoconf all 2.69-11.1 [321 kB] ... Setting up alien (8.95) ... Processing triggers for install-info (6.7.0.dfsg.2-5) ... Processing triggers for libc-bin (2.31-0ubuntu9) ... Processing triggers for man-db (2.9.1-1) ...
Konwersja pakietu .rpm do .deb
Po instalacji narzędzia Alien możemy przejść do konwersji naszego pakietu .rpm do .deb Dla przykładu weźmiemy pakiet minikube.
marcin@DESKTOP-7G3F672:~$ sudo alien minikube-latest.x86_64.rpm minikube_1.22.0-1_amd64.deb generated
Po przeprowadzonej konwersji możemy zająć się ostatnim elementem naszej układanki, czyli instalacją pakietu .deb
marcin@DESKTOP-7G3F672:~$ sudo dpkg -i minikube_1.22.0-1_amd64.deb Selecting previously unselected package minikube. (Reading database ... 43915 files and directories currently installed.) Preparing to unpack minikube_1.22.0-1_amd64.deb ... Unpacking minikube (1.22.0-1) ... Setting up minikube (1.22.0-1) ...
Udało się! Zainstalowaliśmy pakiet .rpm na WSL (Ubuntu).
Inna metoda instalacji
Poniżej znajdziesz również inną metodą instalacji pakietu .rpm bezpośrednio na Ubuntu, bez konwersji.
Przy czym UWAGA! może to prowadzić do problemów ze zgodnością w przypadku niektórych pakietów, szczególnie systemowych.
marcin@DESKTOP-7G3F672:~$ sudo alien –i nazwa_pakietu.rpm
Pamiętaj tylko, że instalowanie pakietów, które nie są natywnie wspierane na poziomie systemu operacyjnego może doprowadzić do problemu. Dlatego jeżeli już potrzebujesz zainstalować taki pakiet to zalecam konwersję.