fbpx

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ę.