Niektóre aplikacje przychodzą w plikach .pkg i pytają o hasło administratora, nawet jeśli wszystko, co robią, to kopiowanie pliku binarnego do / Aplikacje.
Lubię mieć swoje aplikacje w ~ / Aplikacje i nie lubię udzielać uprawnień administracyjnych do czegokolwiek, co nie pochodzi ze statku-matki.
Czy istnieje sposób, aby ręcznie otworzyć plik .pkg i wyciągnąć aplikację? W Narzędziach programisty znajduje się PackageMaker, ale wydaje się, że tak nie jest (wygenerowało pewne wyniki, które sprawiają, że myślę, że tak naprawdę nie ma skryptów ani innych elementów w instalatorze, tylko aplikacja).
Odpowiedzi:
Jeśli klikniesz go prawym przyciskiem myszy i klikniesz opcję Pokaż zawartość opakowania , otrzymasz kilka plików w folderze Zawartość. (Uwaga: jeśli nie widzisz Pokaż zawartości pakietu , musisz otworzyć Terminal.app i uruchomić
pkgutil --expand mystubbornpackage.pkg path/to/expand
)Jednym z nich jest plik BOM (zestawienie materiałów), który zamienia się w pokwitowanie, którego można użyć do odinstalowania aplikacji. Ten plik zawiera manifest wszystkiego, co pakiet zainstaluje i gdzie; aby odczytać ten plik, użyj polecenia lsbom .
Większość pakietów (używam tutaj pakietu Office 2008) również ma plik Archive.pax.gz, który zawiera wszystko, co Instalator przeniesie do różnych folderów zgodnie z instrukcją w pliku BOM. Wygląda na to, że większość aplikacji ma .app w tym archiwum, chociaż przeciągnięcie go do / Aplikacje może pozostawić go bez ram, które należy uruchomić; więc musisz dowiedzieć się, jakich innych plików potrzebuje i gdzie potrzebuje ich, aby działał.
Ponadto wszystkie pakiety mogą rejestrować wiadomości, jeśli naciśniesz Cmd-L (lub wybierzesz opcję Dziennika instalatora z menu Okno , możesz je wyświetlić po ich wygenerowaniu. Może to dać ci wyobrażenie, jakie dodatkowe rzeczy instaluje na przynajmniej jest to trochę więcej informacji, jeśli nie ufasz pakietowi.
źródło
pkgutil
zrobi to. Możesz go rozwinąć za pomocą,pkgutil --expand file.pkg path_to_expand
a on przekształci go w pakiet stylu katalogu.Oprócz tego, co powiedział Matthew Hall, możesz także nacisnąć Cmd-I w aplikacji Instalatora, aby zobaczyć, jakie pliki instalator zainstaluje i gdzie.
źródło
Jeśli nie ufasz instalatorowi w stopniu wystarczającym do uzyskania uprawnień administracyjnych do instalacji, to dlaczego ufasz plikowi binarnemu w katalogu / Aplikacje?
Pacifist pozwoli ci zajrzeć do plików pakietu. Niekoniecznie pozwala to „wyciągnąć plik binarny”.
źródło
Alternatywnie możesz spróbować
LUB
źródło
hdiutil create -size 200m -fs HFS+ -volname Scratch scratch.dmg
a następnie skopiowanie plików do preferowanych lokalizacji. Nadal potrzebujesz sudo, aby niestety uruchomić instalator.Po pomyślnym otwarciu pakietu odszukaj wspomniany wcześniej plik Archive.pax.gz.
Utwórz nowy pusty folder na pulpicie, nadając mu dowolną nazwę. Zazwyczaj nazywam je „xxxx” lub „zzzz” itp., Aby ułatwić późniejsze pisanie.
Przeciągnij z opcją kopię pliku Archive.pax.gz do nowego folderu „xxxx” na pulpicie.
Jeśli plik znajduje się na nośniku tylko do odczytu, możesz po prostu przeciągnąć go do folderu „xxxx” bez klawisza Option, aby utworzyć kopię.
Teraz otwórz Terminal.app iw wierszu polecenia przejdź do nowego katalogu „xxxx” i wyświetl zawartość katalogu, aby potwierdzić, że plik Archive.pax.gz tam jest:
Teraz są dwa proste polecenia do wprowadzenia:
Gzip powie ci, że zastąpił „Archive.pax.gz” na „Archive.pax”) Teraz ponownie wypisz zawartość katalogu, aby to potwierdzić.
(Musisz się rozdzielić
-r
i-f
, jak-rf
to nie zadziała)Na koniec ponownie wypisz zawartość katalogu za pomocą
ls -al
. Oprócz pliku Archive.pax zobaczysz teraz hierarchię katalogów prawdopodobnie zawierającą jeden lub więcej katalogów.Pliki w tej hierarchii katalogów pokażą ci, gdzie instalator OS X zainstalowałby pliki w twoim systemie, tak jakby katalog „xxxx” był katalogiem głównym „/”.
Możesz następnie ręcznie skopiować te pliki do ich miejsc docelowych, jeśli chcesz.
źródło
cd ~/Desktop; cp Package.pkg/Contents/Archive.pax.gz .; gunzip -v Archive.pax.gz; pax -r -f Archive.pax
. Nie musisz opisywać wszystkiego na tym poziomie szczegółowości.pkgutil --expand
nie powiodło się z powodu następującego błędu:Error encountered while creating .. Error 17: File exists
Ale
xar
zamiast tego udało mi się wyodrębnić pliki :xar -xvf foo.pkg
źródło
Najlepszym narzędziem do sprawdzania plików pakietów jest Podejrzany pakiet . Umożliwia także kopiowanie plików z pakietu.
Nie tylko dostarczy wszystkie potrzebne informacje w aplikacji, ale także zainstaluje wtyczkę Quick Look, więc wystarczy wybrać plik pakietu i nacisnąć klawisz spacji, aby otworzyć okno z najważniejszymi informacjami.
źródło
Unarchiver może to zrobić; zrobi to samo,
pkgutil --expand
ale używając przeciągania i upuszczania. W każdym razie jest to lepszy zamiennik Apple Archive Utility.app.źródło
UnArchiver załatwił sprawę .
Zainstaluj UnArchiver, otwórz UnArchiver; gdy jest otwarty - kliknij dwukrotnie ten nieznośny
MAMP_MAMP_3.5.pkg
Postępuj zgodnie z instrukcjami, aby zainstalować MAMP.
źródło