[Gambas-user] Making debian repositories?

Hamish Robertson robertsonhamish at ...626...
Sat May 31 17:44:23 CEST 2008


Woah! Thanks man for the uber-quick reply!

Sorry about the ubuntu-ness of my script. I am a totall newbie and figured
I'd start with what I know then decide if it's worth porting to other
distros.

This is what I'm trying to achieve.

A double-click install file that installs programs without the internet.
Micro-crap style!

My target market is complete linux newbies and users in 3rd world countries
without net access. They need to be able to double-click on a file and have
it install.

This script is designed to be run from a custom minimal distro run in a VM
so as to allow synaptic to download all the dependancies. and make the
output "setup" file compatible with most ubuntu variants.

what it does...
The user downloads the program(s) that they want to package into the setup
file using synaptic. Synaptic also downloads all of the dependancies.

The script creates a metapackage that has all the newly-downloaded .deb
files listed as dependancies.

then the idea is to merge all the downloaded .debs + the metapackage into a
repository created in a local folder.

The repository is then zipped into an executeable archive along with a
script that will install it with a nifty utility called makeself.


When a user double clicks on the "setup" archive, it extracts the repo into
/tmp, replaces sources.list with a new one pointing to the new repository,
runs apt-get update then installs the metapackage and all of it's bundles
dependancies.


i think it's a good idea? Any thoughts?

I'm a total newbie...:P

H.








2008/5/31 David Paleino <d.paleino at ...626...>:

> On Sat, 31 May 2008 22:11:52 +0700, Hamish Robertson wrote:
>
> > Nearly finished a BASH script that makes it possible to double-click
> install
> > software on ubuntu sans the internet.
>
> What do you mean?
> Isn't that accomplished by things like gdebi and apt-zip?
>
> > I'm almost there but I'm having trouble creating a local apt repository
> (I
> > want to create an apt repository in a folder on my hard disk. Anyone got
> a
> > clue how to do this?
>
> Check for reprepro, debmirror, ...
>
> > Any help would be greatly appreciated. p.s sorry this isn't GAMBAS...will
> add
> > a proper gambas UI once I get this script worked out...
>
> :)
>
> > #/bin/bash
> > # MAKE AN INSTALL SCRIPT SCRIPT
> > # Hamish's convert's deb files to self extracting gz files.
> > # bundles the desired deb and all it's dependancies together.
> >
> > gksu -k /bin/echo "login der"
>
> Don't rely on the user having gksu.
> Better would be:
>
> [ -x /usr/bin/gksu ] && gksu -k /bin/echo "login der"
>
> You might also want to generalize that, allowing the use of "kdesudo",
> "sudo"
> ans "su".
>
> > sudo mkdir /tmp/setupfiles
> >
> > sudo rm -f /var/cache/apt/archives/*.deb
> >
> > #sudo yes | sudo apt-get update
>
> Don't expect anyone to have sudo. That's Ubuntuish (see my signature :P)
>
> > sdebname=$(zenity --text "Please enter a one-word name for your
> superdeb."
> > --entry)
> >
> > zenity --info \
> > --text="Please choose the packages to include in your setup file. When
> you
> > have finished downloading your packages, please exit Synaptic to
> continue."
>
> Check for zenity:
>
> [ -x /usr/bin/zenity ] && zenity ...
>
> > sudo synaptic
> > #Synaptic has now finished
>
> Does that work?
> Besides the "don't expect sudo" remark -- wouldn't that just start
> synaptic?
> Also, don't expect (™) synaptic.
>
> > ...
> >
> > #insert version no... in this case it's always 1.0
> > sudo echo "Version: 1.0" >> control
>
> Not true, lately in Debian we have inroduced:
>
> Version: 1.0
> Version: 2.0
> Version: 3.0 (quilt)
> Version: 3.0 (native)
> Version: 3.0 (git)
>
>
> > #insert section
> > sudo echo "Section: unknown" >> control
>
> Isn't there a way to fix that?
>
> > #insert Architechture
> > sudo echo "Architecture: i386" >> control
>
> Only i386?
>
> > #insert list of dependancies
> > cd /var/cache/apt/archives/
> > ## Rob's perl listing script. (Thanks Rob!!)
> > DEPLIST=$(perl -e 'print join(", ", map { s/.deb$//; $_ }
> > split("\n", `ls *.deb`)), "\n";')
>
> As far as I understood, you're just listing anything
> in /var/cache/apt/archives... they're *not* dependencies.
>
> > #Now to make a repository HELP!!!! I'm in the ballpark here...just not
> > hitting a home run yet..
>
> Check my tips above.
>
> > ...
>
> Please take my notes as suggestions, I don't mean to offend anyone :)
>
> Kindly,
> David
>
> P.S.: if you could explain what you're trying to achieve, maybe there's an
> easier and fancier way...
>
> --
>  . ''`.  Debian maintainer | http://wiki.debian.org/DavidPaleino
>  : :'  : Linuxer #334216 --|-- http://www.hanskalabs.net/
>  `. `'`  GPG: 1392B174 ----|---- http://snipr.com/qa_page
>   `-   2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
>



More information about the User mailing list