Mac için bir Installpackage oluşturma


0

Her zaman yeni bir mac'a yüklemem gereken birçok Programım var. Bir kurulum paketi ile bu süreci basitleştirmek istedim. Iceberg’i bir denemeyle çoktan denedim ama belirli bir hata yaptım. Buzdağı ile yapmak istediğim, tüm paketleri açmak ve onu yüklemek için bir betiği başlatmak ve sonra paketleri silmek. Hedefimdeki paketleri açan bir paket yapabilirim ancak iceberg Programm postinstall'da eklediğim betiği çalıştırmayacak. Ben terminal üzerinden kullandığınızda komut dosyası iyi çalışıyor. kullandığım komut dosyası

##!/usr/bin/env bash
sudo installer -pkg /Library/Virtualbox.pkg -target /

iceberg programdaki betiği paketler ancak hiçbir zaman kullanmaz.


Kullanırken hangi çıktıyı veya hatayı görüyorsunuz -verbose ile bayrak installer? Deneyin sudo installer -verbose -pkg /Library/Virtualbox.pkg -target /
Graham Miln

hata yok Eğer yükleyiciyi terminalde kullanırsam ne yapılacağını yapar. benim sorunum bu buzdağının veya paketlerinin veya Packagemaker'ın komut dosyasını postinstall'da çalıştırmamasıdır.
Neropointer

PackageMaker artık Apple tarafından desteklenmiyor; sadece Installer.app ve installer OS X'te Apple tarafından desteklenmektedir.
Graham Miln

Iceberg satın alın ve paketler hala destekleniyor mu?
Neropointer

Buzdağı bir üçüncü taraf ürünüdür ve paketlerin ne olduğundan emin değilim. Apple'ın geliştirici araçları artık yalnızca productbuild ve pkgbuild. Cevabımı genişlettim.
Graham Miln

Yanıtlar:


1

İçinde bir hata var. postinstall senaryo. İlk satır yalnızca bir karma (#) içermelidir:

#!/usr/bin/env bash

Eğer .pkg ile çalışır installer ve Installer.app , o zaman doğru bir pakettir. Diğer tüm araçlar üçüncü şahıslar tarafından yapılır ve en son sürümü desteklemeyebilir. pkg biçimleri ve özellikleri.

Eksik İzni?

kullanma sudo Paket komut dosyanızda, komut dosyasının sonsuza kadar duraklatılmasına veya anında başarısız olmasına neden olabilir. Nasıl olacak sudo süper kullanıcı kimlik bilgilerini almak için kullanıcıyla etkileşimde bulunma komutu?

Kaldır sudo ve betiğini yaz izin testi devam etmeden önce yüklemek için, aksi halde bir hata yazdırın ve çıkın:

if [[ $EUID -ne 0 ]]; then
  echo "You must be a root to run this script" 2>&1
  exit 1
fi

Bu sorumluluğundadır installer Uygun yetki haklarını kazanmak ve paketin komut dosyalarını bu hakları kullanarak çalıştırmak. Paketinizde, bunun gerçekleşmesi için yönetici haklarına ihtiyacı olduğunu belirtin.

Günlükler ve Hatalar

Kullan verbose ile bayrak installer yükleme işleminin her adımını görmek ve hataları görmek için:

sudo installer -verbose -pkg /Library/Virtualbox.pkg -target /

Apple Paket Araçları

OS X üzerindeki yükleyici paketleri genellikle araçlarla birlikte oluşturulur pkgbuild ve productbuild. Bu iki Apple aracı, öncesi ve sonrası komut dosyalarını destekler; görmek --scripts bayrağı.

AutoPkg

Mac sistem yöneticileri genellikle açık kaynağı kullanır autopkg paket oluşturma aracı:

AutoPkg, OS X yazılım paketleme ve dağıtımı için, yönetilen istemcilere toplu dağıtım için üçüncü taraf yazılımı hazırlamak için normalde manuel olarak gerçekleştireceği görevlere yönelik bir otomasyon çerçevesidir.

AutoPkg'ın yeni Mac kurulumunu kolaylaştırmak için daha iyi bir yaklaşım olduğunu görebilirsiniz.


bile kod değişiklikleri olsa bile çalışmıyor. Iceberg postinstall'da çalıştırmıyor
Neropointer

ama autopkg hakkında öğrendiğim kadarıyla, bunun bir pkg oluşturma aracı değil, bir dağıtım aracı olduğu. Tüm pkg ve uygulama dosyalarını bir pkg'ye paketlemem gerekiyor, örneğin bunu bir çubuktan yürütmek için. Autopkg konusunda haklı mıyım, yoksa doğru kodu bulamayacak kadar aptal mıyım?
Neropointer

AutoPkg çok yetenekli ancak ihtiyaçlarınız için çok fazla olabilir. Görmek github.com/autopkg/autopkg/wiki/Getting-Started başlamak.
Graham Miln

Bir tarif kullanmak için autopkg veya git'i yeni bir mac'a yüklemem gerekiyor mu? Eğer öyleyse ne kadar iyi olursa olsun, tarifi yazacağım her şey benim için işe yaramaz. İhtiyacım olan şey, İnternet bağlantısı olmadan bile çalışan, önceden paketlenmiş bir paket.
Neropointer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.