Wyszukiwanie w witrynie

Jak przekonwertować pakiet RPM na DEB i DEB na RPM za pomocą programu Alien


Jestem pewien, że już wiesz, że istnieje wiele sposobów instalowania oprogramowania w Linuksie: użycie systemu zarządzania pakietami dostarczonego przez twoją dystrybucję (aby wymienić kilka przykładów, aptitude, yum lub zypper), kompilacja ze źródeł (choć nieco obecnie rzadko spotykana, była to jedyna metoda dostępna w początkach Linuksa) lub użycie narzędzia niskiego poziomu, takiego jak dpkg lub rpm z plikiem .deb< i .rpm samodzielne, prekompilowane pakiety, odpowiednio.

W tym artykule przedstawimy Ci alien, narzędzie, które konwertuje pomiędzy różnymi formatami pakietów Linuksa, z .rpm na .deb (i odwrotnie versa) jest najczęstszym użyciem.

Narzędzie to, nawet jeśli jego autor już go nie utrzymuje i na swojej stronie internetowej stwierdza, że kosmita prawdopodobnie zawsze pozostanie w fazie eksperymentalnej, może się przydać, jeśli potrzebujesz określonego typu pakietu, ale możesz znaleźć ten program tylko w innym formacie pakietu.

Na przykład alien raz uratował mi dzień, gdy szukałem sterownika .deb do drukarki inkjet i nie mogłem go znaleźć – producent dostarczył jedynie pakiet .rpm. Zainstalowałem program Alien, przekonwertowałem pakiet i wkrótce mogłem bez problemów korzystać z drukarki.

To powiedziawszy, musimy wyjaśnić, że tego narzędzia nie należy używać do zastępowania ważnych plików systemowych i bibliotek, ponieważ są one różnie skonfigurowane w różnych dystrybucjach. Używaj obcego tylko w ostateczności, jeśli metody instalacji sugerowane na początku tego artykułu nie wchodzą w grę dla wymaganego programu.

Na koniec musimy zauważyć, że chociaż w tym artykule będziemy używać CentOS i Debian, wiadomo, że obcy działa również w Slackware a nawet w Solarisie, oprócz dwóch pierwszych dystrybucji i ich rodzin.

Krok 1: Instalacja Aliena i zależności

Aby zainstalować alien w CentOS/RHEL 7, musisz włączyć EPEL i Nux Repozytoria Dextop (tak, to Dextop, a nie Desktop) w tej kolejności:

yum install epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

Najnowsza wersja pakietu obsługującego to repozytorium to obecnie 0.5 (opublikowana 10 sierpnia 2015). Zanim przejdziesz dalej, powinieneś sprawdzić http://li.nux.ro/download/nux/dextop/el7/x86_64/, aby sprawdzić, czy dostępna jest nowsza wersja:

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

to zrób,

yum update && yum install alien

W Fedorze wystarczy uruchomić tylko ostatnie polecenie.

W Debianie i jego pochodnych po prostu wykonaj:

aptitude install alien

Krok 2: Konwersja z pakietu .deb na .rpm

Do tego testu wybraliśmy dateutils, który udostępnia zestaw narzędzi data i godzina do obsługi dużych ilości danych finansowych. Pobierzemy pakiet .deb do naszego CentOS 7, przekonwertujemy go do .rpm i zainstalujemy:

cat /etc/centos-release
wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

Ważne: (Proszę zwrócić uwagę, że alien domyślnie zwiększa pomocniczy numer wersji pakietu docelowego. Jeśli chcesz obejść to zachowanie, dodaj – flaga zachowania wersji).

Jeżeli spróbujemy od razu zainstalować pakiet, napotkamy drobny problem:

rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm 

Aby rozwiązać ten problem, włączymy repozytorium epel-testing i zainstalujemy narzędzie rpmrebuild w celu edycji ustawień pakietu do przebudowania:

yum --enablerepo=epel-testing install rpmrebuild

Następnie uruchomić,

rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

Który otworzy domyślny edytor tekstu. Przejdź do sekcji %files i usuń linie odnoszące się do katalogów wymienionych w komunikacie o błędzie, następnie zapisz plik i wyjdź:

Po zakończeniu pliku zostaniesz poproszony o kontynuowanie przebudowy. Jeśli wybierzesz T, plik zostanie odbudowany we wskazanym katalogu (innym niż bieżący katalog roboczy):

rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm

Teraz możesz przystąpić do instalacji pakietu i zweryfikować jak zwykle:

rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
rpm -qa | grep dateutils

Na koniec możesz wyświetlić listę poszczególnych narzędzi dołączonych do dateutils i alternatywnie sprawdzić odpowiednie strony podręcznika:

ls -l /usr/bin | grep dateutils

Krok 3: Konwersja z pakietu .rpm na .deb

W tej sekcji pokażemy, jak przekonwertować plik .rpm na .deb. W 32-bitowym pudełku Debian Wheezy pobierzmy pakiet .rpm dla powłoki zsh z systemu CentOS 6 silne> repozytorium. Należy pamiętać, że ta powłoka nie jest domyślnie dostępna w Debianie i jego pochodnych.

cat /etc/shells
lsb_release -a | tail -n 4

wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

Komunikaty o braku podpisu możesz bezpiecznie zignorować:

Po kilku chwilach plik .deb powinien zostać wygenerowany i gotowy do instalacji:

dpkg -i zsh_4.3.11-5_i386.deb

Po instalacji możesz sprawdzić, czy zsh jest dodany do listy prawidłowych powłok:

cat /etc/shells

Streszczenie

W tym artykule wyjaśniliśmy, jak przekonwertować plik .rpm na .deb i odwrotnie, aby zainstalować pakiety w ostateczności, gdy takie programy nie są dostępne w repozytoriach lub jako kod źródłowy do dystrybucji. Będziesz chciał dodać ten artykuł do zakładek, ponieważ każdy z nas od czasu do czasu będzie potrzebował kosmitów.

Podziel się swoimi przemyśleniami na temat tego artykułu, korzystając z poniższego formularza.