(https://forum.ubuntu-tr.net/proxy.php?request=http%3A%2F%2Fubuntuone.com%2F61ijD1QFH4Hh54A9gaSNuq&hash=2984220b90225cdbb3488c2fa7b02a4a632fc75e)
Resimdeki anlatımdan işlem sırasını izleyerek ,betiğimiz için "deb" paketleme işlemine başlayalım,
Örneğimiz için hazırladığım betik (http://ubuntuone.com/2iHPcv87VWXRrKeORF09Mb)
betiğimizin adı "
islematik"
Öncelikle betik isim ve versiyonunu belirten bir klasör oluşturalım,
cd /tmp
mkdir ./islematik-1.0
cd ./islematik-1.0
"
.glade" ve "
.py" uzantılı dosyaları bu dizin içine atalım,
Şimdi örnek "
setup.py" dosyası üzerinden gerekli diğer dosyaları oluşturalım,
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from distutils.core import setup
import glob
setup(name = "islematik",
version = "1.1.1"[1:],
author = "Anıl Çörekcioğlu",
url = "http://forum.ubuntu-tr.net",
author_email ="aaANILaa@gmail.com",
description = "Açıklama",
long_description = "Uzun Açıklama ",
license = "GPL",
platforms = 'linux',
data_files = [ ("/usr/share/islematik",glob.glob('./islematik.py') ),
("/usr/share/islematik",glob.glob('./islematik.glade') ),
("/usr/share/applications",glob.glob('./islematik.desktop') )],
scripts = ['islematik'] )
script dosyası:
echo '#/bin/bash
cd /usr/share/islematik
python /usr/share/islematik/islematik.py' > ./islematik
""
.desktop"" uzantılı menu dosyasıda bu şekilde olsun,
echo '[Desktop Entry]
Name=İslematik
Comment=İslematik
Categories=Utility;
Terminal=false
Type=Application
Exec=islematik
GenericName[tr_TR.utf8]=islematik' > ./islematik.desktop
Şimdi resimdeki işlem sırasından diğer bir yönergeye geçelim ve "
setup.py" dosyasına çalıştırma hakkı verip
yine uçbirimden,
sudo python setup.py install
komutunu uygulayalım...
ls
./build adında, içinde betik dosyasının olduğu bir dizin oluşacaktır.
Yine resimdeki yönergeye göre o dosyayla birlikte , dizin içindeki dosyaları arşive atmamız gerek;
Öncelikle;
sudo chmod -R 777 ./build
komutuyla bu dizinide erişelebilir kılalım,
sonrasında ;
tar -zcf islematik-1.0.tar.gz `ls`
komutuyla arşiv oluşturabiliriz...
Sıra geldi "
dh_make" komutuna ,
dh_make
- -c Lisans
- -e Email Adresi
- -f Arşiv Dosyası
- -p programismi-versiyon numarası
Yani;
dh_make -c GPL -e aaANILaa@gmail.com -f '/tmp/islematik-1.0/islematik-1.0.tar.gz' -p islematik-1.0
Alıntı Yap"Type of package: single binary, indep binary, multiple binary,library, kernel module, kernel patch or cdbs?"
sorusuna "
s" yazıp devam ediyoruz..
Komutu uyguladıktan sonra ;
ls
"
./debian " dizini içinde yardımcı dosyalarıyla birlikte oluşmuş olacaktır ,
gerekli kişiselleştirmelerde bu dosyaların değiştirilmesiyle oluşturabiliriz .
Ancak "
./debian/control" dosyası bizim işlemi bitirebilmemiz için son el atmamız gereken dosya
dosyanın içeriği benzeri bir şekilde olacaktır;
Source: islematik-1.0
Section: unknown
Priority: extra
Maintainer: py <aaANILaa@gmail.com>
Build-Depends: debhelper (>= 7)
Standards-Version: 3.8.3
Homepage: program için web adresi
Package: islematik-1.0
Architecture: any
Depends: bağımlılık,bağımlılık
Description: kısa Açıklama
uzun Açıklama
Bu dosya ilgili asağdaki özelleştirmeleride kayıt ettikten sonra;
gedit ./debian/control
Source: islematik-1.0
Section: unknown
Priority: extra
Maintainer: py <aaANILaa@gmail.com>
Build-Depends: debhelper (>= 7)
Standards-Version: 3.8.3
Homepage: http://forum.ubuntu-tr.net
Package: islematik-1.0
Architecture: any
Depends:python,python-gtk2
Description: blabalbalbal
uzun uzun bla
blablabalbal lbalbal
dpkg-buildpackage
komutunu uygulamamız "
.deb" paketini oluşturmamızı sağlıyacaktır.
".deb" paketine ise bir üst dizinden ulaşabiliriz;
cd ../;ls|grep deb
gnome-open ./islematik-1.0_1.0-1_amd64.deb
Alıntı Yap NOT: Oluşabilecek herhangibi bir bağımlılık hatasında;
sudo apt-get install dpkg-dev dh_make
komutunu uyguluyarak bağımlılık sorununu aşabilirsiniz..
Benim kullandığım yöntem bu şekilde, umarım faydası olur anlatımın :)
Teşekkürler anlatım için... Eline sağlık... Belli yormuş biraz =)=)
Alıntı yapılan: sem0900 - 12 Aralık 2010 - 00:44:04
Teşekkürler anlatım için... Eline sağlık... Belli yormuş biraz =)=)
Eh işte birazcık sağol @sem beğenmene sevindim =)
Konuyu sabitleyelim, eline sağlık @hitokiri.
Alıntı yapılan: heartsmagic - 12 Aralık 2010 - 01:43:46
Konuyu sabitleyelim, eline sağlık @hitokiri.
Teşekkkür ederim @heartsmagic.
debianda da oluyormu aynı işlem
Yarın sabah ilk işim Wiki'ye aktarmak olacak :)
@hitokiri parmaklarına sağlık çok güzel olmuş anlatım gayet net ve açıklayıcı
Teşekkürler @hitokiri anlatım için.
Favorilerime eklemişim , görünce hatırladım forumda böyle bi döküman olduğunu hemen uygulamaya geçiyorum :).
http://forum.ubuntu-tr.net/index.php?topic=40607.0
Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 22 Eylül 2013 - 09:12:50
Alıntı yapılan: hitokiri - 12 Aralık 2010 - 00:41:10
Örneğimiz için hazırladığım betik (http://indir.ubuntu-tr.net/ayrinti/41)
Bağlantı kırık .glade dosyasıyla python nasıl birleştirdiniz incelemek istiyorum. Bağlantıyı tazeleyebilirseniz çok sevinirim.
Alıntı Yaphttp://forum.ubuntu-tr.net/index.php?topic=35979.0
Sudo'nun bir sayısında glade ile ilgili bir yazı vardı aslında , şimdi bende de bulunmayabilir o bağlantıdaki dosyalar, eğer yardımcı olmaz ise sudo'daki yazı o zaman yazı üzerinden sorulara devam ederiz .)
Dosyalar bunlar
aboutofme.txt
icon.png
styukleyici.desktop
gnome-tweak-tool.desktop
info.txt
styukleyici.py
program kurulurken gnome-tweak-tool uda /usr/share/applications/ un içine atmasını istiyorum ama.
setup.py
script de tıkandım ve o bölümü tam anlayamadım.
Sizin örneğinize bakarak hazırladığım setup.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from distutils.core import setup
import glob
setup(name = "Simge Ve Tema Yükleyici",
version = "1.1.1"[1:],
author = "Yusuf DÜZGÜN",
url = "http://www.yusufduzgun.com",
author_email ="ysfduzgun92@gmail.com",
description = "simge ve tema yükleme programı",
long_description = "Simge ve Tema yüklemeye yarayan bir program",
license = "GPL",
platforms = 'linux',
data_files = [ ("/usr/share/styukleyici",glob.glob('./styukleyici.py') ),
("/usr/share/styukleyici",glob.glob('./icon.png') ),
("/usr/share/styukleyici",glob.glob('./info.txt') ),
("/usr/share/styukleyici",glob.glob('./aboutofme.txt') ),
("/usr/share/applications",glob.glob('./stukleyici.desktop') ),
("/usr/share/applications",glob.glob('./gnome-tweak-tool.desktop') )],
scripts = ['styukleyici']
)
Uygulama için tweak tool gerekiyorsa, onu bağımlılıklara ekleyebilirsin böylece öyle bir taşıma yapması gerekmez paketlemenin,
Script dediğimiz şey başlatıcı işte,
$PATH üzerindeki dosyalara , isimleriyle çalıştırılabilir oluyorlar buraya göndericeğimiz dosyada uygulmamızı çalıştırıcak olan şey,
cd /usr/share/uygulama
python ./uygulama.py
işte daha sonrasında "exec" kısımlarına bu dosyanın ismini ne yaptıksak onu yazıyoruz. )
Teşekkür ederim kafamdaki bir çok soru gitti, çalışmaya devam inşallah yaparım :)
Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 22 Eylül 2013 - 14:01:38
son paketleme esnasında hata alıyorum. Nerede hata yaptım acaba.
karboran@karboran-pc:/tmp/styukleyici-1.0$ dpkg-buildpackage
dpkg-buildpackage: source package styukleyici-1.0
dpkg-buildpackage: source version 1.0-1
dpkg-buildpackage: source changed by KarBoraN <ysfduzgun92@gmail.com>
dpkg-buildpackage: host architecture amd64
dpkg-source --before-build styukleyici-1.0
fakeroot debian/rules clean
dh clean
dh_testdir
dh_auto_clean
running clean
'build/lib.linux-x86_64-2.7' does not exist -- can't clean it
'build/bdist.linux-x86_64' does not exist -- can't clean it
removing 'build/scripts-2.7' (and everything under it)
removing 'build'
dh_clean
dpkg-source -b styukleyici-1.0
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building styukleyici-1.0 using existing ./styukleyici-1.0_1.0.orig.tar.gz
dpkg-source: warning: ignoring deletion of directory build
dpkg-source: warning: ignoring deletion of directory build/scripts-2.7
dpkg-source: warning: ignoring deletion of file build/scripts-2.7/styukleyici
dpkg-source: error: cannot represent change to styukleyici-1.0.tar.gz: binary file contents changed
dpkg-source: error: add styukleyici-1.0.tar.gz in debian/source/include-binaries if you want to store the modified binary in the debian tarball
dpkg-source: error: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b styukleyici-1.0 gave error exit status 2
karboran@karboran-pc:/tmp/styukleyici-1.0$ cd ..
karboran@karboran-pc:/tmp$ ls
plugtmp ssh-p8OcCcwEnreG styukleyici-1.0_1.0.orig.tar.gz
pulse-PKdhtXMmr18n styukleyici-1.0 unity_support_test.0
Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 22 Eylül 2013 - 14:07:38
Hazırladığım dosyalar
karboran@karboran-pc:/tmp/styukleyici-1.0$ ls
aboutofme.txt icon.png setup.py styukleyici.desktop
gnome-tweak-tool.desktop info.txt styukleyici styukleyici.py
setup.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from distutils.core import setup
import glob
setup(name = "Simge Ve Tema Yükleyici",
version = "1.1.1"[1:],
author = "Yusuf DÜZGÜN",
url = "http://www.yusufduzgun.com",
author_email ="ysfduzgun92@gmail.com",
description = "simge ve tema yükleme programı",
long_description = "Simge ve Tema yüklemeye yarayan bir program",
license = "GPL",
platforms = 'linux',
data_files = [ ("/usr/share/styukleyici",glob.glob('./styukleyici.py') ),
("/usr/share/styukleyici",glob.glob('./icon.png') ),
("/usr/share/styukleyici",glob.glob('./info.txt') ),
("/usr/share/styukleyici",glob.glob('./aboutofme.txt') ),
("/usr/share/applications",glob.glob('./stukleyici.desktop') ),
("/usr/share/applications",glob.glob('./gnome-tweak-tool.desktop') )],
scripts = ['styukleyici']
)
styukleyici
echo '#/bin/bash
cd /usr/share/styukleyici
python ./styukleyici.py
Bu haliyle hazırmı ? . Görünürde eksiği yok gibi ama.
Debian dizini oluştumu, oluştuysa ordaki dosylarada bir kaç düzenleme daha yapman gerek, oluşmadıysa eğer, baştan bir kontorl et bi şey eksik mi diye , şu an paketleyebildim ben XD
http://ubuntuone.com/5I3Ahes5u1opA7S2uhIaxn
burdan inceleyip gerekli değişikleri yaparak, dpkg-buildpackage komutuyla yeniden paketleyebilirsin, bin üzerindeki dosyayı düzenlemedim mesela ,bir kaç eskik var .)
Alıntı YapYine resimdeki yönergeye göre o dosyayla birlikte dizin içindeki dosyaları arşive atmamız gerek,
beni burası batırdı :D resim görünmüyor dosyaları atmadan paketlemeye çalışıyormuşum :D:D
stresliyim biraz :)
İlgili dosyaları bulabildim sonunda ve ilk iletiyi güncelledim , strese gerek yok , olur elbet .)
Sizin yapmış olduğunuz paketin içindeki debianın içinde styukleyicinin içinde usr ve DEBIAN klasörleri var orayı siz mi oluşturdunuz yoksa kendimi oluşuyor.
dpkg-source: error: cannot represent change to styukleyici-1.0.tar.gz: binary file contents changed
dpkg-source: error: add styukleyici-1.0.tar.gz in debian/source/include-binaries if you want to store the modified binary in the debian tarball
dpkg-source: error: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b styukleyici-1.0 gave error exit status 2
bu hatayı alıp duruyorum.
Evet o dosyaları kendisi oluşturuyor yukarıda anlattığı gibi zaten oluşturulan dosyalar içinde düzenlenmesi gereken yerler var.
Yaptım sonunda çok ama çok teşekkür ediyorum. Kuruluyor herşeyde çalışıyor . Tek sorunu sudo apt-get remove yazınca çıkmıyor. Kaldırma özelliği yokmu :).
Alıntı yapılan: karboran - 22 Eylül 2013 - 16:59:35
Yaptım sonunda çok ama çok teşekkür ediyorum. Kuruluyor herşeyde çalışıyor . Tek sorunu sudo apt-get remove yazınca çıkmıyor. Kaldırma özelliği yokmu :).
Çıkıyordur, paket ismi neydi acaba ?
<tab> tuşu ile tamamlamayı dene belki paket ismi 1-0 gibi bir şekilde kalmıştır, veya gdebi gibi bir programla bunu görebilirsin .)
@hitokiri galiba paketi hazırlarken hazırladığı sistemin bi yerlerini bozmuşum :). Masaüstümde denedim apt-get remove styukleyici-1.0 tak kaldırdı sorunsuz. Tekrar teşekkürler :)
PyVakitci nin son sürümünü bu yöntemle paketlemeye çalıştım ama olmadı.
setup.py, pyvakitci, control, pyvakitci.desktop dosyaları bu bağlantıda:
http://goo.gl/duZ22s
Kaynak kodlar burada:
http://goo.gl/2e6yI0
sudo python setup.py install sonrası build klasörü de oluşmadı:
$ sudo python setup.py install
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'script'
warnings.warn(msg)
running install
running build
running install_data
running install_egg_info
Removing /usr/local/lib/python2.7/dist-packages/PyVakitci-1.5.egg-info
Writing /usr/local/lib/python2.7/dist-packages/PyVakitci-1.5.egg-info
O olmadan yola devam ettiğimde de şu hatayı verdi:
$ dpkg-buildpackage
dpkg-buildpackage: kaynak paketi pyvakitci-1.5
dpkg-buildpackage: kaynak sürümü 1.5-1
dpkg-buildpackage: kaynak tarafından değiştirlidi Rahman Yazgan <rahmanyazgan@gmail.com>
dpkg-buildpackage: sunucu mimarisi i386
dpkg-source --before-build pyvakitci-1.5
fakeroot debian/rules clean
dh clean
dh_testdir
dh_auto_clean
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'script'
warnings.warn(msg)
running clean
'build/lib.linux-i686-2.7' does not exist -- can't clean it
'build/bdist.linux-i686' does not exist -- can't clean it
'build/scripts-2.7' does not exist -- can't clean it
dh_clean
dpkg-source -b pyvakitci-1.5
dpkg-source: bilgi: '3.0 (quilt)' kaynak kod formatı kullanılıyor
dpkg-source: bilgi: building pyvakitci-1.5 using existing ./pyvakitci-1.5_1.5.orig.tar.gz
dpkg-source: hata: cannot represent change to pyvakitci-1.5.tar.gz: Çalıştırılabilir dosya içeriği değiştirildi
dpkg-source: hata: add pyvakitci-1.5.tar.gz in debian/source/include-binaries if you want to store the modified binary in the debian tarball
dpkg-source: hata: unrepresentable changes to source
dpkg-buildpackage: hata: dpkg-source -b pyvakitci-1.5 gave error exit status 2
setup.py ile ilgili sorun için 13.10 üzerinde şöyle bir şey yapmak gerekiyormuş,
http://stackoverflow.com/questions/12767023/python-packaging
Bu şekilde ilgili dizin oluştui bu aşamayı bu şekilde geçerek eğer bir sonuca ulaşabilirsen , sanırım sorun çözülmüş olur, olmazsa eğer yine bir bakarız. XD
Bu arada program ismi ve versiyon numarısnda olan bir klasörün içine yerleştiriyoruz , ilgili dosyaları .
Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 28 Ekim 2013 - 19:35:22
Ve birde bundan önce aslında esas sıkıntı meğer script'te imiş setup.py 'yi şu şekilde kullanabilirsin , bilemiyorum bir hata var mı artık kontrol edersin..
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from distutils.core import setup
import glob
setup (
name = "PyVakitci",
version = "1.5",
url = "http://code.google.com/p/pyvakitci",
author = "Rahman Yazgan",
author_email = "rahmanyazgan@gmail.com",
description = "Namaz vakitlerini gösterir, ezan okur.",
long_description = "Diyanet verilerine göre tüm ülkeler için namaz vakitlerini gösterir. Ezan ve ezan duasını okur.",
platforms = "linux",
data_files = [
('/usr/share/applications', glob.glob('./PyVakitci.desktop')),
('/usr/share/pyvakitci', glob.glob('./ontanimli_ayarlar.ini')),
('/usr/share/pyvakitci', glob.glob('./GPLv3_EN.html')),
('/usr/share/pyvakitci', glob.glob('./GPLv3_TR.html')),
('/usr/share/pyvakitci', glob.glob('./Program.py')),
('/usr/share/pyvakitci/moduller', glob.glob('./moduller/*.*')),
('/usr/share/pyvakitci/ses_dosyalari', glob.glob('./ses_dosyalari/*.*')),
('/usr/share/pyvakitci/resimler', glob.glob('./resimler/*.*'))
],
scripts = ['pyvakitci'],
)
Yeni setup dosyasıyla tekrarladım işlemleri.
Tüm adımları baştan birkaç defa yaptım ama aynı hatayı alıyorum.
dpkg-buildpackage: hata: dpkg-source -b pyvakitci-1.5 gave error exit status 2
Sizde deb paketi oluşuyor mu?
setup.py dosyası olması gerektiği gibi mi @vrs hâliyle uygulamayı bilmediğim için, tam olarak bir yerde hata varmı öngeremiyorum, muhtemelen bende de aynıdır , eğer bir değişiklik olursa paketleme aşamasında buradan paylaşarım , neden olduğunu ve dosyaları o zamana kadar , biraz beklemek gerek tabii, hata kodunu google ile aratıp bakacaz artık :D
@hitokiri, bu güzel paylaşım ve emeğin için teşekkürler :)
Yakın zaman da işime yarayacak inşallah... :)
Teşekkürler @arpia , yakın zamanda takdir etmek üzere o zaman :)
@vrs ben şu an paketliyebildim dh_make için oluşturduğumuz dizin içinde tar.gz uzantılı dosyayı silip, dpkg-buildpackge komutunu yeniden vermeyi deneyebilirsin :)
Aslında her seferinde bu komutlara yazmak zor geldiği için ben ".bashrc" dosyama bir fonksiyon eklemiştim yeri gelmişken onuda paylaşayım , hatta bu silme işlemini orayada ekleyeyim şimdi XD
paketle_sunu() {
sudo rm -rf build/ debian/
sudo python setup.py install
sudo chmod -R 777 build/
tar -zcf $@.tar.gz *
dh_make -c GPL -e mail@adresi -f ./$@.tar.gz -p "`echo $@|cut -d "-" -f1`"
rm -rf ./$@.tar.gz
dpkg-buildpackage
}
Mail adresini yazdıktan sonra ,
paketle_sunu pyvatikci-1.5
gibi bir kullanımı var .
@hitokiri teşekkürler bende de oldu bu sefer.
Tabi 3 günümü biraz boşa harcattın, ceza olarak bu işi görsel arayüze aktaracaksın :)
Alıntı yapılan: virs - 30 Ekim 2013 - 13:09:14
@hitokiri teşekkürler bende de oldu bu sefer.
Tabi 3 günümü biraz boşa harcattın, ceza olarak bu işi görsel arayüze aktaracaksın :)
pyvakitçi için gtk+ arayüzünü mü kasıt ediyorsun ?
Yoksa başka bir şey mi, ne olursa olsun önümüzdeki bir kaç ay sonra ilgilenebilirim ancak , bakarız artık uygun olunca ..
Alıntı yapılan: hitokiriAlıntı yapılan: virs - 30-10-2013, 13:09:14@hitokiri teşekkürler bende de oldu bu sefer.
Tabi 3 günümü biraz boşa harcattın, ceza olarak bu işi görsel arayüze aktaracaksın pyvakitçi için gtk+ arayüzünü mü kasıt ediyorsun ?
Yoksa başka bir şey mi, ne olursa olsun önümüzdeki bir kaç ay sonra ilgilenebilirim ancak , bakarız artık uygun olunca ..
Deb paketi yapma işini görsel arayüze aktarabilirsin. Bu konudaki diğer uygulamalar çalışmadığına göre bu uygulama öne çıkacaktır :)
Bunu hazırlamak aslında hiçte zor bir şey değil @vrs, hatta zenity ilede bir şeyler yapılabilir ancak böyle bir işlem için kullanıcının kendi sorunlarını çözebiliyor ya da buna zaman ayırabiliyor olması gerek ; çünkü ileriki sürümlerde komutlar ve kullanımları değişedebilir. O yüzden böyle anlatım olarak kalması bana daha uygun geliyor.Hem bir sorun yaşandığında ne yapılması gerektiğide daha rahat anlaşılabiliyor. Elbetteki böyle bir uygulama olabilir / ya da çalışmayan uygulamaların neden çalışmadığı raporlanabilir, öneri için teşekkürler. XD