def ac(paket_adi, komut_dizini): alt.yap("echo -e '\E[0;32m'\"\033[1mExtracting...\033[0m\"") if alt.dizin_varmi("/usr/share/paketci/gecici"): pass else: alt.dizin_yap("/usr/share/paketci/gecici") # Gerekli geçici dizinleri oluşturuyoruz. alt.dizine_gec("/usr/share/paketci/gecici") alt.yap("mkdir " + paket_adi) alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi) print "Paket için geçici dizin oluşturuluyor: ", alt.dizin_ne() print "---------------------------" print "Geçici dizinler oluşturuldu" print "---------------------------" # Komutun verildiği dizinde bulunan kaynak paketi geçici dizine kopyalıyoruz. print "Copying package to a temporary directory." alt.dizine_gec(komut_dizini) alt.yap("cp " + paket_adi + ".deb " + "/usr/share/paketci/gecici/" + paket_adi) alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi) # Paketi açıyoruz. print '"' + paket_adi + '" is now extracting...' alt.yap("ar xv " + paket_adi + ".deb") alt.dizin_yap("/usr/share/paketci/gecici/" + paket_adi + "/control") alt.dizin_yap("/usr/share/paketci/gecici/" + paket_adi + "/data") # "control.tar.gz" ve "data.tar.gz" dosyalarını açıyoruz. print '\n"control.tar.gz" is extracting...\n' alt.yap("tar xzvf control.tar.gz --directory=control") print '\n"data.tar.gz" is extracting...\n' alt.yap("tar xzvf data.tar.gz --directory=data") print "All done!"
def kaldir(): paket_listesi = {} art = 1 alt.dizine_gec("/usr/share/paketci/kayit/debian") for kok, dizinler, dosyalar in alt.dizin_listele("/usr/share/paketci/kayit/debian"): if dizinler != []: for k in dizinler: paket_listesi[art] = k art = art + 1 else: pass # Kaldırılabilecek paket yoksa hata veriyoruz. if paket_listesi == {}: print "Error." alt.cik() alt.yap("echo -e '\E[0;32m'\"\033[1mInstalled packages:\033[0m\"") print "\n".join("%s) %s" % (k, v) for k, v in paket_listesi.items()) paket_adi = "" paket_no = input("Please input the number of the package: ") try: paket_adi = paket_listesi[paket_no] except: print "Error" alt.cik() # Eğer varsa prerm script'i çalıştırılacak. alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi) if alt.dosyami("prerm"): alt.yap("echo -e '\E[0;32m'\"\033[1mRunning prerm.sh\033[0m\"") alt.yap("./prerm remove") alt.yap("echo -e '\E[0;32m'\"\033[1mPre-Remove operations has done.\033[0m\"") # "kur" ile oluşturduğumuz "silme_kaydi" dosyasındaki tüm dosyalara "rm -rf" uygulayacağız. if not alt.dizin_varmi("/usr/share/paketci/kayit/debian/" + paket_adi): print "Error!" alt.cik() alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi) silme = open("silme_kaydi", "r") while 1: satir = silme.readline() if not satir: # Başka satır kalmadıysa çık. break alt.yap("rm -rf " + satir) silme.close() # Eğer varsa postrm script'i çalıştırılacak. alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi) if alt.dosyami("postrm"): alt.yap("echo -e '\E[0;32m'\"\033[1mRunning postrm.sh\033[0m\"") alt.yap("./postrm remove") alt.yap("echo -e '\E[0;32m'\"\033[1mPost-Remove operations has done.\033[0m\"") # Kaldırma tamamlandı Kullanıcıyı bilgilendiriyoruz. alt.yap("echo -e '\E[0;31m'\"\033[1m------------------------\033[0m\"") alt.yap("echo -e '\E[0;32m'\"\033[1mPackage removed successfully!\033[0m\"") alt.yap("echo -e '\E[0;31m'\"\033[1m------------------------\033[0m\"") # Son olarak "kayit/debian" altındaki paketimize ait klasörü siliyoruz. alt.dizine_gec("/usr/share/paketci/kayit/debian/") alt.dizin_sil(paket_adi) print "Package removed from database."
def kur(paket_adi): alt.dizine_gec("/usr/share/paketci/kayit/debian") if alt.dizin_varmi(paket_adi): alt.yap("rm -rf " + paket_adi) # Paketin adıyla bir dizin oluşturuyoruz, buraya silme kaydı gelecek. alt.dizine_gec("/usr/share/paketci/kayit/debian") alt.yap("mkdir " + paket_adi) print "---------------------------------" print "Uninstall data succesfully written" print "---------------------------------" # Varsa preinst script'ini çalıştırıyoruz. alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi + "/control") if alt.dosyami("preinst"): alt.yap("echo -e '\E[0;32m'\"\033[1mRunning preinst.sh\033[0m\"") alt.yap("./preinst install") alt.yap("echo -e '\E[0;32m'\"\033[1mPre-Installation operateions has done.\033[0m\"") # Dosyaları kopyalıyoruz. print "Installing..." alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi + "/data") alt.yap("cp * / -r") # Varsa postinst script'ini çalıştırıyoruz alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi + "/control") if alt.dosyami("postinst"): alt.yap("echo -e '\E[0;32m'\"\033[1mRunning postinst.sh\033[0m\"") alt.yap("./postinst configure") alt.yap("echo -e '\E[0;32m'\"\033[1mPost-Installation operations has done.\033[0m\"") print "Creating remove scripts." # Eğer varlarsa prerm ve postrm scriptlerini kaydediyoruz. alt.dizine_gec("/usr/share/paketci/gecici/" + paket_adi + "/control") if alt.dosyami("prerm"): alt.yap("echo -e '\E[0;32m'\"\033[1mRecording prerm.sh\033[0m\"") alt.yap("cp prerm " + "/usr/share/paketci/kayit/debian/" + paket_adi) if alt.dosyami("postrm"): alt.yap("echo -e '\E[0;32m'\"\033[1mRecording postrm.sh\033[0m\"") alt.yap("cp postrm " + "/usr/share/paketci/kayit/debian/" + paket_adi) # Kopyalamadan sonra ileride paketin kaldırılabilmesi için "kayit" dizini altına yukarıdaki komut ile kopyalanmış # dosyaların listesini kaydediyoruz. alt.dizine_gec("/usr/share/paketci/kayit/debian/" + paket_adi) kayit = open("silme_kaydi", "w") # İleride dosyaların sağlamlığının kontrol edilebilmesi için tüm dosyaların md5sum değerlerini topluyoruz. kontrol = open("kontroller", "w") # "silme_kaydi" dosyasındaki tüm satırlar, paket kaldırılmak istenirse "rm -rf [satir]" komutundan geçirilecek for kok, dizinler, dosyalar in alt.dizin_listele("/usr/share/paketci/gecici/" + paket_adi + "/data"): for isim in dosyalar: # HemenKur'a ait dizin parçalarını kayda geçirmiyoruz. uzunluk = len("/usr/share/paketci/gecici/" + paket_adi + "/data") kayit.write(os.path.join(kok, isim)[uzunluk:]) kayit.write("\n") # Burada kurulum sırasında sisteme yerleştirilen her dosyanın md5sum değerini kaydediyoruz. # İleride dosyaların bozuk olup olmadığı bu sayede kontrol edilebilecek. if os.path.isfile(os.path.join(kok, isim)): temp = 0 metin = "" while temp != len(os.path.join(kok, isim)): if os.path.join(kok, isim)[temp] == " ": metin = metin + "\\" + os.path.join(kok, isim)[temp] else: metin = metin + os.path.join(kok, isim)[temp] temp = temp + 1 md5_degeri = os.popen("md5sum " + metin).readline() # Dosyaların yolundan paketci/gecici kısımlarını çıkarıyoruz. md5_yaz = md5_degeri.split(" ")[0] dosya_yolu = md5_degeri.split(" ")[2][uzunluk:] kontrol.write(md5_yaz + " " + dosya_yolu) metin = "" # "silme_kaydi"nı ve kontrol'ü kapatıyoruz kayit.close() kontrol.close() # "gecici" dizinindeki paketimizi kaldırıyoruz. alt.dizine_gec("/usr/share/paketci/gecici") alt.yap("rm -rf " + paket_adi) print "\nUninstallation script has created." # İşimiz bittiğine göre "gecici" dizinindeki herşeyi kaldırıyoruz. alt.dizine_gec("/usr/share/paketci/gecici") alt.yap("rm -rf *")