Mam rpm i chcę traktować go jak archiwum. Chcę wyodrębnić zawartość do katalogu, aby móc sprawdzić zawartość. Jestem zaznajomiony z poleceniami odpytywania odinstalowanego pakietu. Nie chcę po prostu listy zawartości rpm. to znaczy
$ rpm -qpl foo.rpm
Chcę sprawdzić zawartość kilku plików zawartych w rpm. Nie chcę instalować rpm. Zdaję sobie również sprawę z możliwości rpms do wprowadzania dodatkowych modyfikacji w sekcjach postów% i jak to sprawdzić. to znaczy
$ rpm -qp --scripts foo.rpm
Jednak w tym przypadku mnie to nie obchodzi.
linux
package
rpm
system-administration
Jeff Sheffield
źródło
źródło
Dla odniesienia: argumenty cpio to
Znalazłem odpowiedź tutaj: odpowiedź Lontara
źródło
Dla tych, którzy nie mają rpm2cpio, oto starożytny skrypt rpm2cpio.sh, który wyodrębnia ładunek z pakietu * .rpm.
Udostępnione dla potomności… i dla następnego pokolenia.
Wywołaj w ten sposób: ./rpm2cpio.sh .rpm | cpio -dimv
źródło
Czasami można napotkać problem z pośrednim archiwum RPM:
Oznacza to, że można go spakować, obecnie jest to jak zwykle kompresja LZMA2, przez
xz
:w przeciwnym razie możesz spróbować:
źródło
rpm2cpio <file>.rpm | bsdtar -xf -
(bez cpio), żeby to zadziałało.gunzip
zamiastxz
lublzma
które działało dobrze.Większość dystrybucji zainstalowała rolkę plików aplikacji GUI, która rozpakowuje pliki tar, zip, rpm i wiele innych.
Spowoduje to wyodrębnienie zawartości z bieżącego katalogu.
źródło
7-zip obsługuje większość rodzajów archiwów, w tym rpm i dołączony procesor cpio.
źródło
Po prostu możesz to zrobić
tar -xvf <rpm file>
!źródło
tar
którego używalibarchive
pod maską.bsdtar
. Homebrew na Macutar
domyślnie łączy się z nim, ale w innych systemach operacyjnychtar
oznacza GNU tar.Potężny menedżer plików tekstowych mc (Midnight Commander, niejasno przypominający Norton Commanderowi z dawnych czasów DOS) ma wbudowaną możliwość sprawdzania i rozpakowywania plików .rpm i .rpms, po prostu „otwiera” plik .rpm (s) w mc i wybierz
CONTENTS.cpio
: dla rpm uzyskasz dostęp do drzewa instalacji, dla RPMS uzyskasz dostęp do pliku .spec i wszystkich pakietów źródłowych.źródło
Aby debugować / sprawdzić twój rpm, sugeruję użycie redline, który jest programem java
Stosowanie :
Pobieranie: https://github.com/craigwblake/redline/releases
źródło
W NixOS jest
rpmextract
. Jest to opakowanie wokół rpm2cpio, dokładnie tak, jak chciał @Alan Evangelista. https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/archivers/rpmextractźródło
Przynajmniej w OpenSuse
unrpm
polecenie jest dostarczane zbuild
pakietem.W odpowiednim katalogu (ponieważ jest to bomba archiwalna):
źródło
Skopiuj plik .rpm do oddzielnego folderu, a następnie uruchom następującą komendę $ yourfile.rpm | cpio -idmv
źródło
Test „DECOMPRESSION” kończy się niepowodzeniem na CygWin, jednej z najbardziej użytecznych platform do tego celu, ponieważ sprawdzanie „grep” dla „xz” uwzględnia wielkość liter. Wynikiem sprawdzenia „COMPRESSION:” jest:
Zwykłe zastąpienie „grep -q” przez „grep -q -i” wszędzie wydaje się dobrze rozwiązać problem.
Dokonałem kilku aktualizacji, w szczególności dodałem kilka komentarzy i użyłem „case” zamiast zestawionych instrukcji „if”, i zamieściłem tę poprawkę poniżej
źródło
7-Zip jest w stanie wyodrębnić zawartość. Działa w taki sam sposób, jak działa plik tar.gz. Skompresowany plik w skompresowanym pliku.
W systemie Windows 7 Pro z zainstalowanym 7-Zip:
Kliknij prawym przyciskiem myszy plik rpm. Najedź myszą na 7-Zip w menu kontekstowym. Wybierz wypakuj do „nazwy pliku”.
Wejdź do folderu nazw plików.
Kliknij prawym przyciskiem myszy plik cpio. Najedź myszą na 7-Zip w menu kontekstowym. Wybierz wypakuj do „nazwy pliku”.
Skończyłeś. Folder z „nazwą pliku” zawiera wyodrębnioną zawartość do sprawdzenia.
Wiem, że wy, Linuxowcy, gardzicie prostotą, ale na dłuższą metę, jeśli musicie spędzić czas na szukaniu rozwiązania takiego prostego problemu; że nieefektywność kosztuje.
Biorąc pod uwagę fakt, że wy, Linuxowcy gardzicie wydajną prostotą, bardzo wątpię, czy wersja 7-Zip dla Linuksa zrobi to samo w dokładnie taki sam sposób.
Po co to ułatwiać, skoro możesz uczynić wręcz głupimi trudnymi i jednocześnie twierdzić, że jesteś geniuszem?
Żeby było jasne; Nie jestem fanem Windowsa. Właściwie zamierzam przejść na Linuksa. Po prostu nie mogłem oprzeć się okazji, by wcielić w Twoje twarze to, co deweloperzy Windows uznaliby za zdrowy rozsądek, najlepsze praktyki deweloperów.
Po prostu ciesz się, że to ja publikuję, a nie masz obok siebie Marka Harmona, bo; Agent specjalny Leroy Jethro Gibbs zrobiłby ci uderzenie w głowę za to, że nie używasz głowy.
Nie wiem, która to reguła Gibbsa, ale zasada jest taka: nie rób sobie rzeczy trudniejszych niż to konieczne.
Teraz możemy zobaczyć, kto musi wyjechać na wakacje. Dbać!
źródło