PDA

View Full Version : convertire progetto netbeans/java in pacchetto .deb


alberto t.
27-12-2008, 12:16
Ciao
Ho creato con netbeans 6.1 questo semplicissimo programma scritto in java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package ciao;
/**
*
* @author alberto
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String a = "Ciao ";
String b = "a ";
String c = "tutti!";
String tot=a+b+c;
System.out.print(tot);
}
}
Come faccio a convertirlo in un pacchetto .deb in modo che sia installabile in ubuntu?
Grazie

lele85
27-12-2008, 14:45
http://www.debian.org/doc/maint-guide/

Purtroppo la pacchettizazione in debian è cosa abbastanza rognosa... comunque quella è la guida ufficiale in italiano! ;)

sacarde
27-12-2008, 16:31
http://ubuntuforums.org/showthread.php?t=51003

alberto t.
27-12-2008, 18:11
Ciao
Ho provato a seguire la guida che mi ha indicato lele85, ma viene questo errore:
alberto@alberto-desktop:~/NetBeansProjects/ciao$ dh_make -e tuo.maintainer@indirizzo -f ../gentoo-0.9.12.tar.gz
The directory name must be <package>-<version> for dh_make to work!
I cannot understand the directory name or you have an invalid directory name!

Your current directory is /home/alberto/NetBeansProjects/ciao, perhaps you could try going to
directory where the sources are?

Please note that this change is necessary ONLY during the initial
Debianization with dh_make. When building the package, dpkg-source
will gracefully handle almost any upstream tarball.

Eppure dentro il sorgente del programma che ho fatto con netbeans non c'è nessuna cartella package o version. Come mai?:muro:

alberto t.
27-12-2008, 19:27
Ciao
Il precedente problema l'ho risolto.
Ho provato a fare quanto descritto nelle guide da voi linkate.
A questo comando:
alberto@alberto-desktop:~/NetBeansProjects/ciao-0.1$ dh_make -e your.maintainer@address -f ../myproject-1.2.tar.bz2

Type of package: single binary, multiple binary, library, kernel module or cdbs?
[s/m/l/k/b] s

Maintainer name : alberto
Email-Address : your.maintainer@address
Date : Sat, 27 Dec 2008 20:18:35 +0100
Package Name : ciao
Version : 0.1
License : blank
Type of Package : Single
Hit <enter> to confirm:
Source archive you specified ( myproject-1.2.tar.bz2 ) was not found!

Mi dice che non trova l'archivio myproject-1.2.tar.bz2 . Io quell'archivio non l'ho mai avuto. Io ho solo questa cartella (creata con netbeans): /home/alberto/NetBeansProjects/ciao-0.1, il contenuto è:
alberto@alberto-desktop:~/NetBeansProjects/ciao-0.1$ dir
build build.xml manifest.mf nbproject src test

sacarde
27-12-2008, 21:01
prova a crearlo con tutti i file occorrenti

alberto t.
27-12-2008, 21:31
prova a crearlo con tutti i file occorrenti
Grazie, ha funzionato.
Ora ho questo problema:
alberto@alberto-desktop:~/NetBeansProjects/ciao-0copia.1$ CFLAGS="-Wall -g -O2" ./configure –host=i486-linux-gnu –build=i486-linux-gnu –prefix=/usr –mandir=\${prefix}/share/man –infodir=\${prefix}/share/inf
bash: ./configure: Nessun file o directory

Mi dice che non trova il file configure. Come mai c'è quel file nella mia cartella?

lele85
28-12-2008, 09:41
Mi sa che stai cercando di compilare un file java con gcc. :D
Sinceramente non ho mai pacchettizzato su ubuntu applicazioni java ma credo che tu debba farti uno script di avvio della applicazione tipo:

!#/bin/bash
java file_da_lanciare

Per il resto non posso esserti più utile perchè non ho più debian based a portata di mano! ;-)

sacarde
28-12-2008, 11:08
http://www.fastpopularity.com/article_marketing/computer/creare_pacchetti_debian__con_epm___facile.php

alberto t.
28-12-2008, 12:06
http://www.fastpopularity.com/article_marketing/computer/creare_pacchetti_debian__con_epm___facile.php
A cosa mi dovrebbe servire quella guida?
Comunque, questo è il contenuto del file nomePacchetto.lst:
%product [nome del pacchetto, può anche non coincidere col nome del file *.deb]
%description [descrizione]
%version [numero di versione]
%copyright [inserire il copyright]
%vendor [nome di chi distribuisce il pacchetto]
%readme README
%license LICENSE
%postinstall <updateMenu
%postremove <updateMenu

d 755 root root /test -
d 755 root root /debian -
f 644 root root /debian/postinst.ex ./root/debian/postinst.ex
f 644 root root /debian/ciao.doc-base.EX ./root/debian/ciao.doc-base.EX
f 644 root root /debian/copyright ./root/debian/copyright
f 644 root root /debian/changelog ./root/debian/changelog
f 644 root root /debian/init.d.ex ./root/debian/init.d.ex
f 644 root root /debian/emacsen-install.ex ./root/debian/emacsen-install.ex
f 644 root root /debian/preinst.ex ./root/debian/preinst.ex
f 644 root root /debian/ciao-default.ex ./root/debian/ciao-default.ex
f 755 root root /debian/rules ./root/debian/rules
f 644 root root /debian/manpage.sgml.ex ./root/debian/manpage.sgml.ex
f 644 root root /debian/watch.ex ./root/debian/watch.ex
f 644 root root /debian/dirs ./root/debian/dirs
f 644 root root /debian/emacsen-startup.ex ./root/debian/emacsen-startup.ex
f 644 root root /debian/manpage.xml.ex ./root/debian/manpage.xml.ex
f 644 root root /debian/control ./root/debian/control
f 644 root root /debian/menu.ex ./root/debian/menu.ex
f 644 root root /debian/control\~ ./root/debian/control\~
f 644 root root /debian/emacsen-remove.ex ./root/debian/emacsen-remove.ex
f 644 root root /debian/docs ./root/debian/docs
f 644 root root /debian/compat ./root/debian/compat
f 644 root root /debian/init.d.lsb.ex ./root/debian/init.d.lsb.ex
f 644 root root /debian/manpage.1.ex ./root/debian/manpage.1.ex
f 644 root root /debian/postrm.ex ./root/debian/postrm.ex
f 644 root root /debian/cron.d.ex ./root/debian/cron.d.ex
f 644 root root /debian/README.Debian ./root/debian/README.Debian
f 644 root root /debian/prerm.ex ./root/debian/prerm.ex
f 644 root root /build.xml ./root/build.xml
d 755 root root /nbproject -
d 755 root root /nbproject/private -
f 644 root root /nbproject/private/private.properties ./root/nbproject/private/private.properties
f 644 root root /nbproject/project.properties ./root/nbproject/project.properties
f 644 root root /nbproject/project.xml ./root/nbproject/project.xml
f 644 root root /nbproject/genfiles.properties ./root/nbproject/genfiles.properties
f 644 root root /nbproject/build-impl.xml ./root/nbproject/build-impl.xml
f 644 root root /manifest.mf ./root/manifest.mf
d 755 root root /src -
d 755 root root /src/ciao01 -
f 644 root root /src/ciao01/Main.java ./root/src/ciao01/Main.java
d 755 root root /build -
d 755 root root /build/classes -
d 755 root root /build/classes/ciao01 -
f 644 root root /build/classes/ciao01/Main.class ./root/build/classes/ciao01/Main.class
Mi compare questo errore:

alberto@alberto-desktop:~/Scrivania/foo$ sudo epm -n -f deb nomePacchetto
epm: Unable to stat "updateMenu" - No such file or directory
epm: Unable to stat "updateMenu" - No such file or directory
Packaging failed!

Come mai?
Questo è il contenuto della cartella foo:
alberto@alberto-desktop:~/Scrivania/foo$ dir
LICENSE nomePacchetto.list README updateMenu.sh
linux-2.6-intel nomePacchetto.list~ root updateMenu.sh~

e questa è la cartella di root:
alberto@alberto-desktop:~/Scrivania/foo/root$ dir
build build.xml debian manifest.mf nbproject src test

Nella cartella root, dovevo mettere i file ottenuti con netbeans?
Grazie

sacarde
28-12-2008, 13:10
updateMenu <> updateMenu.sh

alberto t.
28-12-2008, 13:19
updateMenu <> updateMenu.sh
Ora questo è il contenuto del file nomePacchetto.list che si trova nella cartella principale foo:

%product [nome del pacchetto, può anche non coincidere col nome del file *.deb]
%description [descrizione]
%version [numero di versione]
%copyright [inserire il copyright]
%vendor [nome di chi distribuisce il pacchetto]
%readme README
%license LICENSE
updateMenu <> updateMenu.sh

d 755 root root /test -
d 755 root root /debian -
f 644 root root /debian/postinst.ex ./root/debian/postinst.ex
f 644 root root /debian/ciao.doc-base.EX ./root/debian/ciao.doc-base.EX
f 644 root root /debian/copyright ./root/debian/copyright
f 644 root root /debian/changelog ./root/debian/changelog
f 644 root root /debian/init.d.ex ./root/debian/init.d.ex
f 644 root root /debian/emacsen-install.ex ./root/debian/emacsen-install.ex
f 644 root root /debian/preinst.ex ./root/debian/preinst.ex
f 644 root root /debian/ciao-default.ex ./root/debian/ciao-default.ex
f 755 root root /debian/rules ./root/debian/rules
f 644 root root /debian/manpage.sgml.ex ./root/debian/manpage.sgml.ex
f 644 root root /debian/watch.ex ./root/debian/watch.ex
f 644 root root /debian/dirs ./root/debian/dirs
f 644 root root /debian/emacsen-startup.ex ./root/debian/emacsen-startup.ex
f 644 root root /debian/manpage.xml.ex ./root/debian/manpage.xml.ex
f 644 root root /debian/control ./root/debian/control
f 644 root root /debian/menu.ex ./root/debian/menu.ex
f 644 root root /debian/control\~ ./root/debian/control\~
f 644 root root /debian/emacsen-remove.ex ./root/debian/emacsen-remove.ex
f 644 root root /debian/docs ./root/debian/docs
f 644 root root /debian/compat ./root/debian/compat
f 644 root root /debian/init.d.lsb.ex ./root/debian/init.d.lsb.ex
f 644 root root /debian/manpage.1.ex ./root/debian/manpage.1.ex
f 644 root root /debian/postrm.ex ./root/debian/postrm.ex
f 644 root root /debian/cron.d.ex ./root/debian/cron.d.ex
f 644 root root /debian/README.Debian ./root/debian/README.Debian
f 644 root root /debian/prerm.ex ./root/debian/prerm.ex
f 644 root root /build.xml ./root/build.xml
d 755 root root /nbproject -
d 755 root root /nbproject/private -
f 644 root root /nbproject/private/private.properties ./root/nbproject/private/private.properties
f 644 root root /nbproject/project.properties ./root/nbproject/project.properties
f 644 root root /nbproject/project.xml ./root/nbproject/project.xml
f 644 root root /nbproject/genfiles.properties ./root/nbproject/genfiles.properties
f 644 root root /nbproject/build-impl.xml ./root/nbproject/build-impl.xml
f 644 root root /manifest.mf ./root/manifest.mf
d 755 root root /src -
d 755 root root /src/ciao01 -
f 644 root root /src/ciao01/Main.java ./root/src/ciao01/Main.java
d 755 root root /build -
d 755 root root /build/classes -
d 755 root root /build/classes/ciao01 -
f 644 root root /build/classes/ciao01/Main.class ./root/build/classes/ciao01/Main.class


Mi compare questo errore:
alberto@alberto-desktop:~/Scrivania/foo$ sudo epm -n -f deb nomePacchetto
epm: Expected whitespace after file type - updateMenu <> updateMenu.sh
Packaging failed!

Come mai?

sacarde
28-12-2008, 16:40
scusa non mi sono spiegato


volevo solo dire che

il nome "updateMenu" non e' uguale a "updateMenu.sh"

alberto t.
28-12-2008, 17:54
scusa non mi sono spiegato


volevo solo dire che

il nome "updateMenu" non e' uguale a "updateMenu.sh"
Ho rinominato il nome del file da updateMenu.sh a updateMenu, con questo contenuto:
if test -x /usr/bin/update-menus; then update-menus; fi

Il contenuto del file nomePaccehtto.lst è questo:
%product [nome del pacchetto, può anche non coincidere col nome del file *.deb]
%description [descrizione]
%version [numero di versione]
%copyright [inserire il copyright]
%vendor [nome di chi distribuisce il pacchetto]
%readme README
%license LICENSE
%postinstall <updateMenu
%postremove <updateMenu

d 755 root root /test -
d 755 root root /debian -
f 644 root root /debian/postinst.ex ./root/debian/postinst.ex
f 644 root root /debian/ciao.doc-base.EX ./root/debian/ciao.doc-base.EX
f 644 root root /debian/copyright ./root/debian/copyright
f 644 root root /debian/changelog ./root/debian/changelog
f 644 root root /debian/init.d.ex ./root/debian/init.d.ex
f 644 root root /debian/emacsen-install.ex ./root/debian/emacsen-install.ex
f 644 root root /debian/preinst.ex ./root/debian/preinst.ex
f 644 root root /debian/ciao-default.ex ./root/debian/ciao-default.ex
f 755 root root /debian/rules ./root/debian/rules
f 644 root root /debian/manpage.sgml.ex ./root/debian/manpage.sgml.ex
f 644 root root /debian/watch.ex ./root/debian/watch.ex
f 644 root root /debian/dirs ./root/debian/dirs
f 644 root root /debian/emacsen-startup.ex ./root/debian/emacsen-startup.ex
f 644 root root /debian/manpage.xml.ex ./root/debian/manpage.xml.ex
f 644 root root /debian/control ./root/debian/control
f 644 root root /debian/menu.ex ./root/debian/menu.ex
f 644 root root /debian/control\~ ./root/debian/control\~
f 644 root root /debian/emacsen-remove.ex ./root/debian/emacsen-remove.ex
f 644 root root /debian/docs ./root/debian/docs
f 644 root root /debian/compat ./root/debian/compat
f 644 root root /debian/init.d.lsb.ex ./root/debian/init.d.lsb.ex
f 644 root root /debian/manpage.1.ex ./root/debian/manpage.1.ex
f 644 root root /debian/postrm.ex ./root/debian/postrm.ex
f 644 root root /debian/cron.d.ex ./root/debian/cron.d.ex
f 644 root root /debian/README.Debian ./root/debian/README.Debian
f 644 root root /debian/prerm.ex ./root/debian/prerm.ex
f 644 root root /build.xml ./root/build.xml
d 755 root root /nbproject -
d 755 root root /nbproject/private -
f 644 root root /nbproject/private/private.properties ./root/nbproject/private/private.properties
f 644 root root /nbproject/project.properties ./root/nbproject/project.properties
f 644 root root /nbproject/project.xml ./root/nbproject/project.xml
f 644 root root /nbproject/genfiles.properties ./root/nbproject/genfiles.properties
f 644 root root /nbproject/build-impl.xml ./root/nbproject/build-impl.xml
f 644 root root /manifest.mf ./root/manifest.mf
d 755 root root /src -
d 755 root root /src/ciao01 -
f 644 root root /src/ciao01/Main.java ./root/src/ciao01/Main.java
d 755 root root /build -
d 755 root root /build/classes -
d 755 root root /build/classes/ciao01 -
f 644 root root /build/classes/ciao01/Main.class ./root/build/classes/ciao01/Main.class

Però viene errore:
alberto@alberto-desktop:~/Scrivania/foo$ sudo epm -n -f deb nomePacchetto
[sudo] password for alberto:
Packaging failed!


Come mai?

alberto t.
30-12-2008, 11:32
Non c'è nessuno che sa aiutarmi?