Taller de Programción C-Cpp, Repositorios personales y locales

De doc.ubuntu-es
(Diferencia entre las páginas)
Saltar a: navegación, buscar
(Adicion de capitulos al indice)
(Referencias)
 
Línea 1: Línea 1:
{{Comos}}
+
A menudo habrá algún paquete que quieras instalar pero no exista en los repositorios de Ubuntu. En el caso de que este paquete tenga alguna dependencia con otros paquetes, intentar usar '''dpkg''' puede hacerte caer en un "infierno dpkg", y que '''apt''' resuelva esas dependencias por ti podría ayudarte realmente. Hay métodos muy completos para crear tu propio repositorio, como [https://help.ubuntu.com/community/Debarchiver|Debarchiver] o [https://help.ubuntu.com/community/Dak|Dak]. Éstos son excesivos cuando todo lo que quieres es resolver dependencias de unos cuantos paquetes que te has descargado de Internet. Una solución simple es usar '''dpkg-scanpackages''', el cual creará un repositorio que puedas añadir a tu sources.list.
  
== Breve introducción ==
+
== Crear un repositorio personal ==
En este tutorial utilizaremos [[Code::Blocks]] (excelente IDE para programar con el compilador gcc) y [http://gcc.gnu.org/ gcc] para aprender a programar C, y posteriormente C++.
+
  
El tutorial es ambicioso, así, empezando por lo más básico, que será un simple hola mundo en lenguaje C, avanzaremos hasta tener un dominio suficiente de los lenguajes C-C++, lo que usaremos para entrar en mundos algo más interesantesm, como la creación de interfaces gráficas, o el uso de OpenGL.
+
Aquí tenemos 3 pasos para crear un repositorio propio sencillo propio
 +
* Pon los paquetes en un directorio
 +
* Crea un script que escaneará los paquetes y creará un archivo que '''apt-get update''' pueda leer
 +
* Añade una línea a tu sources.list apuntando a tu repositorio
  
Para completar el desarrollo de este taller, haremos uso también de una página web donde se publicarán soluciones.
+
=== El directorio ===
  
== Índice ==
+
Crea un directorio donde mantengas tus paquetes. Para este ejemplo usaremos /usr/local/mydebs.
* [[TallerC-Cpp: Prólogo.- ¿Qué vamos a aprender?]]
+
* [[TallerC-Cpp: Capítulo 0.- Preparándolo todo...]]
+
* [[TallerC-Cpp: Capítulo 1.- ¡Mi primer programa!]]
+
* [[TallerC-Cpp: Capítulo 2.- Aventurándonos en los dominios de C]]
+
* [[TallerC-Cpp: Capítulo 3.- Bucles (a marearse dando vueltas)]]
+
* [[TallerC-Cpp: Capítulo 4.- Funciones (las incomprensibles cajas negras)]]
+
  
== Enlaces ==
+
mkdir /usr/local/mydebs
[[http://gcc.gnu.org/ Página oficial del compilador gcc]] <br>
+
[[http://www.codeblocks.org/ Página oficial de la IDE Code::Blocks]]
+
  
 +
Ahora mueve tus paquetes al directorio que has creado.
  
[[Categoría:Programación]]
+
=== El script ===
 +
 
 +
Son simplemente dos líneas:
 +
 
 +
#! /bin/bash
 +
cd /usr/local/mydebs
 +
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
 +
 
 +
Copia y pega las líneas de arriba en un documento nuevo con gedit, y guardalo como '''update-mydebs''' en ~/bin. (el caracter '~' se refiere el directorio home. Si  ~/bin no existe, créalo: Ubuntu pondrá ese directorio en tu PATH. Este es un buen lugar para poner scripts personales). A continuación, haz tu script ejecutable:
 +
 
 +
chmod u+x ~/bin/update-mydebs
 +
 
 +
'''Cómo trabaja el script:'''
 +
 
 +
'''dpkg-scanpackages''' busca todos los paquetes en mydebs, y la salida se comprime y se guarda en archivo (Packages.gz) que '''apt-get update''' puede leer (consulta al final de la página las referencias para una explicación más detallada). /dev/null es un fichero vacio; es un substituto para un fichero invalidado el cual contiene alguna información adicional sobre los paquetes, que en este caso no es realmente necesario. De nuevo, consulta las referencias al final de la página si realmente quieres informarte sobre esto.
 +
 
 +
=== Sources.list ===
 +
 
 +
Añade la línea:
 +
 
 +
deb file:/usr/local/mydebs ./
 +
 
 +
A tu /etc/apt/sources.list, y guárdalo, y ya está hecho.
 +
 
 +
== Usar el repositorio ==
 +
 
 +
Siempre que pongas nuevos deb en el directorio mydebs, ejecuta
 +
 +
sudo update-mydebs
 +
sudo aptitude update
 +
 
 +
Ahora tus paquetes locales pueden ser manipulados con [[Synaptic]], [[Adept]], [[aptitude]] o [[apt]]. Cuando intentes hacer '''apt-get install''', cualquier dependencia será resuelta, siempre que sean conocidas.
 +
 
 +
Los paquetes mal hechos probablemente fallarán, pero no tendrás que aguantar el infierno de las dependecias.
 +
 
 +
== Referencias ==
 +
 
 +
* [[Como AptGet]]
 +
* [http://www.debian.org/doc/manuals/maint-guide/index.en.html Debian New Maintainers Guide]
 +
* [http://hereveri.cl/cdextra Crear repositorio para paquetes deb en Ubuntu]
 +
 
 +
== Fuentes ==
 +
 
 +
* https://help.ubuntu.com/community/Repositories/Personal
 +
 
 +
<!-- categorías -->
 +
[[Categoría:Repositorios]] [[Categoría:Revisar]]

Última revisión de 21:12 26 sep 2009

Advert.3.png Advertencia: éste artículo es un COMO o tutorial. La efectividad del mismo puede depender del hardware y software que tengas instalado. Por tanto, la fiabilidad puede variar entre usuarios, o incluso llegar estropear tu sistema. Utiliza este tutorial con precaución.


[editar] Breve introducción

En este tutorial utilizaremos Code::Blocks (excelente IDE para programar con el compilador gcc) y gcc para aprender a programar C, y posteriormente C++.

El tutorial es ambicioso, así, empezando por lo más básico, que será un simple hola mundo en lenguaje C, avanzaremos hasta tener un dominio suficiente de los lenguajes C-C++, lo que usaremos para entrar en mundos algo más interesantesm, como la creación de interfaces gráficas, o el uso de OpenGL.

Para completar el desarrollo de este taller, haremos uso también de una página web donde se publicarán soluciones.

[editar] Índice

[editar] Enlaces

[Página oficial del compilador gcc]
[Página oficial de la IDE Code::Blocks]

Herramientas personales