Linux - Mi nuevo proyecto : Repositorio personal - ¿Quereis colaborar?

   
Vista:
Imágen de perfil de Daniel

Mi nuevo proyecto : Repositorio personal - ¿Quereis colaborar?

Publicado por Daniel (218 intervenciones) el 17/01/2014 15:46:02
Hola queria saber si alguien quiere colaborar con mi nuevo
proyecto : Un repositorio ppa en el cual se introduccan programas
como chromium , jedit , flash u otros programas , la idea es que
sirva de repositorio rolling release a lmde , principalmente el 201009
pero con el paso del tiempo que diera soporte correctamente a la
gran mayoria de distros con versiones obsoletas de gnu/linux (basadas
en debian claro).
En fin si teneis un programa tipo opera o en fin cualquiera falsh , etc en
.deb que no requiera nada o casi nada en dependencias pasadmelo para
añadirlo , podeis pasarmelo atraves de esta nota , a mi correo dalmemail@gmail.com
o liberadalinux.wordpress.com
GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Mi nuevo proyecto : Repositorio personal - ¿Quereis colaborar?

Publicado por xve (663 intervenciones) el 17/01/2014 19:28:02
Hola Daniel, yo he creado repositorios para debian... si necesitas ayuda...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Daniel

Mi nuevo proyecto : Repositorio personal - ¿Quereis colaborar?

Publicado por Daniel (218 intervenciones) el 17/01/2014 19:34:28
Pues si , gracias estuve mirando varios tutoriales
y he tenido un problema hay que subir sources.changes
que te da el sistema tras empaquetar el .deb pero yo
quiero subir .deb que me he bajado ya empaquetado
(por ejemplo el chromium) y quiero subirlo a mi ppa
sin embargo no encuentro nada
¿como pùedo hacerlo?
GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Mi nuevo proyecto : Repositorio personal - ¿Quereis colaborar?

Publicado por xve (663 intervenciones) el 17/01/2014 21:50:13
Hola Daniel, es sencillo, para ello tienes que crear tu repositorio de archivos .deb, donde podras poner cualquier archivo .deb que desees, ya sea creado por ti, o por alguna otra persona.

Este es el documento que yo utilice cuando cree los repositorios... espero que te sirva:

Montar un repositorio estándar de paquetes Debian



--Estructura de directorios--

Primeramente, debemos crear la estructura de nuestro nuevo repositorio, que vamos a llamar mirepo como ejemplo. El lugar donde lo debemos crear la estructura puede ser cualquiera, por ejemplo en /var/:

--------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
mirepo
|
+-dists
  |
  |-stable
  | |-main
  | | |-binary-i386
  | | |-binary-powerpc
  | | |-binary-amd64
  | | +-source
  | |-contrib
  | | |-binary-i386
  | | |-binary-powerpc
  | | |-binary-amd64
  | | +-source
  | +-non-free
  |   |-binary-i386
  |   |-binary-powerpc
  |   |-binary-amd64
  |   +-source
  |
  |-testing
  | |-main
  | | |-binary-i386
  | | |-binary-powerpc
  | | |-binary-amd64
  | | +-source
  | |-contrib
  | | |-binary-i386
  | | |-binary-powerpc
  | | |-binary-amd64
  | | +-source
  | +-non-free
  |   |-binary-i386
  |   |-binary-powerpc
  |   |-binary-amd64
  |   +-source
  |
  +-unstable
    |-main
    | |-binary-i386
    | |-binary-powerpc
    | |-binary-amd64
    | +-source
    |-contrib
    | |-binary-i386
    | |-binary-powerpc
    | |-binary-amd64
    | +-source
    +-non-free
      |-binary-i386
      |-binary-powerpc
      |-binary-amd64
      +-source
--------------------------------------------------------------------------------

Como se puede ver, vamos a usar las tres distribuciones de Debian (stable, testing y unstable), cada una con sus ramas (main, contrib y non-free), para tres arquitecturas (i386, powerpc y amd64) y con sus respectivos paquetes de fuentes (directorios sources).
Aquí puede sobrar o faltar según tus propias necesidades. Quizás sólo quieras una distribución o incluir también la arquitectura arm; solo tendrías que quitar o añadir las partes que te interesen. Eso sí, siguiendo la estructura específicada.


--Llenando el repositorio--

Los paquetes binarios los debemos almacenar en los directorios binary's correspondientes y los sources en la rama que pertenezca. Si tú numero de paquetes es considerable, ni que decir tiene que es aconsejable automatizar esta tarea con algún script que lo haga de forma periódica.
Una vez tengamos todos los archivos en su sitio, si queremos que nuestros usuarios del repositorio puedan utilizar el pinning de APT debemos incluir en cada directorio binary y source un archivo llamado Release con la siguiente forma:

--------------------------------------------------------------------------------
1
2
3
4
5
Archive: "nombre de la distribución (stable, testing o unstable)"
Component: "nombre de la rama (main, contrib, non-free)"
Origin: "Persona/compañía/proyecto que da origen al repositorio"
Label: "Etiqueta descriptiva"
Architecture: "La arquitectura a la que perteneces (i386, powerpc, amd64 o source)"
--------------------------------------------------------------------------------

Las comillas serán necesarias dependiendo de si el dato es una cadena sin espacios o no. Es un archivo bastante sencillo y que se debe personalizar para cada directorio binary donde vaya a ser guardado.
Con los repositorios llenos de paquetes y los Release en su sitio sólo nos queda crear los ficheros índices. Utilicemos la herramienta apt para este fin. Antes de nada, tenemos que crear unos ficheros de configuración para que apt haga lo necesario para nuestro repositorio. Vamos a crear, concretamente, 2 tipos de archivos que pueden almacenarse en el raíz del repositorio (/var/mirepo/)


--apt-"distribucion"-release.conf--

En nuestro caso, deberíamos crear tres: apt-stable-release.conf, apt-testing-release.conf, apt-unstable-release.conf. Vamos a mostrar la estructura de uno de ellos y la del resto es idéntica, salvo cambios propios de cada distribución. Para la distribución stable, tendríamos en apt-stable-release.conf:

--------------------------------------------------------------------------------
1
2
3
4
5
6
APT::FTPArchive::Release::Origin ?Tu nombre/empresa/proyecto?;
APT::FTPArchive::Release::Label ?Etiqueta descriptiva?;
APT::FTPArchive::Release::Suite ?stable?;
APT::FTPArchive::Release::Architectures ?i386 powerpc amd64 source?;
APT::FTPArchive::Release::Components ?main contrib non-free?;
APT::FTPArchive::Release::Description ?Descripcion detallada?;
--------------------------------------------------------------------------------

Debemos rellenar los campos oportunos con los valores específicos para cada uno de los archivos.


--apt-ftparchive.conf--

Este otro archivo de configuración define las reglas que apt usará y aplicará a la hora de crear los ficheros índices. Para nuestro ejemplo sería un archivo bastante largo y no proporciona información añadida hacerlo para todas las ramas, por lo que se muestra sólo la distribución unstable:

--------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Dir {
  ArchiveDir ".";
  CacheDir ".";
};
 
/*Como se van a comprimir*/
Default {
  Packages::Compress "gzip bzip2";
  Sources::Compress "gzip bzip2";
  Contents::Compress "gzip bzip2";
};
 
/*Rutas a paquetes binarios*/
BinDirectory "dists/unstable/main/binary-i386" {
  Packages "dists/unstable/main/binary-i386/Packages";
  Contents "dists/unstable/Contents-i386";
  SrcPackages "dists/unstable/main/source/Sources";
};
 
BinDirectory "dists/unstable/main/binary-powerpc" {
  Packages "dists/unstable/main/binary-powerpc/Packages";
  Contents "dists/unstable/Contents-powerpc";
  SrcPackages "dists/unstable/main/source/Sources";
};
 
BinDirectory "dists/unstable/main/binary-amd64" {
  Packages "dists/unstable/main/binary-amd64/Packages";
  Contents "dists/unstable/Contents-amd64";
  SrcPackages "dists/unstable/main/source/Sources";
};
 
/*<;----Aquí debemos especificar el resto de rutas a paquetes binarios*/
 
/*Especifica de qué consta la distribución*/
Tree "dists/unstable" {
  Sections "main doc";
  Architectures "i386 powerpc amd64";
};
 
/*<;--- Las demás distribuciones*/
 
Default {
  Packages {
    Extensions ".deb";
  };
};
--------------------------------------------------------------------------------

Con esto almacenado y configurado podemos hacernos un breve script (update-archives.sh) que automatizará la actualización del repositorio:

--------------------------------------------------------------------------------
1
2
3
4
5
#!/bin/sh
apt-ftparchive generate apt-ftparchive.conf
apt-ftparchive -c apt-unstable-release.conf release dists/unstable/ >dists/unstable/Release
apt-ftparchive -c apt-stable-release.conf release dists/stable/ >dists/stable/Release
apt-ftparchive -c apt-testing-release.conf release dists/testing/ >dists/testing/Release
--------------------------------------------------------------------------------

Este script debemos ejecutarlo cada vez que añadamos un paquete binario o fuente a nuestro repositorio. Se puede hacer a mano o utilizando cron.


--Utilizando el repositorio--

Una vez que hemos hecho todo lo anterior podemos añadir la siguiente línea a nuestro /etc/apt/sources.list para utilizar el repositorio de forma local:

--------------------------------------------------------------------------------
deb file:///var/mirepo unstable main contrib non-free
--------------------------------------------------------------------------------

La línea anterior utilizaría la distribución unstable, con las tres ramas.

Si quieres tenerlo accesible de forma remota, puedes crear un enlace simbólico en /var/www/ para redireccionar la consulta http a tu servidor Apache:

--------------------------------------------------------------------------------
1
2
# cd /var/www
# ln -s /var/mirepo mirepo
--------------------------------------------------------------------------------

Y añadir como repositorio la línea:

--------------------------------------------------------------------------------
1
deb http://midominio.com/mirepo testing main contrib
--------------------------------------------------------------------------------


################################################################################

Ficheros utilizados en nuestro repositorio

--------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
repo-px/
repo-px/apt-breezy-release.conf
repo-px/apt-hardy-release.conf
repo-px/dists
repo-px/dists/gutsy
repo-px/dists/gutsy/main
repo-px/dists/gutsy/main/binary-i386
repo-px/dists/gutsy/main/binary-i386/Packages
repo-px/dists/gutsy/main/binary-i386/Release
repo-px/dists/gutsy/Release
repo-px/dists/hardy
repo-px/dists/hardy/main
repo-px/dists/hardy/main/binary-i386
repo-px/dists/hardy/main/binary-i386/Packages
repo-px/dists/hardy/main/binary-i386/Release
repo-px/dists/hardy/Release
repo-px/dists/breezy
repo-px/dists/breezy/main
repo-px/dists/breezy/main/binary-i386
repo-px/dists/breezy/main/binary-i386/Packages
repo-px/dists/breezy/main/binary-i386/Release
repo-px/dists/breezy/Release
repo-px/index.html
repo-px/apt-ftparchive.conf
repo-px/apt-gutsy-release.conf
repo-px/udpate-archives.sh
--------------------------------------------------------------------------------

--apt-ftparchive.conf--
--------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Dir {
  ArchiveDir ".";
  CacheDir ".";
};
 
Default {
  Packages::Compress "gzip";
  Sources::Compress "gzip";
  Contents::Compress "gzip";
  Packages::Extension ".deb"
};
 
/*Rutas a paquetes binarios*/
BinDirectory "dists/breezy/main/binary-i386" {
  Packages "dists/breezy/main/binary-i386/Packages";
  /*Contents "dists/breezy/Contents-i386";
  SrcPackages "dists/breezy/main/source/Sources";*/
};
BinDirectory "dists/gutsy/main/binary-i386" {
  Packages "dists/gutsy/main/binary-i386/Packages";
  /*Contents "dists/gutsy/Contents-i386";
  SrcPackages "dists/gutsy/main/source/Sources";*/
};
BinDirectory "dists/hardy/main/binary-i386" {
  Packages "dists/hardy/main/binary-i386/Packages";
  /*Contents "dists/hardy/Contents-i386";
  SrcPackages "dists/hardy/main/source/Sources";*/
};
 
 
/*Especifica de que consta la distribion*/
Tree "dists/breezy" {
  Sections "main";
  Architectures "i386";
};
Tree "dists/gutsy" {
  Sections "main";
  Architectures "i386";
};
Tree "dists/hardy" {
  Sections "main";
  Architectures "i386";
};
--------------------------------------------------------------------------------

--apt-gutsy-release.conf--
--------------------------------------------------------------------------------
1
2
3
4
5
6
APT::FTPArchive::Release::Origin "PuntXarxa";
APT::FTPArchive::Release::Label "PuntXarxa";
APT::FTPArchive::Release::Suite "stable";
APT::FTPArchive::Release::Architectures "i386";
APT::FTPArchive::Release::Components "main";
APT::FTPArchive::Release::Description "PuntXarxa";
--------------------------------------------------------------------------------

--udpate-archives.sh--
--------------------------------------------------------------------------------
1
2
3
4
5
6
#!/bin/sh
apt-ftparchive generate apt-ftparchive.conf
 
apt-ftparchive -c apt-breezy-release.conf release dists/breezy/ >dists/breezy/Release
apt-ftparchive -c apt-gutsy-release.conf release dists/gutsy/ >dists/gutsy/Release
apt-ftparchive -c apt-hardy-release.conf release dists/hardy/ >dists/hardy/Release
--------------------------------------------------------------------------------

--dists/gutsy/main/binary-i386/Release--
--------------------------------------------------------------------------------
1
2
3
4
5
6
Origin: px
Label: px
Suite: main
Codename: gutsy
Architecture: i386
Component: main
--------------------------------------------------------------------------------

Cualquier duda, no dudes en consultarme...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Daniel

Mi nuevo proyecto : Repositorio personal - ¿Quereis colaborar?

Publicado por Daniel (218 intervenciones) el 18/01/2014 08:45:24
Muchas gracias pero yo cree el repositorio en launchpad
y no consigo subir nada - GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Daniel

Mi nuevo proyecto : Repositorio personal - ¿Quereis colaborar?

Publicado por Daniel (218 intervenciones) el 19/01/2014 09:21:39
Muchas gracias ya lo he estado mirando pero yo no quiero un repo en mi pc o no de momento aunque igual un pc que me van a dejar podria.... Bueno esto lo tendre en cuenta pero la pregunta es como lo hago con launchpad.net????? Ya tengo instalado todo lo necesario solo me falta saber como conseguir los _source.changes de los archivos .deb para subirlos , podriais ayudarme???
GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar