Instalacja nienadzorowana pliku pkg

14

Czy istnieje możliwość utworzenia instalacji nienadzorowanej pakietu pkg?

Np. Utworzenie pakietu mpkg i uruchomienie skryptu, który zainstalował pakiet za pomocą konsoli i instalatora.

Tło: Musiałem wdrożyć pakiet na wielu użytkownikach systemu OSX. Nie mamy pulpitu Apple i dostępu root do tych maszyn. jest to wstępnie skonfigurowany pakiet pkg, ale jeśli użytkownik uruchomi go w normalny sposób, konfiguracja wstępna zostanie zastąpiona. W systemie Windows zdaję sobie z tego sprawę dzięki samowystarczalnemu archiwum, które uruchamia MSI z cichą instalacją. Na Linuksie buduję pakiety RPM / Deb, ale na OSX nie znalazłem żadnego właściwego sposobu :(

Megachip
źródło

Odpowiedzi:

17

Krótka odpowiedź: tak.

Długa odpowiedź: tak, ale… pełna odpowiedź na to pytanie zawiera odpowiedź techniczną i problem praktyczny.

Po pierwsze, odpowiedź techniczna

Możesz zainstalować .pkg lub .mpkg przy użyciu tej składni:

sudo installer -verboseR -pkg "/path/to/pkg/foo.mpkg"

Jeśli instalator nie jest poprawnie „podpisany”, musisz dodać -allowUntrusted

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg"

Być może trzeba będzie określić, gdzie ma być zainstalowany, używając -target /(nie jestem w 100% pewien, że jest to wymagane , ale to dobry pomysł):

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg" -target /

Problem polega na tym, że sudoprzy próbie uruchomienia poprosi Cię o hasło administratora installer. Jeśli chcesz to zautomatyzować, musisz powiedzieć komputerowi Mac, aby nie wymagał sudohasła podczas uruchamiania instalatora. Aby to zrobić, możesz dodać ten wiersz do swojego /etc/sudoerspliku:

%admin ALL=NOPASSWD: /usr/sbin/installer

Zobacz man visudoinstrukcje dotyczące edycji tego pliku.

Po drugie, problem praktyczny

Jeśli jesteś jedyną osobą, która korzysta z komputera Mac, dodanie powyższej linii /etc/sudoersnie jest niczym wielkim.

Jeśli jednak jest to udostępniony komputer Mac, inne osoby należące do grupy „admin” będą mogły działać /usr/sbin/installerbez pytania o hasło.

Oczywiście, jeśli ktoś dostanie się na twoje konto „administratora”, również teoretycznie może spowodować zgorszenie /usr/sbin/installer. Chociaż nie mogę się zastanowić, co dokładnie by zrobili, jest to kompromis między bezpieczeństwem a wygodą.

Po trzecie, skrypt github

Napisałem pkginstall.sh, aby zrobić kilka fajnych rzeczy, takich jak rejestrowanie procesu, a także powiedzieć, czy należy ponownie uruchomić komputer po zainstalowaniu pakietu.

Na koniec: zautomatyzuj „jak?”

O ile chcesz zautomatyzować instalację, zależy to od bardziej szczegółowych informacji na temat tego, co próbujesz zrobić. Możesz na przykład utworzyć folder, taki jak ~ / Action / AutoInstallPKG /, i nakazać launchdzainstalowanie plików .pkg lub .mpkg, które zostaną dodane do tego folderu, a następnie przenieść go na bok.

Chciałem zrobić coś takiego od dłuższego czasu, więc w końcu to połączyłem. Można go znaleźć na https://github.com/tjluoma/autopkginstall . Instrukcje instalacji znajdują się w Github, więc nie będę ich tutaj powtarzać.

TJ Luoma
źródło
Dzięki, to dla mnie duży krok naprzód, ale wciąż nie jest to ostateczne rozwiązanie. Muszę wdrożyć pakiet na wielu różnych komputerach Mac (więc sudoes nie wchodzi w grę), w których użytkownik nie może zmieniać konfiguracji. Tak więc najlepszym sposobem (który działa w systemie Windows i Linux) jest plik, który użytkownik może kliknąć, a reszta zrobi się automatycznie. Ale sprawdzę twoje rozwiązanie, możliwe w połączeniu z górą lodową lub pakietami, mogę znaleźć pasujące rozwiązanie. Mam więc nadzieję, że ok, jeśli zostawię to pytanie jeszcze kilka dni, aby inni mogli
udzielić
3
Ponadto, do wglądu w przyszłości, takie szczegóły byłyby pomocne w początkowym pytaniu. Odpowiedź dla użytkownika końcowego, który chce zautomatyzować instalacje w swoim systemie, jest zupełnie inna dla kogoś, kto próbuje dystrybuować na wiele komputerów Mac i wiele systemów operacyjnych. Prawdopodobnie nie znajdziesz sposobu, który działa w ten sam sposób w systemach Windows, Linux i Mac OS X. Nawet firmy tak duże jak Dropbox mają różne instalatory dla każdego systemu operacyjnego.
TJ Luoma,
Masz rację, przepraszam za to. Możliwe, że powinienem dodać to do pytania.
Megachip,
Jeszcze raz dziękuję za całą twoją pracę, konkretne pytanie [tutaj] ( apple.stackexchange.com/questions/120026/… ). Twoja autopkginstall jest fajną rzeczą, ale wymaga ode mnie zainstalowania tego na każdym kliencie, co nie jest możliwe. Wygląda na to, że moje pytanie tutaj nie było wystarczająco konkretne. Przepraszam za to
Megachip
2

Myślę, że tańczysz bardzo blisko własnej odpowiedzi. Wspominasz, że nie masz Pulpitu zdalnego Apple. Poleciłbym rozważyć to, co próbujesz zrobić. Używam go tak, jak cały czas opisujesz - mam plik .pkg, który musi być zainstalowany na wielu komputerach w mojej sieci LAN, zaznaczam komputery, na których chcę go zainstalować, i mówię, aby go zainstalował. Robi znacznie więcej, ale BĘDZIE wykonywać te zdalne instalacje za Ciebie. To 80 USD za licencję z nieograniczoną liczbą klientów.

Jeśli 80 $ jest kwestią sporną - możesz spojrzeć na munki , czyli

„zestaw narzędzi, które w połączeniu z repozytorium pakietów i metadanych opartych na serwerze internetowym mogą być używane przez administratorów OS X do zarządzania instalacjami oprogramowania (aw wielu przypadkach usuwaniem) na komputerach klienckich z systemem OS X”.

Nie używałem go sam, ale mam wiele szacunku dla ludzi, którzy go kodują i używają w prawdziwym życiu. Jest nieco bardziej skonfigurowany i działa niż Pulpit zdalny - ale ma też o wiele więcej opcji.

Mam nadzieję, że możesz użyć jednego z tych dwóch programów do robienia tego, czego szukasz.

Zły Blender
źródło
Tak, ale o ile wiem, potrzebujesz dostępu do roota, aby korzystać z pulpitu zdalnego?
Megachip
Będziesz potrzebował dostępu administratora, aby skonfigurować zdalny pulpit na komputerach klienckich. ARD nie pozwoli ci po prostu zainstalować plików na żadnym komputerze Mac, którego widzisz w sieci, nie będzie. :)
evilblender
Przepraszamy, nie ma takiej możliwości.
Megachip
2

Wreszcie, dzięki rozwiązaniu mojego konkretnego pytania dr.nixon , muszę poradzić sobie ze stworzeniem instalacji nienadzorowanej, jak opisano w pytaniu za pośrednictwem Platypus .

Użytkownik musi uruchomić aplikację, reszta zrobi się automatycznie.

Megachip
źródło
Użytkownik może umieścić go w elementach startowych, aby zawsze zaczynał się przy rozruchu.
AnneTheAgile,