From 753b96b6fd2ae866ff1785e95d5384adf87bfaf1 Mon Sep 17 00:00:00 2001 From: milisarge Date: Tue, 9 May 2017 21:33:04 +0300 Subject: [PATCH] miliskurulum --- ayarlar/gerekli_programlar | 3 + ayarlar/gerekli_programlar_kde | 3 + ayarlar/gerekli_programlar_lxqt | 3 + bin/kurulum.py | 1 - bin/milis-kurulum.py | 198 -------------------------------- 5 files changed, 9 insertions(+), 199 deletions(-) delete mode 100644 bin/milis-kurulum.py diff --git a/ayarlar/gerekli_programlar b/ayarlar/gerekli_programlar index 04d10f289..4b40679f6 100644 --- a/ayarlar/gerekli_programlar +++ b/ayarlar/gerekli_programlar @@ -45,4 +45,7 @@ xdg-user-dirs lxdm milislinux-saat python-pip +python3-yaml +python-yaml +python3-pythondialog komutan diff --git a/ayarlar/gerekli_programlar_kde b/ayarlar/gerekli_programlar_kde index da3400d88..8c2632aab 100644 --- a/ayarlar/gerekli_programlar_kde +++ b/ayarlar/gerekli_programlar_kde @@ -31,4 +31,7 @@ os-prober openjdk flashplayer xdg-user-dirs +python3-yaml +python-yaml +python3-pythondialog komutan diff --git a/ayarlar/gerekli_programlar_lxqt b/ayarlar/gerekli_programlar_lxqt index ffde04382..de6ccd014 100644 --- a/ayarlar/gerekli_programlar_lxqt +++ b/ayarlar/gerekli_programlar_lxqt @@ -40,4 +40,7 @@ xreader file-roller speedcrunch komutan +python3-yaml +python-yaml +python3-pythondialog lxdm diff --git a/bin/kurulum.py b/bin/kurulum.py index 0fd60b29c..bee51b81e 100755 --- a/bin/kurulum.py +++ b/bin/kurulum.py @@ -28,7 +28,6 @@ if kontrol: #gereklerin kontrolü-kurulumu paketd=site.getsitepackages() yukluler=os.listdir(paketd[0]) - mps_gerekler="/tmp/komutan.gerekler" kur="pip3 install " mpskur="mps kur " kontrol=[""] diff --git a/bin/milis-kurulum.py b/bin/milis-kurulum.py deleted file mode 100644 index a4b220fe3..000000000 --- a/bin/milis-kurulum.py +++ /dev/null @@ -1,198 +0,0 @@ -#!/usr/bin/python3 - -# Milis Linux Konsol / Grafik Kurulum Betiği -# Not: Bu betik henüz tamamlanmış değil. -# Commit tarihi: 25.09.2016 -# Dialog manuali için: http://pythondialog.sourceforge.net/doc/ - -import os,sys,re,subprocess,time -import crypt - -os.system("mps -GG") -if os.path.exists("/usr/bin/pip3") is False: - os.system("mps -G") - time.sleep(3) - os.system("mps kur python3-pip") - -else: - if 'pythondialog' in sys.modules: - print ("pythongialog yuklu") - else: - time.sleep(3) - os.system("pip3 install pythondialog") - -if os.path.exists("/usr/bin/acp") is False: - os.system("mps -G") - time.sleep(3) - os.system("mps kur advcp") -#lsb-release tamiri -time.sleep(3) -os.system("mps -sz lsb-release && mps -ik lsb-release") - -from dialog import Dialog - -d = Dialog(dialog="dialog") -f = open("/tmp/log.txt","w") - -def runShellCommand(c): - out = subprocess.check_output(c,stderr=subprocess.STDOUT,shell=True,universal_newlines=True) - return out.replace("\b","") #encode byte format to string, ugly hack - -def greetingDialog(): - status = d.yesno(title="Milis Linux'a hoş geldiniz !", - text="Tanıtım yazısı buraya gelecek...\n\n\n\nKuruluma devam etmek istiyor musunuz ?",width=70,height=10) - if status == "ok": - checkUsername() - else: - sys.exit() - -def checkUsername(): - - #status ok ya da cancel gibi durumları çekiyor. - status,username = d.inputbox(text="Lütfen kullanıcı adı giriniz") - - #NAME_REGEX bkz. man 5 adduser.conf - if bool(re.compile(r'^[a-z][-a-z0-9]*$').match(username)): - checkUserPassword(username) - else: - status=d.msgbox(text="Hatalı kullanıcı adı girdiniz.\n\n\ - Kullanıcı adları alfanümerik karakterle başlamalıdır\ - ve alfanümerik (A-Z), nümerik (0-9) ve tire (-) \ - harici bir karakter içermemelidir.",width=60) - if status == "ok": - checkUsername() - - -def createUser(name,username,password): - #encPass = crypt.crypt(password,"22") - #os.system("useradd -p "+encPass+ " -s "+ "/bin/bash "+ "-d "+ "/home/" + username+ " -m "+ " -c \""+ name+"\" " + username) - os.system("kopar milis-"+name+" "+username) - os.system('echo -e "'+password+'\n'+password+'" | passwd '+username) - -def checkUserPassword(username): - #insecure=True parolanın yıldız şeklinde gözükmesini sağlar, - #root şifresi sorarken belki bunu silebiliriz normal sudo şifresi - #girer gibi gözükmez. - status,password = d.passwordbox(text="Lütfen {} kullanıcısı için şifrenizi giriniz".format(username),insecure=True) - if len(password) > 0: - createUser(username,username,password) - f.write("[+] Kullanıcı eklendi") - d.infobox(text=username+" kullanıcısı başarıyla eklendi.") - if d.yesno(text="Yeni kullanıcı eklemek istiyor musunuz ?") == "ok": - checkUsername() - else: - chooseDisk() - else: - status=d.msgbox(text="Şifreniz boş olamaz") - checkUserPassword(username) - -def chooseDisk(): - diskChoice = [] - diskNames = runShellCommand("lsblk -nS -o NAME").split('\n') - diskModels = runShellCommand("lsblk -nS -o MODEL").split('\n') - for i in range(len(diskNames)): - diskChoice.append((diskNames[i],diskModels[i])) - status,selectedDisk = d.menu(text="Lütfen bölümleme yapmak istediğiniz diski seçiniz:",choices=diskChoice) - os.system("cfdisk /dev/" + selectedDisk) - choosePart() - -def choosePart(): - partChoice = [] - validParts = ['sd','hd','mmcblk0p'] - #Şimdilik Parted kütüphanesine gerek kalmadı, lsblk istediğimiz bütün değerleri alıyor. - diskParts = runShellCommand("lsblk -ln -o NAME | awk '{print $1}'").split('\n') - partSizes = runShellCommand("lsblk -ln -o SIZE | awk '{print $1}'").split('\n') - partFs = runShellCommand("lsblk -ln -o FSTYPE | awk '{print $1}'").split('\n') - partMajmin = runShellCommand("lsblk -ln -o MAJ:MIN | awk '{print $1}'").split('\n') - partLabel = runShellCommand("lsblk -ln -o LABEL").split('\n') #Bunda awk yok çünkü arada boşluk olabilir. - for i in range(len(diskParts)-1): - if partMajmin[i].split(":")[1] != "0": # partition olmayanları ele (sda/sdb seçince grub bozuluyor.) - for validPart in validParts: - if validPart in diskParts[i]: - partChoice.append((diskParts[i],partLabel[i]+ "\t" +partSizes[i]+"\t"+partFs[i])) - status,selectedPart = d.menu(text="Sistemin kurulacağı diski seçiniz",choices=partChoice) - if status == "ok": - f.write("{} seçildi !".format(selectedPart)) #burası da düzeltilcek şimdilik böyle commitliyorum :D - print("{} seçildi !".format(selectedPart)) - formatDialog(selectedPart) -def formatDialog(part): - status = d.yesno(title="Uyarı !", - text="/dev/{} bölümü ext4 türünde formatlanacak. Emin misiniz ?".format(part)) - if status == "ok": - d.infobox(text="Formatlanıyor... Lütfen bekleyiniz...") - formatPart(part) - time.sleep(5) - else: - choosePart() - -def formatPart(part): - hedef="/dev/"+part - os.system("umount "+hedef) - os.system("mkfs.ext4 "+hedef) - d.infobox(text="/dev/"+part+" Disk Formatlandı") - chooseSwap(part) - hedefBagla(hedef) - -def hedefBagla(hedef): - os.system("mount "+hedef+" /mnt") - d.infobox(text="hedef disk bağlandı.") - sistemKopyala(hedef) - -def sistemKopyala(hedef): - os.system("clear") - #print("\033c") - os.system("acp -g -axnu / /mnt") - #os.system("cp -axvnu / /mnt") - initrdOlustur(hedef) - -def initrdOlustur(hedef): - os.system("mount --bind /dev /mnt/dev") - os.system("mount --bind /sys /mnt/sys") - os.system("mount --bind /proc /mnt/proc") - os.system('chroot /mnt dracut --no-hostonly --add-drivers "ahci" -f /boot/initramfs') - if d.yesno(text="Grub kurmak istiyor musunuz ?") == "ok": - grubKur(hedef) - else: - kurulumBitir() - -def grubKur(hedef): - hedef = hedef[:-1] - if hedef == "/dev/mmcblk0": #SD kart'a kurulum fix - os.system("grub-install --boot-directory=/mnt/boot /dev/mmcblk0") - else: - os.system("grub-install --boot-directory=/mnt/boot " + hedef) - os.system("chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg") - kurulumBitir() - -def kurulumBitir(): - d.infobox(text="milis işletim sistemi kuruldu.") - -def chooseSwap(part): - swapChoice = [] - validParts = ['sd','hd','mmcblk0p'] - #Şimdilik Parted kütüphanesine gerek kalmadı, lsblk istediğimiz bütün değerleri alıyor. - diskParts = runShellCommand("lsblk -ln -o NAME | awk '{print $1}'").split('\n') - partSizes = runShellCommand("lsblk -ln -o SIZE | awk '{print $1}'").split('\n') - partFs = runShellCommand("lsblk -ln -o FSTYPE | awk '{print $1}'").split('\n') - partMajmin = runShellCommand("lsblk -ln -o MAJ:MIN | awk '{print $1}'").split('\n') - partLabel = runShellCommand("lsblk -ln -o LABEL").split('\n') #Bunda awk yok çünkü arada boşluk olabilir. - for i in range(len(diskParts)-1): - if partMajmin[i].split(":")[1] != "0": # partition olmayanları ele (sda/sdb swap için uygun değil) - if diskParts[i] != part: - for validPart in validParts: - if validPart in diskParts[i]: #loop partlar gibi swap kurulamayacak alanları ele - swapChoice.append((diskParts[i],partLabel[i]+ "\t" +partSizes[i]+"\t"+partFs[i])) - status,selectedPart = d.menu(text="Takas alanının yer alacağı disk bölümünü seçiniz",choices=swapChoice) - if status == "ok": - f.write("{} seçildi !".format(selectedPart)) #burası da düzeltilcek şimdilik böyle commitliyorum :D - print("{} seçildi !".format(selectedPart)) - setSwap(selectedPart) - -def setSwap(part): - os.system("mkswap "+"/dev/"+part) - os.system('echo "`lsblk -ln -o UUID /dev/' + part + '` none swap sw 0 0" | tee -a /etc/fstab') - - -if __name__ == "__main__": - - greetingDialog()