[Project] alldeb

Aplikasi-aplikasi diubuntu: • Aplikasi Grafis •
Aplikasi Internet •
Aplikasi Office •
Aplikasi Sound & Video •
Aplikasi Programming
User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

[Project] alldeb

Post by nif » 18 Mar 2013, 22:48

update Sept 2013
ebook alldeb :
http://ubuntu-indonesia.com/forums/ubbt ... Post141010
---------------

Kali ini saya ingin share project sederhana yang saya buat.
Project ini namanya alldeb, ditujukan untuk mempermudah sharing aplikasi pada pengguna OS Linux berbasis APT.
Cuma sekedar bash script coba2, kalo ada kesalahan harap dikoreksi :smile:

#Ide Dasar
Bagi kita di Linux, kita memiliki begitu banyak aplikasi yang gratis dan bebas. Kita bebas meng-copy dan meyebarkannya pada orang lain. Ironisnya, hal ini justru agak sulit kita lakukan karena masalah dependensi.
Misalkan saya menggunakan Ubuntu Precise 32-bit dan baru saja menginstall Gimp terbaru. Saya tau ada teman saya yang pakai Ubuntu Precise 32-bit juga. Apakah saya bisa meng-copy file-file Gimp tadi lalu memberikan pada teman saya untuk diinstall di komputernya? Susah, saya harus merunut dependensinya satu persatu :confused:
Nah, itulah dasar saya membuat project alldeb ini.
Sebagai gambaran, tujuan saya adalah membuat 2 script, yaitu alldeb_maker dan alldeb_user. Di komputer saya, saya ingin bisa menggunakan alldeb_maker untuk mencari file .deb Gimp beserta file-file .deb dependensi yang dibutuhkannya, lalu mengemasnya menjadi satu buah file tunggal (saya namakan file alldeb).
Selanjutnya, file alldeb tersebut dapat saya berikan ke teman saya. Teman saya tinggal menggunakan alldeb_user untuk menginstall file alldeb itu ke komputernya. Gimp akan terinstall tanpa perlu tambahan file lain lagi. Selesai.

Asik kan? :laugh:
Maap, jangan senang dulu, karena pada kenyataannya tidak semudah itu :smile:
APT pada dasarnya tidak didesain untuk cara kerja seperti itu. Jadi, ada batasan-batasan yang harus kita penuhi..


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 18 Mar 2013, 22:49

#Syarat 1 : Profil APT
Satu hal yang perlu diperhatikan, susunan paket-paket APT yang terinstall di tiap komputer bersifat unique. Paket-paket yang dibutuhkan untuk menginstall aplikasi Gimp di komputer saya, sangat mungkin berbeda dengan paket-paket yang dibutuhkan untuk menginstall Gimp di komputer teman saya. Begitu pun di komputer lainnya.
Lalu, bagaimana agar alldeb_maker di komputer saya dapat membuat komposisi alldeb yang sesuai untuk menginstall aplikasi di komputer teman saya? Nah, yang saya butuhkan adalah profil APT komputer teman saya tersebut.
Apa yang saya sebut sebagai "profil APT" adalah file bernama 'status' yang berada di directory /var/lib/dpkg. File ini memuat daftar semua paket yang telah terinstall beserta statusnya. Dengan membaca salinan file /var/lib/dpkg/status milik komputer teman saya, barulah alldeb_maker di komputer saya akan dapat menyusun file alldeb dengan komposisi paket yang tepat.
Jadi, syarat pertama untuk menggunakan alldeb_maker adalah bahwa kita harus memiliki salinan file /var/lib/dpkg/status dari komputer yang kita tuju.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 18 Mar 2013, 22:49

#Syarat 2 : Repository & Arsitektur
Syarat berikutnya, distro komputer alldeb_maker dan komputer alldeb_user harus berasal dari repository yang sama, dan arsitektur yang sama.
Misalnya;

- Jika komputer saya Ubuntu 12.10 32-bit sedangkan teman saya Ubuntu 12.10 64-bit --> tidak bisa
Alasan : Perbedaan arsitektur

- Jika komputer saya Ubuntu 12.04 sedangkan teman saya Ubuntu 12.10 --> jangan
Alasan : Ubuntu 12.04 menggunakan repository Ubuntu Precise sedangkan Ubuntu 12.10 menggunakan repository Ubuntu Quantal

- Jika komputer saya Xubuntu 12.04.1 sedangkan teman saya Lubuntu 12.04.2 --> bisa
Alasan : Sama-sama menggunakan repository Ubuntu Precise

- Jika komputer saya Kubuntu 12.04.1 sedangkan teman saya LinuxMint 13 (Ubuntu-based) --> bisa, tapi mungkin tidak semua aplikasi
Alasan : LinuxMint 13 bisa menggunakan paket-paket dari repository Ubuntu Precise, tapi ada bagian yang tidak berasal dari repository Ubuntu Precise

- dan seterusnya.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 18 Mar 2013, 22:51

#Langsung ke Praktek : Cara Instalasi

Edit :
file di halaman ini sudah saya hapus, karena versi lama (versi R1).
silahkan download yang versi lebih baru (versi R2), saya sertakan di dalam ebook-nya di sini;
http://ubuntu-indonesia.com/forums/ubbt ... Post141010


- alldeb_maker
[spoiler]1. Buatlah sebuah directory kosong. Terserah letaknya di mana. Kita akan menggunakannya sebagai profil_dir.
2. Download file alldeb_maker_R1.zip di bawah, lalu ekstrak. Kita akan mendapatkan file bernama alldeb_maker_R1.sh
3. Buka file alldeb_maker_R1.sh dengan teks editor. Silahkan edit baris ke-8, ubah menjadi path ke profil_dir yang kita buat di langkah pertama. Silahkan edit juga konfigurasi lain jika perlu. Lalu Save.
4. Buka terminal, pindah directory (cd) ke tempat kita meletakkan file alldeb_maker_R1.sh
5. Ketikkan :
sudo mv alldeb_maker_R1.sh /usr/local/bin/alldeb_maker
6. Beri permission eksekusi, dengan cara ketikkan :
sudo chmod +x /usr/local/bin/alldeb_maker

contoh :
Image[/spoiler]
Selesai. Sekarang jika kita ingin membuat alldeb, kita tinggal memasukkan profil APT komputer tujuan (salinan file /var/lib/dpkg/status) ke profil_dir, lalu memanggil alldeb_maker dengan mengetikkan perintah alldeb_maker dari mana pun di terminal.


- alldeb_user
[spoiler]1. Download file alldeb_user_R1.zip di bawah, lalu ekstrak. Kita akan mendapatkan file bernama alldeb_user_R1.sh
2. Buka terminal, pindah directory (cd) ke tempat kita meletakkan file alldeb_user_R1.sh
3. Ketikkan :
sudo mv alldeb_user_R1.sh /usr/local/bin/alldeb_user
4. Beri permission eksekusi, dengan cara ketikkan :
sudo chmod +x /usr/local/bin/alldeb_user

contoh :
Image[/spoiler]
Selesai. Sekarang kita dapat memanggil alldeb_user dengan mengetikkan perintah alldeb_user dari mana pun di terminal.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 18 Mar 2013, 22:51

#Cara Penggunaan : alldeb_maker
Untuk memanggil alldeb_maker, kita tinggal mengetikkan perintah alldeb_maker dari mana pun di terminal. Namun sebelumnya, kita harus memastikan dulu bahwa path ke profil_dir telah di-set dengan benar, dan kita telah memasukkan file profil yang dituju ke dalam folder profil_dir.

Cara penggunaan alldeb_maker sangat mudah. Kita tinggal mengetikkan aplikasi apa yang ingin kita buat menjadi alldeb. Kita bisa memilih aplikasi apapun, tidak harus yang sudah terinstall di komputer kita, asalkan tersedia di Software Sources (repository) yang kita gunakan. Nama aplikasi sesuai dengan nama yang kita gunakan di apt-get.

[spoiler]Image[/spoiler]
Selanjutnya, alldeb_maker akan secara otomatis menyusun daftar paket-paket yang diperlukan. Kemudian, akan memeriksa APT archives di komputer kita untuk mencarinya.

[spoiler]Image[/spoiler]
Jika semua paket yang diperlukan telah tersedia di APT archives kita, alldeb_maker akan otomatis menyalin paket-paket tersebut lalu mengolahnya menjadi sebuah file alldeb. Selesai.

[spoiler]Image[/spoiler]
Lalu, bagaimana jika tidak semua paket bisa ditemukan di APT archives kita? Jika ini yang terjadi, aldeb_maker akan menanyakan pada kita apakah bersedia melakukan download atau tidak. Setelah semua paket berhasil di-download, akan segera diolah menjadi file alldeb.

[spoiler]Image[/spoiler]


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 18 Mar 2013, 22:52

#Cara Penggunaan : alldeb_user
Untuk memanggil alldeb_user, kita tinggal mengetikkan perintah alldeb_user dari mana pun di terminal. Begitu dipanggil, alldeb_user akan meminta kita menunjukkan file alldeb mana yang ingin kita install.

Di bagian ini ada 3 mode.
Pertama, jika di komputer Anda terinstall program zenity, maka alldeb_user akan menggunakan zenity sebagai GUI.
[spoiler]Image[/spoiler]
Kedua, jika di komputer Anda tidak terinstall zenity tapi ada kdialog, maka alldeb_user akan menggunakan kdialog sebagai GUI.
[spoiler]Image[/spoiler]
Ketiga, jika di komputer Anda belum terinstall zenity maupun kdialog, maka alldeb_user akan menggunakan mode terminal.
[spoiler]Image[/spoiler]

Setelah kita memilih file alldeb yang ingin diolah (lewat salah satu dari 3 mode di atas), selanjutnya alldeb_user akan membaca file alldeb tersebut. Alldeb_user akan menampilkan informasi/keterangan yang tertulis di dalamnya, lalu menanyakan apakah kita yakin untuk melakukan install.

[spoiler]Image[/spoiler]
Jika kita memberi konfirmasi untuk install, alldeb_user akan segera menjalankan proses installasi.

[spoiler]Image[/spoiler]

Selesai.




...bersambung, insya Allah

[ update : saya telah menuliskan sambungannya di sini ]


User avatar
Malsasa
Posts: 2976
Joined: 07 Jun 2010, 22:37
Location: Mojokerto, Indonesia
Contact:

Post by Malsasa » 18 Mar 2013, 22:52

Saya sangat bahagia kalau bisa membantu. Saya dukung proyek ini 100%!


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 18 Mar 2013, 23:05

@Malsasa : terima kasih. idenya dari kang Malsasa juga kok, yang dibahas di IRC itu (padahal tumben saya masuk IRC :grin: )


User avatar
Malsasa
Posts: 2976
Joined: 07 Jun 2010, 22:37
Location: Mojokerto, Indonesia
Contact:

Post by Malsasa » 18 Mar 2013, 23:07

Lho, yang mana itu, Kang? Yang /var/cache/apt/archives?

Terima kasih banyak. Akan sangat-sangat membantu kami pengguna Linux di Indonesia.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 18 Mar 2013, 23:10

iya, ide untuk mencari file .deb di /var/cache/apt/archives, lalu mengumpulkannya jadi satu tempat berdasar aplikasi. Saya cuma mengembangkannya sedikit. :smile:
Last edited by nif on 27 Feb 2016, 21:50, edited 1 time in total.
Reason: salah ketik


User avatar
Malsasa
Posts: 2976
Joined: 07 Jun 2010, 22:37
Location: Mojokerto, Indonesia
Contact:

Post by Malsasa » 18 Mar 2013, 23:12

WHOAAA! Inilah yang saya nanti-nantikan! Saya tak mau kalah, nih. Saya ingin bantu-bantu sedikit. Sangat menarik!

Tunggu tanggal mainnya :) Terima kasih banyak, Kang! Terima kasih!


User avatar
q_p
Posts: 3109
Joined: 14 Oct 2012, 13:01
Contact:

Post by q_p » 18 Mar 2013, 23:16

Great Job :D
Saya nantikan "edisi bersambung"-nya ...


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 20 Mar 2013, 22:16

@Malsasa : sip. saya nantikan :laugh:

@Pragola_Pati : makasih om. iya, sengaja saya potong biar gak terlalu panjang :smile:


User avatar
ndundupan
Posts: 116
Joined: 28 Jan 2010, 13:09
Location: Surabaya
Contact:

Post by ndundupan » 22 Mar 2013, 07:28

wah ini bakal sangat membantu buat yang sulit internet :D


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 22 Mar 2013, 20:11

@ndudupan : semoga om :smile:
bagi temen2 kita yang punya internet, alldeb ini dapat dengan mudah digunakan untuk membuat backup aplikasi dalam bentuk single file, seperti offline installer. Selain dapat digunakan sendiri (terutama ketika jika install ulang), tentunya juga dapat di-share ke orang lain.
Tapi bagian itu belum saya tulis :grin:


User avatar
Malsasa
Posts: 2976
Joined: 07 Jun 2010, 22:37
Location: Mojokerto, Indonesia
Contact:

Post by Malsasa » 22 Mar 2013, 20:17

Itulah yang sangat saya nanti-nantikan! Saya akan setia menunggu!

Fitur itu sangat-sangat penting, Kang! Saya mau jadi pengunduh pertama.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 22 Mar 2013, 20:50

oh, programnya sama kok kang Malsasa, pake alldeb_maker dan alldeb_user di atas :smile:
yang kita atur cuma penggunaan profil-nya.

Kalo kita pake profil milik komputer A, maka alldeb_maker akan membuat file alldeb yang sesuai untuk diinstall di komputer A.

Kalo kita pake profil milik komputer B, maka alldeb_maker akan membuat file alldeb yang sesuai untuk diinstall di komputer B.

Nah, bagaimana kalo kita menggunakan profil dari Ubuntu 12.04 yang baru fresh install? Tentu hasilnya adalah file alldeb yang sesuai untuk semua komputer Ubuntu 12.04 yang fresh install juga (ditambah semua komputer Ubuntu 12.04 yang sudah lama digunakan , tapi paket2 penting yang terinstall default ketika fresh install masih ada) :smile:

Penjelasan lengkapnya agak penjang, saya masih berusaha menulis dengan bahasa yang lebih mudah dipahami :grin:


User avatar
irwanatam
Posts: 68
Joined: 23 Feb 2012, 19:42
Location: Tamiang , Aceh, Indonesia
Contact:

Post by irwanatam » 23 Mar 2013, 11:35

wah wah wah, ini proyek hebat, sudah lama sekali ane menanti ada aplikasi yang seperti ini, sebab ane juga sering install linux di komputer teman dan kondisinya tidak ada jaringan internet, barakallahu fik


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 24 Mar 2013, 06:49

@irwanatam : terima kasih om :smile:
pada intinya project ini bertujuan untuk memudahkan sharing aplikasi antar pengguna Linux. tapi tentu tak banyak berguna tanpa adanya pengguna yang mau berbagi aplikasi ke pengguna lain (terutama yang tak punya internet) :smile:


User avatar
23Pstars
Posts: 170
Joined: 14 Apr 2010, 18:57
Location: Mataram
Contact:

Post by 23Pstars » 24 Mar 2013, 09:24

tinggal dibuatkan yang versi GUI, sempurna..... :D
great job mas


User avatar
wonk4rol
Posts: 170
Joined: 30 Jul 2010, 11:01
Location: Indramayu, Indonesia
Contact:

Post by wonk4rol » 24 Mar 2013, 12:45

idenya sangat bagus banget mas bro. hanya bisa ndukung aja, ngga bisa partisipasi nih, heheheh


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 24 Mar 2013, 18:40

@23Pstars : makasih om. untuk saat ini belum bisa, tapi semoga suatu saat bisa buat yang full GUI :laugh:

@wonk4rol : makasih. Kalo mau berbagi installer aplikasi dengan pengguna Linux yang lain, itu sudah merupakan partisipasi besar kok om :smile:


User avatar
wurip
Posts: 22
Joined: 14 Jan 2013, 17:51

Post by wurip » 25 Mar 2013, 10:37

Ane paham yg bro nif maksud. Kenapa setiap sistem brsifat unik, kenapa menggunakan fresh install agar universal, tapi ada satu permasalahan yg ane belum ngerti..


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 25 Mar 2013, 13:38

wong_urip wrote:Ane paham yg bro nif maksud. Kenapa setiap sistem brsifat unik, kenapa menggunakan fresh install agar universal,..
sip :laugh:
wong_urip wrote:.. tapi ada satu permasalahan yg ane belum ngerti..
bagian mana om?


User avatar
wurip
Posts: 22
Joined: 14 Jan 2013, 17:51

Post by wurip » 25 Mar 2013, 14:00

Misal aplikasi x butuh a,b,c,d. Aplikasi y butuh d,e,f,g. Aplikasi z butuh d,g,h,i. Setelah fresh install misalnya ane mau pasang x, maka yg diunduh a,b,c,d. Trus mau pasang y, maka yg diunduh cuma e,f,g. Trus pasang z, maka yg diunduh cuma h,i. Ini yg menyebabkan setiap sistem brsifat unik krna kebutuhan dependensi yg beda. Bisa saja sistem lain yg mau install z harus unduh d,g,h,i. Masalahnya... (bersambung)


User avatar
wurip
Posts: 22
Joined: 14 Jan 2013, 17:51

Post by wurip » 25 Mar 2013, 14:20

Masalahnya gimana jika kita sediakan paket universal y (d,e,f,g) dari fresh install, untuk dipasang di sistem lain yg sudah diupgrade misal sudah trpasang x versi 2 (a2,b2,c2,d2). Apakah "d2" yg sudah terpasang bisa bentrok dg "d" yg akan dipasang (berlaku sebaliknya)? Soalnya pernah mau install libre 4, yg libre 3.5 harus diremove dulu, kalo nggak diremove pernah bentrok.


User avatar
irwanatam
Posts: 68
Joined: 23 Feb 2012, 19:42
Location: Tamiang , Aceh, Indonesia
Contact:

Post by irwanatam » 25 Mar 2013, 15:27

maaf ni om, saya punya usul, bolehkan?, saya sudah gunakan aplikasi ini dan sangat membantu sekali.
jadi usul saya...
setiap aplikasi alldeb_maker dijalankan untuk membuat daftar satu aplikasi maka terkadang ada dependensi yang tidak ditemukan nah dependensi yang tidak ditemukan ini dianjurkan untuk didownlaod, nah usul saya bagaimana jika dependensi tidak ditemukan maka ada alternatif agar dependensi tersebut dapat diambil dari yang sudah terinstal dengan pilihan me repack aplikasi yang sudah terinstal tersebut, maaf saya cuma bisa usul (saya masih newbi)... mudah2an bermanfaat untuk kita semua.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 25 Mar 2013, 17:37

@wong_urip :
wong_urip wrote:...Apakah "d2" yg sudah terpasang bisa bentrok dg "d" yg akan dipasang (berlaku sebaliknya)?...

iya, bentrok dengan paket yang telah terpasang memang menjadi kendala tersendiri. Untuk menghindarinya, di alldeb_user sengaja saya atur agar sebuah paket tidak diproses jika sudah terinstall dengan versi yang sama, atau versi yang lebih baru. Jadi, alldeb_user hanya akan meng-install paket yang belum terpasang atau sudah terpasang tapi versi lama (upgrade) :smile:
Nah, untuk masalah upgrade versi ini, normalnya berjalan kompatibilitas otomatis. Berikut ini contoh ketika saya melakukan upgrade aplikasi gparted dari versi 0.14 ke versi 0.15 menggunakan alldeb.
[spoiler]Image[/spoiler]Ketika saya menginstall gparted versi 0.15, maka otomatis versi yang lama (0.14) akan di-remove. Kita tidak perlu me-remove sendiri. Seperti ini yang biasa terjadi di APT.

Tapi, untuk masalah LibreOffice 4, memang ada sedikit pengecualian. Saya tidak tahu mengapa, tapi kompatibilitas ke versi lama LibreOffice 3.x memang masih belum otomatis. Kita harus remove dulu LibreOffice 3.x secara manual, baru bisa install LibreOffice 4. Mungkin karena LibreOffice versi 4 masih dalam masa tes. Saya rasa setelah LibreOffice 4 masuk repo Ubuntu, kompatibilitas ini sudah akan diperbaiki sehingga tidak bentrok dengan versi sebelumnya :smile:

cmiiw


@irwanatam :
tentu boleh om :laugh:
dpkg-repack ya? memang menarik. kemaren saya sebenarnya juga sudah memikirkan ini, tapi saya cuma belum yakin apakah file .deb hasil dpkg-repack cukup 'valid' dibandingkan download langsung :smile:
terima kasih atas usulnya. Untuk ke depannya akan saya pertimbangkan.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 04 Apr 2013, 09:47

... lanjutan dari tulisan saya sebelumnya :smile:


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 04 Apr 2013, 09:48

#Tentang APT & Dependensi

Pada bagian sebelumnya, saya sudah menyebutkan bahwa daftar paket-paket yang diperlukan untuk menginstall sebuah aplikasi di satu komputer sangat mungkin berbeda dengan di komputer lainnya. Bagaimana bisa? Saya akan coba menjelaskan alasannya.
Ubuntu dan banyak distro Linux lain menggunakan sistem manajemen software yang disebut APT. Di APT, manajemen software tidak dilakukan dalam bentuk blok besar aplikasi, tetapi dalam bentuk blok-blok kecil yang disebut paket. Paket-paket tersebut yang akan menyusun suatu aplikasi. Tiap paket saling memiliki keterikatan dengan paket lain yang menjadi syarat kerjanya (disebut dependensi). Cara kerja seperti ini memiliki banyak keuntungan, tapi kadang sedikit rumit.
Misalnya kita akan menginstall aplikasi inkscape. Maka, kita harus menginstall paket inkscape. Tapi, inkscape membutuhkan library libgtk agar dapat berjalan. Maka, untuk menginstall paket inkscape kita juga harus menginstall paket libgtk. Ternyata, libgtk sendiri membutuhkan libpango1. Berarti kita harus menyertakan juga paket libpango1. Tapi seterusnya; libpango1 membutuhkan libc6, libc6 membutuhkan libgcc, dan seterusnya hingga ke sistem dasar :sick:
Contoh di atas adalah penggambaran cara kerja APT. Saya tidak akan membahas mengapa Ubuntu memilih menggunakan sistem manajemen software yang 'rumit' seperti itu (ada banyak alasan sebenarnya). Tapi yang perlu saya sampaikan adalah bahwa cara manajemen software APT memang berbeda dengan yang mungkin kita kenal di Windows.
Di dalam APT, rantai dependensi ini menyebabkan tiap software saling berkaitan satu sama lain. Untuk sukses menginstall sebuah aplikasi, kita harus menyesuaikan dengan paket-paket dependensi lain yang telah terinstall. Dan tentu saja, daftar paket-paket yang terinstall di satu komputer sangat mungkin berbeda dengan komputer lainnya (kecuali masih sama-sama fresh install). Itulah sebabnya paket-paket yang diperlukan untuk menginstall sebuah aplikasi di satu komputer sangat mungkin berbeda dengan di komputer lain.
Untuk memastikan kita membuat installer aplikasi yang tepat, kita perlu mengetahui dulu daftar paket-paket yang telah terinstall.

Di mana sistem APT menuliskan daftar paket-paket yang telah terinstall?
Benar, di dalam file /var/lib/dpkg/status :smile:


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 04 Apr 2013, 09:48

#alldeb_maker Multi-Profil

Alldeb_maker bekerja membuat file alldeb dengan membaca file profil yang diletakkan di dalam folder profil_dir. Jika menggunakan profil milik komputer A maka hasilnya akan sesuai untuk komputer A, jika profil milik komputer B maka hasilnya akan sesuai untuk komputer B.
Sebenarnya, alldeb_maker memiliki kemampuan untuk mengolah lebih dari satu profil.
Misalnya kita ingin membuat file alldeb yang sesuai untuk komputer A dan komputer B sekaligus, kita tinggal memasukkan kedua file profil tersebut ke dalam profil_dir. Begitu juga jika kita ingin menambahkan profil-profil yang lain. Alldeb_maker akan membaca semua file profil yang berada di dalam profil_dir satu persatu dan menggabungkan hasilnya.

[spoiler]Image[/spoiler]
Perlu diingat bahwa tiap profil harus memenuhi syarat kesamaan asal repository dan arsitektur, seperti yang sudah saya jelaskan sebelumnya.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 04 Apr 2013, 09:49

#alldeb dengan Profil Fresh Install (bag. 1)

Ada salah satu cara pemakaian alldeb_maker yang sering saya lakukan, yaitu menggunakan profil default (profil dari komputer yang baru fresh install).
Mengapa? ini alasannya;

1. Sebagai backup aplikasi
Idenya sederhana.
Jika kita menggunakan profil milik komputer A, maka alldeb_maker akan membuat file alldeb yang sesuai untuk diinstall di komputer A.
Jika kita menggunakan profil milik komputer B, maka alldeb_maker akan membuat file alldeb yang sesuai untuk diinstall di komputer B.
Nah, bagaimana jika kita menggunakan alldeb_maker dengan profil Ubuntu 12.04 yang baru fresh install? Tentu, file alldeb yang dihasilkannya akan dapat langsung diinstall di komputer Ubuntu 12.04 yang baru fresh install juga. Ini berguna sebagai backup aplikasi kita, terutama jika suatu saat kita perlu melakukan install ulang. Kita bisa langsung menginstall kembali aplikasi-aplikasi kita tanpa perlu download lagi.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 04 Apr 2013, 09:50

#alldeb dengan Profil Fresh Install (bag. 2)

2. Lebih 'universal'
Komputer yang masih fresh install masih identik satu sama lain. Ubuntu 12.10 yang fresh install di komputer saya tentu identik dengan Ubuntu 12.10 yang fresh install di komputer lain. Dengan demikian, file alldeb yang dibuat dapat kita share ke semua pengguna lain yang masih default / fresh install.
Bagaimana kalau sudah lama digunakan (sudah tidak default) ?
Tetap bisa, asalkan paket-paket penting yang dulu terinstall default ketika fresh install masih ada.

Meski demikian, ada beberapa hal yang harus diperhatikan;

- bisa gagal jika ada paket dependensi yang sudah dihapus
[spoiler]File alldeb yang dibuat dengan profil fresh install akan dapat diinstall di semua komputer lain, asalkan paket-paket penting yang dulu terinstall default (ketika fresh install) masih ada. Tapi jika ada paket dependensi yang sudah dihapus, akan gagal.

Contohnya sebagai berikut.
Saya membuat file alldeb aplikasi inkscape untuk profil Ubuntu 12.10 fresh install. Inkscape memerlukan library libgtk, tapi karena libgtk termasuk paket yang terdaftar terinstall default di Ubuntu 12.10, maka tentu saja alldeb_maker tidak menyertakan paket libgtk ke dalam alldeb yang dibuat.
Jika file alldeb tersebut digunakan di Ubuntu 12.10 yang masih 'lengkap', akan sukses.
Tapi, bagaimana kalo digunakan di Ubuntu 12.10 yang libgtk-nya sudah dihapus? Tentu akan gagal. Ada rantai dependensi yang tidak terpenuhi (yaitu libgtk). Kondisi ini disebut unmet dependency.
Bagaimana kalau sudah terlanjur seperti ini?
Kita bisa coba memperbaiki menggunakan perintah sudo apt-get install -f atau sudo apt-get remove -f.
Penjelasan sederhana, sudo apt-get install -f akan berusaha mencari, men-download & menginstall paket dependensi yang hilang; sedangkan sudo apt-get remove -f akan mencari & menghapus paket-paket yang memiliki masalah dependensi.[/spoiler]

- beda distro, beda profil
[spoiler]Perlu diingat bahwa daftar paket yang terinstall default di tiap distro berbeda-beda. Profil Ubuntu fresh install tentu saling berbeda dengan Xubuntu, Lubuntu, Kubuntu, dan lainnya. Karena itu, file alldeb yang dibuat dengan profil Ubuntu 12.10 bisa saja gagal diinstall di Xubuntu 12.10, meskipun masih sama-sama fresh install.
Bagaimana kalau kita ingin membuat file alldeb yang bisa digunakan di berbagai distro?
Bisa saja, karena alldeb_maker bisa menggunakan multi-profil. Jika kita ingin membuat alldeb yang bisa diinstall di Ubuntu dan Xubuntu, tinggal masukkan kedua profil tersebut ke profil_dir. Dan seterusnya.
Image[/spoiler]

Pendekatan seperti ini (membuat installer 'universal' dengan referensi acuan komputer fresh install) memang cukup menarik. Cara seperti ini pula yang dulu digunakan juga oleh om Fajran Iman Rusadi untuk membuat apt-web (lihat di sini).


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 04 Apr 2013, 09:50

#Sharing


Berbagi File alldeb
Saya buat sebagai topik terpisah.
Silahkan dilihat di sini : [Sharing] Berbagi file alldeb installer


Koleksi Profil Fresh Install
Kita bisa mendapatkan profil fresh install suatu distro dengan cara meng-copy file /var/lib/dpkg/status dari distro tersebut ketika masih dalam kondisi fresh install.
Daripada harus install sendiri hanya untuk copy profilnya, saya sudah kumpulkan beberapa profil fresh install yang bisa Anda download di bawah ini.

[spoiler](note; saya menggunakan http://www.datafilehost.com
jadi silahkan klik di tombol 'Download', bukan Download Now)

Ubuntu-desktop_10.04.4-i386_default

Ubuntu-desktop_12.04-i386_default

Kubuntu_12.04-i386_default

Lubuntu_12.04-i386_default

Xubuntu_12.04-i386_default
Xubuntu_12.04.1-i386_default
Xubuntu_12.04.2-i386_default

Ubuntu-Server_12.04-i386_default

Ubuntu-desktop_13.04-i386_default

Debian_6.04-i386_default[/spoiler]
Daftar di atas masih sangat jauh dari lengkap.
Jika Anda memiliki profil fresh install yang belum tertulis di atas, silahkan bantu saya melengkapinya.
Last edited by nif on 27 Feb 2016, 21:50, edited 1 time in total.
Reason: update


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 04 Apr 2013, 09:51



User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 04 Apr 2013, 09:51

#Penutup

Project alldeb ini hanya sebuah bentuk usaha untuk mempermudah backup & sharing aplikasi di Linux berbasis APT. Anda dapat menggunakan serta menyebarluaskannya dengan gratis dan bebas untuk tujuan yang benar.

Saya berusaha menyusun project ini sebaik mungkin. Namun, harus saya katakan bahwa setiap kerugian yang mungkin terjadi atas penggunaan alldeb menjadi resiko Anda sendiri. Saya tidak terikat tanggung jawab atas segala kerugian yang mungkin ditimbulkan oleh penggunaannya.

Terima kasih atas dukungan semua pihak yang telah memungkinkan project ini. Saya nantikan jika ada kritik, koreksi, atau saran untuk perbaikan ke depan.


User avatar
Ghosthands
Posts: 25
Joined: 24 Mar 2013, 12:36
Contact:

Post by Ghosthands » 07 Apr 2013, 16:38

keren ya mas nif ini tutorialnya, jago banget bikin beginian, saya belum bisa bikin yang memudahka gini, masi pengguna aja
mungkin suatu saat nanti, belajar dulu baru terjun ke linux :D


User avatar
wurip
Posts: 22
Joined: 14 Jan 2013, 17:51

Post by wurip » 08 Apr 2013, 10:22

di sini juga menarik. tapi ane belum coba. nanya bro... ane tau alldeb ini gak akan mendownload paket yg sudah terinstall/versi lama. yang ane tanyakan adalah yg dpkg biasa. apakah jika install "d" lewat dpkg ke mesin yg sudah terpasang "d2" akan jadi masalah? jika bermasalah berarti susah juga ya bikin installer offline yang benar2 universal..


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 08 Apr 2013, 13:37

@Ghosthands : terima kasih.
saat ini mungkin terlihat keren, tapi silakan om Ghosthands belajar bash script 1-2 hari, saya rasa akan bilang 'oh, ternyata cuma begini...' :grin:
di sini saya cuma pake perintah2 dasar kok.

wong_urip wrote:di sini juga menarik...

makasih informasinya om :laugh:
makin banyak alternatif makin baik :smile:

wong_urip wrote: ... yang ane tanyakan adalah yg dpkg biasa. apakah jika install "d" lewat dpkg ke mesin yg sudah terpasang "d2" akan jadi masalah?
iya. dpkg akan menghapus d2 lalu menginstall d (downgrade).
ini bisa menimbulkan masalah bagi program2 lain yang dependen terhadap d2.

wong_urip wrote: ... jika bermasalah berarti susah juga ya bikin installer offline yang benar2 universal..
benar.
untuk membuat installer offline yang benar2 universal, kita butuh sistem dasar yang juga universal (seragam).
Di Windows, hal ini tidak masalah karena semuanya memang seragam. Kalo ada 2 komputer yang menggunakan Windows 7, kita bisa tebak bahwa keduanya pasti menggunakan 'DE' yang sama, kernel yang sama, library yang sama, dst.
Di Linux, sangat banyak variasi. Satu komputer bisa sangat berbeda dengan komputer lainnya. Maka, paket2 yang diperlukannya pun berbeda-beda. Pendekatan terbaik, sepertinya dengan menggunakan standar fresh install, karena ketika fresh install pasti masih seragam. Itulah mengapa pendekatan ini yang dipakai di apt-web dkk :smile:


User avatar
Jonny
Posts: 2
Joined: 15 Nov 2012, 21:34

Post by Jonny » 10 Apr 2013, 13:19

newbie ikut mantau ya om... saya dukung proyek ini. apalagi user baru seperti saya di dunia open source ini


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 10 Apr 2013, 21:07

@Jonny : terima kasih :smile:


User avatar
myitanium
Posts: 411
Joined: 14 Jul 2011, 14:56
Contact:

Post by myitanium » 12 Apr 2013, 10:07

@nif: sip!
Sayangnya kita masih terkendala dengan perbedaan versi distro, hanya beberapa aplikasi yang bisa lintas distro, macam Firefox, Thunderbird, dan Google Chrome..


User avatar
Malsasa
Posts: 2976
Joined: 07 Jun 2010, 22:37
Location: Mojokerto, Indonesia
Contact:

Post by Malsasa » 12 Apr 2013, 10:15

myitanium wrote:@nif: sip!
Sayangnya kita masih terkendala dengan perbedaan versi distro, hanya beberapa aplikasi yang bisa lintas distro, macam Firefox, Thunderbird, dan Google Chrome..

Ke mana saja, Kang? Lama sekali tidak posting :) Ya , perpecahan distro bikin susah pengguna akhir. Namun selama masih ada inovator macam kang nif, kita sangat terbantu.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 12 Apr 2013, 13:37

-- dihapus --

(sama seperti di bawah. maap, terkirim 2 kali karena internet sedang agak lambat)
Last edited by nif on 27 Feb 2016, 21:50, edited 1 time in total.
Reason: dopost


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 12 Apr 2013, 13:39

lintas distro masih bisa om, asal berasal dari repository yang sama. Misalnya saya pake Xubuntu 12.04, saya masih bisa buat alldeb untuk Ubuntu/Lubuntu/Kubuntu/UbuntuServer 12.04, LinuxMint 13, PearLinux 6, dll asalkan saya punya profilnya.
Tapi kalo beda repository, misalnya Ubuntu dengan Fedora, memang tidak akan bisa :smile:
Bener tuh kata kang Malsasa, banyak pilihan kadang malah bikin susah :grin:

note;
meskipun Ubuntu turunan Debian dan sama2 menggunakan pemaketan .deb, tapi menggunakan repo Ubuntu di Debian atau repo Debian di Ubuntu konon sering menyebabkan error. Jadi, lintas distro Ubuntu - Debian juga jangan dilakukan.


User avatar
myitanium
Posts: 411
Joined: 14 Jul 2011, 14:56
Contact:

Post by myitanium » 13 Apr 2013, 00:46

@malsasa: iya nih, sibuk urusan kantor, blog juga jadi gak terurus. Blom sempat utak-atik apa2.

@nif: kendala terbesar Linux adalah library yang terpisah-pisah dalam paket kecil2. Itu kelemahan terbesar tapi juga salah satu keunggulan linux: ringkas dan seperlunya.
Padahal klo mau dipikir ya, end-user tau-nya install aplikasi di Linux ribet banget. Walau udah ada synaptic, tetap aja minta update versi tiap 6 bulan (atau 5 tahun untuk LTS). Dan susah banget kalau mau download aplikasi terbaru yang tidak ada file DEB-nya..

Coba semua dependensi itu bisa diinstall di folder library yang ada didalam aplikasi ya.. Macam firefox gitu.

btw, nice application. Saya mah cuman baru bisa sampai nautilus script.. :D


User avatar
myitanium
Posts: 411
Joined: 14 Jul 2011, 14:56
Contact:

Post by myitanium » 13 Apr 2013, 00:49

o ya, distro yang bisa all-in setahu saya baru Slax, tapi mereka menyebutnya sebagai modul. :)
Lalu ada zeroinstall, bisa cek di http://zero-install.sourceforge.net/


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 13 Apr 2013, 09:04

myitanium wrote:o ya, distro yang bisa all-in setahu saya baru Slax, tapi mereka menyebutnya sebagai modul. :)
benar om, menurut saya juga Slax ini menarik :smile:
Dulu ada lho forum Slax Indonesia, tapi saya sudah lupa di mana.
myitanium wrote:Lalu ada zeroinstall, bisa cek di http://zero-install.sourceforge.net/
yang ini saya baru tau. Terima kasih informasinya :laugh:
tapi sekilas saya baca seperti 'virtualbox untuk aplikasi' gitu ya? :confused:


User avatar
Malsasa
Posts: 2976
Joined: 07 Jun 2010, 22:37
Location: Mojokerto, Indonesia
Contact:

Post by Malsasa » 13 Apr 2013, 10:09

Saya senang sekali dapat ilmu baru pagi ini dari akang berdua :) Saya baru tahu kalau Slax itu demikian. Dan baru tahu ada Zeroshell. Saya sependapat dengan kang itanium mengenai pustaka yang diurus sebagaimana dalam folder Firefox. Sangat cantik! Tak terpikirkan oleh saya. Saya harap ini akan terwujud untuk Ubuntu sebentar lagi.

Forum Slax Indonesia tidak terurus, Kang. Iba akang melihatnya. http://openslax.org


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 14 Apr 2013, 08:34

oh, forum slax sedang vakum ya? :confused:
mungkin pengurusnya sedang punya kesibukan lain.
memang banyak sih project open source bagus yang terpaksa vakum karena kesibukan lain, atau karena keterbatasan resource..


User avatar
thewizard
Posts: 133
Joined: 12 Apr 2012, 15:29
Contact:

Post by thewizard » 15 Apr 2013, 21:22

ide dan gagasan yang bagus ini, top markotop untuk project alldeb :D


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 17 Apr 2013, 10:34



User avatar
randi_novranda
Posts: 14
Joined: 04 Apr 2013, 13:45
Location: jakarta
Contact:

Post by randi_novranda » 21 Apr 2013, 22:47

nice akh


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 22 Apr 2013, 08:08

terima kasih :smile:


User avatar
Malsasa
Posts: 2976
Joined: 07 Jun 2010, 22:37
Location: Mojokerto, Indonesia
Contact:

Post by Malsasa » 22 Apr 2013, 09:39

Terima kasih, Kang nif. Baru hari ini saya tahu web Debian itu. Jalan inovasi masih lebar sekali ternyata! Terima kasih.


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 23 Apr 2013, 07:15

kalo yang dari linuxdreambox itu pasti sudah tau kan? :grin:


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 23 Apr 2013, 08:14

#Tambahan : Setting APT Archives

Di APT, ada sebuah directory yang khusus digunakan sebagai gudang sementara untuk menyimpan file-file deb yang di-download dari internet. Letaknya di /var/cache/apt/archives, atau yang sering disebut APT archives. Program alldeb_maker sengaja mencari file deb yang dibutuhkannya di directory ini terlebih dulu, jika tidak ada barulah memberi opsi download.
Satu hal yang perlu diketahui, file-file yang berada di dalam APT archives bisa terhapus otomatis.

Penyebab pertama adalah jika kita menggunakan perintah;
sudo apt-get clean atau sudo apt-get autoclean
Perintah tersebut memang bertujuan menghapus file-file di dalam APT archives. Untuk lebih lengkapnya, silahkan dibaca di sini.

Penyebab kedua adalah setting APT archives.
Untuk melihat setting APT Anda berkaitan manajemen APT archives, silahkan buka terminal dan ketikkan perintah berikut;

Code: Select all

cat /etc/apt/apt.conf.d/20archive
Secara default, isinya kurang lebih seperti ini;
20archives wrote:APT::Archives::MaxAge "30";
APT::Archives::MinAge "2";
APT::Archives::MaxSize "500";
MaxAge adalah umur maksimal suatu file di dalam APT archives. Jika lebih dari 30 (hari), akan dihapus.
MaxSize adalah kapasitas maksimal APT archives. Jika telah melebihi 500 (MB), maka file-file yang berukuran paling besar akan dihapus.
Jika kita ingin agar APT archives kita tetap lengkap (tidak dihapus otomatis), kita bisa mematikan opsi MaxAge dan MaxSize dengan memberi nilai 0.
Caranya dapat dengan menggunakan perintah berikut di terminal;

Code: Select all

echo -e "APT::Archives::MaxAge \"0\";\nAPT::Archives::MaxSize \"0\";" > file_tmp.txt
sudo mv file_tmp.txt /etc/apt/apt.conf.d/20archive


User avatar
myitanium
Posts: 411
Joined: 14 Jul 2011, 14:56
Contact:

Post by myitanium » 23 Apr 2013, 11:59

@nif: coba tambahkan pengecekan distro, jadi bila distro tidak cocok langsung muncul warning, tapi bisa dipaksain.
Kalau ditambahkan pengecekan error mungkin gak ya? Jadi bila ada dependensi lain, otomatis akan memberi tahu pengguna. Pasti bakal sip lagi kalau bisa membuatkan daftar file untuk wget. :)


User avatar
nif
Posts: 2818
Joined: 31 Mar 2011, 07:48

Post by nif » 23 Apr 2013, 16:10

myitanium wrote:coba tambahkan pengecekan distro, jadi bila distro tidak cocok langsung muncul warning, tapi bisa dipaksain...
kalo pengecekan distro agak susah om, misalnya ada pengguna distro Kubuntu tapi KDE-nya sudah dihapus diganti LXDE, atau sebagainya.
myitanium wrote:Kalau ditambahkan pengecekan error mungkin gak ya? Jadi bila ada dependensi lain, otomatis akan memberi tahu pengguna...
yang ini saya sangat setuju sekali :laugh:
Memang, dpkg bekerja seperti itu; unpack paket, kalo ternyata dependensinya tidak terpenuhi maka akan berhenti & ditinggal begitu saja dalam kondisi unmet dependency. Meskipun hampir selalu kondisi tersebut dapat dipulihkan dengan sudo apt-get install -f atau sudo apt-get remove -f, tetap saja akan lebih baik kalo ada checking dulu sebelum unpack.
Sayangnya, karakter dpkg yang seperti itu sulit diubah (pernah dibahas di sini).
Jadi rasanya harus dibuat prosedur dependency checking sendiri yang terpisah dari dpkg. Semoga suatu saat bisa saya buat. Terima kasih atas sarannya :smile:
myitanium wrote:Pasti bakal sip lagi kalau bisa membuatkan daftar file untuk wget. :)
kalo yang ini sudah saya buat di project saya sebelumnya om; apt-id :smile:


User avatar
myitanium
Posts: 411
Joined: 14 Jul 2011, 14:56
Contact:

Post by myitanium » 24 Apr 2013, 09:45

@nif: maksudnya nomor versinya, misal 10.04. Klo itu kan tidak berubah kecuali dia lakukan dist-upgrade.
saya coba sumbang ide ya, klo salah dan menyalahi karena tidak tahu tolong jangan tersinggung ya. :) Bagaimanapun juga Anda lebih hebat dari saya klo buat shell script. :)

dari file /etc/lsb-release kita bisa ekstrak DISTRIB_RELEASE=10.04
Dari patokan itu maka algoritma mungkin bisa seperti ini:
1. cek DISTRIB_RELEASE dulu, bila beda berarti beda versi. Lanjut ke pertanyaan tetap mau dipaksa install atau tidak
2. Klo sama versi, berarti mencoba pengecekan install, klo lancar langsung install
3. klo error, berarti ada dependency yang gagal, lalu buat daftar wget (digabungkan dengan apt-id?)


Post Reply

Who is online

Users browsing this forum: No registered users and 21 guests