18 Mart 2011 Cuma

Katılımsız Kurulum


Bu yazı daha önce saltokunur.org e-derginin Ocak 2010 sayısında yayınlanmıştır. 

-- ...zaten %95'imiz Windows'a program kurarken bütün seçeneklere "Next" deyip programın bir an önce kurulmasını istiyoruz. Keşke programlar varsayılan ayarlarıyla kendileri otomatik kurulsa, yani şu "Next" lere de basmasak. Mesela kurulacak program Program Files'da kendi varsayılan yerine kurulsa, başlat menüsüne, hızlı başlata, masaüstüne kısayol koysa, sağ tuş menüye kaydolsa, uygun dosya tipleriyle kendini ilişkilendirse. Ama bunların hepsini otomatik yapsa, biz bir şekilde kurulumu tetiklesek sonra da "ta taaa" program hazır...
-- Okumaya devam.

Konuyu özetlemeye çalışan bu diyalog girişten sonra yazımıza başlayabiliriz. Bu ayki konumuz Katılımsız Kurulum (Unattended Setup). Giriş diyalogundan anlamış olacağız üzere katılımsız kurulumda kullanıcı bir şekilde kurulumu tetikler (çift tıklama, ya da bir script yardımıyla) sonrasında kullanıcı kurulumla ilgilenmeden program kurulmuş olur.

Nerelerde Kullanılır?
Kullanım yerleri hayal gücünüzle sınırlı olmakla birlikte katılımsız kurulum, internet kafe, bilgisayar laboratuarları gibi aynı programın defalarca kurulması gerektiği durumlarda işe yarayabilir.
Kurulduğunda çeşitli programlar ve sürücüleriyle birlikte kurulan, kullanıcı ismi, şifre, yerel ayarları sormayan Windows CD'leri oluşturmada kullanılır.

Nasıl Yapılır?
Katılımsız kurulumlu programlar genelde üç şekilde oluşturulur.
i.Bir script yardımıyla
ii.Bir program yardımıyla
iii.Elle

i.Bir script yardımıyla
Bu yöntemde katılımsız kurulum yapılacak programlar zaten önceden bu işleme hazır halde gelirler. Yapmamız gereken kurulum dosyasını programın katılımsız kurulum parametresiyle çalıştırmaktır. Bunun için önce programın katılımsız kurulum parametresini bulmamız gerekiyor.

Katılımsız kurulum parametresi bulmak
Windows'ta bir programın kurulum dosyasını çeşitli parametrelerle çalıştırarak farklı ayarlarla ve farklı biçimlerle kurulmasını sağlayabiliriz. Örneğin bu ayarların bazıları kurulacak yer, program herkes için mi yoksa sadece oturum açmış kullanıcı için mi kurulacağı olabilir. Zaten normal program kurarken karşımıza gelen arayüzler de (hani şu "Next" lere bastığımız) programın setup dosyasına parametre gönderen InstallShield, NSIS gibi programlardır. Bir programın hangi parametrelerle kurulabileceğini programı /? parametresiyle çalıştırarak öğrenebilirsiniz. Çıkan pencerede çeşitli parametreler ve ne işe yaradıkları yazar. Bunlardan Silent Install, No User Interaction, Unattended Setup vb. özellikler programın katılımsız kurulmasını sağlar. Setup dosyasını bu parametrelerle çalıştırıp programı katılımsız kurabilirsiniz.


Katılımsız kurulum parametresi bulmanın bir diğer yolu USSF (Universal Silent Switch Finder) kullanmak. Bu programla birçok programın katılımsız kurulum parametresini bulabilirsiniz.


Uzantısı (*.msi) olan kurulum dosyaları Microsoft'un kendi yükleyici dosyalarıdır. Genelde bu uzantıya sahip dosyalar /? ile çalıştırıldığında ekran görüntüsündeki çıktıyı verir.


En son internette araştırma da yapabilirsiniz.

1) 7zip
Katılımsız kurulum parametremizi bulduktan sonra, şimdi sadece çift tıklamayla kurulan bir kurulum dosyası yapalım.
Birinci ve en çok kullanılan yöntem 7zip installer oluşturmak. 7zip temelde bir sıkıştırma programı olsa da bazı ek dosyalar yardımıyla yükleyici dosyaları da oluşturmaya da yarar.
  • Önce içinde çalışacağınız bir klasör oluşturun, sonra bu klasörün içinde "Bin" adında bir klasör oluşturun.
  • Katılımsız kurulumunu oluşturacağınız programı bütün gerekli dosyalarıyla birlikte bin içine kopyalayın.
  • İnternetten 7za.exe,7zsd.sfx,upx.exe dosyalarını indirin ve içinde çalıştığınız klasöre kopyalayın.
  • Yine bu klasörde "Config.txt" dosyasını oluşturun. İçine şunları yazın:

;!@Install@!UTF-8!
GUIMode="2"
RunProgram="tvc.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
;!@InstallEnd@!


Burada,
RunProgram="tvc.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
satırında tırnaklar arasına bin klasöründeki kulum dosyasının tam adını katılımsız kurulum parametresi ile birlikte yazın.

  • Aynı klasöre Create.cmd dosyası oluşturun , içine şunları yazın:
upx --ultra-brute 7zsd.sfx
cd Bin
..\7za a -mx=9 "..\Program.7z" *
cd ..
copy /b 7zsd.sfx + Config.txt + Program.7z tvc.exe
del Program.7z

  • Create.bat çift tıklayıp çalıştırın.
  • İşlem tamamlandıktan aynı klasörde Program.exe adıyla katılımsız kurulum dosyanız hazır.



2) AutoIt Script
AutoIt scriptleriyle çalışmakta olan processlere çeşitli klavye, fare sinyalleri gönderebilirsiniz. Örneğin bir autoit scriptiyle bir kurulum dosyasını çalıştırıp, sonra ona bu script yardımıyla butonlara (kurulum dosyasındaki "Next"), checkbox'lara tıklatabilir, klavye girdisi verebilirsiniz.
Script'i yazdıktan sonra AutoIt ile derleyip kuracağınız programla aynı klasöre koyup,scripti tetiklediğinizde katılımsız kurulumun gerçekleştiğini göreceksiniz.
Örneğin KMPlayer'ın katılımsız kurulum parametresi /S dir. KMP'nin kurulum dosyasını bu parametreyle çalıştırsanız bile ilk başta kurulum dilini soruyor, sonra katılımsız kurulumu gerçekleştiriyor. AutoIt ile kurulum dilini sorduğu ekranda "Next" e tıklatmamız yeterli. Aşağıdaki kodları .ac3 uzantılı bir dosyaya kaydedip AutoIt ile derleyip, kmpsetup.exe'nin yanında çalıştırın. Katılımsız kurulumun gerçekleştiğini göreceksiniz.

Run("kmpsetup.exe /S")
WinWait("Installer Language","Please select the language of the installer")
ControlClick("Installer Language","Please select the language of the installer","Button1")


ii.Bir program yardımıyla
1) WinRAR SFX Arşiv
WinRAR ile .exe uzantılı Kendi Açılır Arşivler (Self Extractor Archive) oluşturabilirsiniz. Bu dosyalar çift tıklandıklarında katılımsız kurulumda olduğu gibi kullanıcıya soru sormadan belirlenen konumlara dosyaları çıkarır. Ayarlamalar yapılırsa çıkarma başlamadan önce ve sonra çeşitli script ve programları çalıştıracak komutlar girebilirsiniz. "SFX Arşivi Oluştur" u seçip, "Gelişmiş" sekmesinde "SFX Ayarlarına" tıklamanız yeterli.

2)Çeşitli Programlar
Program Files'daki dosyaları bir setup dosyasında toplayan, WinRAR SFX Arşiv gibi ama daha gelişmiş özelliklere sahip kurulum dosyası oluşturan programları kullanabilirsiniz. Bu programlarla şu dosyaları Program Files'a kopyalara, şunlara kısayol oluştur, şu kayıtları kayıt defterine ekle, falanca .dll leri sisteme kaydet, kurulumu da katılımsız yap diyebilirsiniz.


iii.Elle
inf Dosyası Yazmak
Windows'ta kurulumların nasıl yapılacağını belirten .inf uzantılı ayar dosyaları vardır. Katılımsız yapacağınız programın kurulmuş (Program Files’a çıkartılmış) dosyalarını bir .CAB dosyasında sıkıştırıp, bir inf ayar dosyası ile bu dosyaları istediğiniz yere kopyalayabilir, istediğiniz programları çalıştırabilir, kayıt defterine kayıt girebilir, sisteme  dll kaydedebilir, masaüstü, başlat menüsüne kısayol atabilirsiniz. Kurulum yapmak için inf dosyasına sağ tıklayıp Yükle’yi tıklayın.
Ama bunların hepsini elle yamanız gerekir. Bu konu burada anlatılmayacak kadar karmaşık ve uzun. Yazmaya kalksam 3 sayılık yazı dizisi olur. Merak edenler internette araştırabilir.


Katılımsız Kurulum CD’si Oluşturmak
Katılımsız kurumlar en çok, katılımsız kurulumlu Windows CD'leri oluşturmada kullanılır. Bahsettimiz yöntemlerle oluşturulan dosyalar, katılımsız kurulum addon larına dönüştürülür ve nLite, RVMintegrator gibi programlarla CD'lere entegre edilir. Kurulumda lazım olan bilgiler (kullanıcı ismi, ürün şifresi, klavye düzeni...) bir dosyaya (winnt.sif) yazılır. Sistem yüklenirken, katılımsız kurulumlar bir script tarafından tetiklenir (WPI, RunOnce..).

Gelecek ay buluşmak dileğiyle...

Hiç yorum yok:

Yorum Gönder