https://wiki.archlinux.org/api.php?action=feedcontributions&user=Anibal&feedformat=atomArchWiki - User contributions [en]2024-03-29T10:48:47ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=PostgreSQL&diff=76697PostgreSQL2009-09-27T19:12:39Z<p>Anibal: typo fixed</p>
<hr />
<div>[[Category:Networking (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
This document describes how to set up PostgreSQL and integrate it with [[PHP]] and [[Apache]]. It also describes how to configure PostgreSQL to be accessible from a remote client. [[PHP]] and [[Apache]] are assumed to be already be set up. If you need help setting up either of those two, see the [[LAMP]] page and follow all of the sections except the one related to [[MySQL]].<br />
<br />
==Installing PostgreSQL==<br />
*Install postgresql<br />
$ sudo pacman -Sy postgresql<br />
*Start the PostgreSQL server (The first time that this is run it will create the data directory and users needed to run the server. As such you will see a lot of output.) <br />
$ sudo /etc/rc.d/postgresql start<br />
*Check to make sure the postgres user is created and is in the postgres group. <br />
$ groups postgres<br />
*(Optional) Add postgresql to the list of daemons that start on system startup in the /etc/rc.conf file<br />
<br />
==Creating Your First Database==<br />
*Become the postgres user (This user was created when "/etc/rc.d/postgres start" was run)<br />
su root<br />
su - postgres<br />
*Add a new database user<br />
[http://www.postgresql.org/docs/8.3/static/app-createuser.html createuser] -DRSP <username><br />
-D User cannot create databases<br><br />
-R User cannot create roles<br><br />
-S User will not be a superuser<br><br />
-P Prompt for password will be issued<br><br />
<br />
Alternatively, you can use the createuser without parameter. Questions will be asked:<br />
<br />
# createuser <username><br />
Shall the new role be a superuser? (y/n) n<br />
Shall the new role be allowed to create databases? (y/n) y<br />
Shall the new role be allowed to create more new roles? (y/n) y<br />
<br />
If you create a user as per your login user ($USER) it allows you to access the postgresql database shell without having to specify a user to login as (which makes it quite convenient).<br />
<br />
*Create a new database over which that user has read/write privileges<br />
[http://www.postgresql.org/docs/8.3/static/app-createdb.html createdb] -O username databasename [-E database_encoding]<br />
*That's It! Your database has been created.<br />
<br />
==Familiarizing Yourself with PostgreSQL==<br />
<br />
===Access the database shell===<br />
*Become the postgres user the first time, so we can assign permissions to you (your primary user)<br />
$ sudo su postgres<br />
<br />
*Start the primary db shell, where you can do all your creation of databases/tables, deletion, set permissions, and run raw SQL commands.<br />
$ [http://www.postgresql.org/docs/8.3/static/app-psql.html psql]<br />
:''--You can optionally use `psql <database_name>` to administer an individual database.''<br />
*Connect to a particular database<br />
=> \c <database><br />
*List all users and their permission levels<br />
=> \du<br />
*Shows summary information about all tables in the current database<br />
=> \dt<br />
<br />
There are of course many more meta-commands, but these should help you get started.<br />
<br />
==Configure PostgreSQL to be accessible from remote==<br />
The PostgreSQL database server configuration file is <code>postgresql.conf</code>. This file is located in the data directory of the server, typically <code>/var/lib/postgres/data</code>. This folder also houses the other main config files, including the <code>pg_hba.conf</code>.<br />
{{Note | By default this folder will not even be browseable (or searchable) by a regular user, if you are wondering why `find` or `locate` isn't finding the conf files, this is the reason (threw me for a loop the first time I installed).}}<br />
#As root user edit the file<br><pre>$ sudo vim /var/lib/postgres/data/postgresql.conf</pre><br />
#In the connections and authentications section uncomment or edit the <code>listen_addresses</code> line to your needs<br><pre>listen_addresses = '*'</pre>and take a careful look at the other lines.<br />
#Hereafter insert the following line in the host-based authentication file <code>/var/lib/postgres/data/pg_hba.conf</code>. This file controls which hosts are allowed to connect, '''so be careful'''.<br><pre># IPv4 local connections: <br>host all all your_desired_ip_address/32 trust</pre>whereas <code>your_desired_ip_address</code> is the ip address of the client.<br />
#After this you should restart the daemon process for the changes to take effect with<br><pre>$ sudo /etc/rc.d/postgresql restart</pre><br />
<br />
{{Note | Postgresql uses port 5432 by default for remote connections. So make sure this port is open and able to receive incoming connections}}<br />
<br />
For troubleshooting take a look in the server log file<br />
tail /var/log/postgresql.log<br />
<br />
==Configure PostgreSQL to Work With PHP==<br />
#Open the file '''<code>/etc/php/php.ini</code>''' with your editor of choice, e.g.,<pre># vim /etc/php/php.ini</pre><br />
#Find the line that starts with, ";extension=pgsql.so" and change it to, "extension=pgsql.so". (Just remove the preceding ";"). If you need PDO, do the same thing with ";extension=pdo.so" and ";extension=pdo_pgsql.so". If this lines are not present, add it. This lines may be in the "Dynamic Extensions" section of the file, or toward the very end of the file.<br />
#Restart the Apache web server<pre># /etc/rc.d/httpd restart</pre><br />
<br />
==Installing phpPgAdmin (optional)==<br />
[http://phppgadmin.sourceforge.net phpPgAdmin] is a web-based administration tool for PostgreSQL. It can be installed two ways.<br />
<br />
===Option A: install via Pacman (preferred)===<br />
#Make sure that the [community] repo is enabled.<br />
#Install the package via Pacman<pre># pacman -Sy phppgadmin</pre><br />
<br />
===Option B: install via a manual install (the old way)===<br />
#Download the latest .bz2 file from [http://phppgadmin.sourceforge.net/?page=download here] into the root of your server directory <pre>wget -P /home/httpd/html<nowiki> http://downloads.sourceforge.net/phppgadmin/phpPgAdmin-4.1.3.tar.bz2</nowiki></pre><br />
#Extract the file into the new directory<pre>tar -C /home/httpd/html/ -jxvf /home/httpd/html/phpPgAdmin-4.1.3.tar.bz2</pre><br />
#Remove the tar file<pre>rm /home/httpd/html/phpPgAdmin-4.1.3.tar.bz2</pre><br />
#Change the name of the directory created in the previous step to include the version number (this will help in the future when upgrading)<pre>mv /home/httpd/html/phpPgAdmin /home/httpd/html/phpPgAdmin-4.1.3/</pre><br />
#Create a link to that directory (for ease of linking and upgrading)<pre>ln -s /home/httpd/html/phpPgAdmin-4.1.3/ /home/httpd/html/phpPgAdmin</pre><br />
#Copy the included generic config file<pre>cp /home/httpd/html/phpPgAdmin/conf/config.inc.php-dist /home/httpd/html/phpPgAdmin/conf/config.inc.php</pre><br />
<br />
<br />
The config file is located at '''/home/httpd/html/phpPgAdmin/conf/config.inc.php'''. No changes should be required. Check [http://phppgadmin.sourceforge.net/?page=faq this page] for any other setup questions that you might have.<br />
<br />
==Upgrading Postgresql ==<br />
{{Warning|Official postgresql [http://www.postgresql.org/docs/current/static/install-upgrading.html upgrade] documentation should be followed.}} <br />
<br />
First thing: these instructions could cause data loss. '''Use at your own risk'''. They work for me, but things change and nothing is guaranteed. <br />
<br />
I would highly suggest adding the line<br />
IgnorePkg = postgresql<br />
to /etc/pacman.conf. This will make sure that you don't accidentally upgrade the database to an incompatible version. If you did an accidental upgrade you might not be able to access any of your data. Always check the Postgresql home page (http://www.postgresql.org/) to be sure of what steps are required for each upgrade. For a bit about why this is the case see [http://www.postgresql.org/docs/faqs.FAQ.html#item3.6 this].<br />
<br />
How to dump all of your data, upgrade PostgreSQL, and then restore all of your data (this may not be necessary for every upgrade, see #2 above)<br />
<br />
Become the '''root''' user<br />
su<br />
Become the '''postgres''' user<br />
su postgres<br />
Change the current directory to one that the '''postgres''' user can write to<br />
eg. cd ~/data/<br />
Dump the current contents of the database<br />
[http://www.postgresql.org/docs/8.3/static/app-pg-dumpall.html pg_dumpall] > pgs_db.out<br />
<br />
Unless you have a [http://www.postgresql.org/docs/8.3/static/libpq-pgpass.html .pgpass] file setup, you will be required to enter your password a few times (the number of times is roughly equal to the number of databases that you have + 2). One problem occurs if you don't have a password defined for the postgres user but you require local users to authenticate. In this case you will be asked to give a password that doesn't exist. To work around this problem, add a line to your pg_hba.conf file to trust the postgres user. You can remove this line after the upgrade is complete. So, the first line of the 'local' section of pg_hba.conf would look something like this:<br />
local all postgres trust<br />
Log out of the '''postgres''' user and return to '''superuser'''<br />
exit<br />
Stop the PostgreSQL server<br />
/etc/rc.d/postgresql stop<br />
Move Postgresql's data directory<br />
mv /var/lib/postgres /var/lib/postgres_old<br />
Upgrade postgresql<br />
pacman -Sy postgresql<br />
Start the PostgreSQL server (this will create all needed files and directories) <br />
/etc/rc.d/postgresql start<br />
Become the '''postgres''' user<br />
su postgres<br />
Change the current directory to the directory that you dumped the data out to (in step 4 above)<br />
eg. cd /var/lib/postgres_old/data/<br />
Restore the database<br />
psql -e template1 -f pgs_db.out<br />
<br />
==More Resources==<br />
*[http://www.postgresql.org/ Official PostgreSQL Homepage]</div>Anibalhttps://wiki.archlinux.org/index.php?title=Talk:Conky&diff=71610Talk:Conky2009-07-05T22:36:26Z<p>Anibal: licence in wiki doesn't match with the one in project's web.</p>
<hr />
<div>From http://conky.sourceforge.net/: "... Conky is licensed under the '''GPL''' ..."</div>Anibalhttps://wiki.archlinux.org/index.php?title=Arch_Build_System_(Espa%C3%B1ol)&diff=71607Arch Build System (Español)2009-07-05T21:34:48Z<p>Anibal: /* El árbol ABS */</p>
<hr />
<div>[[Category:Administración de paquetes (Español)]]<br />
[[Category:Desarrollo_de_Arch_(Español)]]<br />
{{i18n_links_start}}<br />
{{i18n_entry|Česky|ABS - The Arch Build System (Česky)}}<br />
{{i18n_entry|Dansk|ABS_(Dansk)}}<br />
{{i18n_entry|English|ABS - The Arch Build System}}<br />
{{i18n_entry|Español|ABS - The Arch Build System (Español)}}<br />
{{i18n_entry|Ελληνικά|ABS - The Arch Build System (Ελληνικά)}}<br />
{{i18n_entry|正體中文|ABS - The Arch Build System (正體中文)}}<br />
{{i18n_entry|Polski|ABS - The Arch Build System (Polski)}}<br />
{{i18n_entry|Русский|ABS - The Arch Build System (Russian)}}<br />
{{i18n_entry|简体中文|ABS (简体中文)}}<br />
{{i18n_entry|Italiano|ABS - Il Sistema Di Compilazione di Arch (Italiano)}}<br />
{{i18n_entry|Türkçe|ABS - Arch Derleme Sistemi (Türkçe)}}<br />
{{i18n_links_end}}<br />
<br />
==== ¿Qué es ABS? ====<br />
ABS es Arch Build System, que traducido sería Sistema de Construcción de Arch. Es un sistema de tipo 'ports' para construir y empaquetar los programas partir de su '''código fuente'''. Mientras pacman es la herramienta especializada de Arch para paquetes binarios, (incluyendo paquetes hechos con ABS) ABS es la herramienta especializada de Arch para compilar las fuentes y crear un paquete .pkg.tar.gz instalable. <br />
<br />
=====¿Qué es un sistema de tipo ports?=====<br />
El sistema de 'Ports' es característico de la familia *BSD (por ejemplo FreeBSD). Parte de paquetes con '''código fuente''' y facilita su descarga, descompresión, parcheado, compilación e instalación. Un 'port' es un pequeño directorio de la computadora del usuario, nombrado según el programa que se instalará, que contiene unos pocos archivos con instrucciones para descargar e instalar paquetes desde las fuentes, típicamente sólo navegando por los directorios, o ports, y haciendo 'make' y 'make install'. El sistema entonces descarga, compila e instala el software deseado.<br />
<br />
====='''ABS''' es un concepto similar.=====<br />
'''ABS''' está hecho de un árbol de directorios, (el '''Árbol ABS'''), localizados en /var/abs, que contiene muchos subdirectorios, cada uno con una categoría, y cada uno '''nombrado por su respectivo, paquete construíble'''. Te puedes referir a cada paquete como 'ABS', tal como se refieren a los 'port'. Estos '''ABS''', o subdirectorios, '''no contienen el paquete del software, ni las fuentes''', pero en cambio, contienen un archivo '''PKGBUILD''', (y a veces otros archivos). Un PKGBUILD es un simple archivo de texto que contiene las instrucciones de compilación y empaquetado así como las URL de las fuentes para ser descargados. <br />
''El componente mas importante de ABS son los PKGBUILDs.''<br />
<br />
=====Instrucciones rápidas=====<br />
Ejecutando 'abs' como root crea el árbol ABS. Si quieres construir nano desde '''las fuentes''', por ejemplo tu podrías copiar /var/abs/core/base/nano a un directorio, navegar hasta el mismo y hacer '''makepkg'''. Es tan sencillo como eso. [[Makepkg]] intentará leer y ejecutar las instrucciones contenidas en el PKGBUILD. El comprimido con las fuentes será automáticamente descargados, descomprimido y compilado de acuerdo a los CFLAGS especificados en /etc/makepkg.conf, y finalmente transformarlo a un paquete con la extensión .pkg.tar.gz, así como las instrucciones PKGBUILD. Instalarlo es tan fácil como hacer pacman -U nano.pkg.tar.gz. La eliminación del paquete anterior es realizada por pacman.<br />
<br />
El PKGBUILD y otros archivos pueden ser personalizados de acuerdo a tus necesidades, y puedes elegir hacer la función ABS makepkg para hacer tus propios paquetes desde las fuentes fuera del árbol ABS. <br />
-----<br />
''Con el '''Árbol ABS''' en lugar, un usuario Arch tienes todos los paquetes de Arch a su disposición para ser compilado desde las fuentes.''<br />
<br />
=====¿Eso es lo que es?=====<br />
No exactamente. <br />
* También puedes usar la herramienta de pacman '''[[makepkg]]''' , en conjunto PKGBUILDs para crear tus propios paquetes, o compartirlos con la comunidad. El paquete resultante ''foo''.pkg.tar.gz estará listo para instalar con pacman.<br />
* ABS te permite usar [[AUR]], el cual esta lleno de PKGBUILDs escritos para ser instalados.<br />
<br />
=====El sistema ABS=====<br />
'ABS' puede ser usado como un término general, ya que incluye y depende en otros componentes. Sin embargo, no es válido utilizar el término ABS para las siguientes herramientas o conceptos:<br />
<br />
* '''El árbol ABS :''' La estructura de directorios de ABS en /var/abs/. Contiene subdirectorios nombrados por cada paquete de software disponible para Arch, pero no el paquete en sí.<br />
* '''ABS:''' El directorio actual donde esta el software a ser instalable por medio del PKGBUILD.<br />
* '''PKGBUILDs:''' Archivos de texto localizados en los directorios de ABS, con instrucciones para construir los paquetes y las URL de las fuentes. <br />
* '''[[AUR]]:''' EL Arch User Repository (Repositorio de Usuarios de Arch). Contiene los PKGBUILDs creados por los usuarios para el software que puede no estar disponible como un paquete oficial de Arch.<br />
* '''[[Makepkg]]:''' Conmando del terminal que lee las instrucciones del PKGBUILDs, compila las fuentes y crea un paquete .pkg.tar.gz.<br />
* '''[[Pacman]]:''' Pacman es completamente separado, pero es necesario invocarlo bien sea por medio de makepkg o manualmente para instalar y remover el paquete construido, y para el cálculo de las dependencias.<br />
<br />
==== ¿Por qué yo querría usar ABS? ====<br />
ABS es usado para:<br />
<br />
* Construir nuevos paquetes desde las fuentes, de software para el que no existen paquetes binarios (Lee [[Arch Linux - Reglas de Creación de paquetes]]) <br />
* Construir y compartir estos paquetes via [[AUR]]<br />
* Personalizar paquetes existentes para cubrir tus necesidades (activar o desactivar opciones)<br />
* Reconstruir todos los paquetes para usar tus propias CFLAGS, "a la FreeBSD" <br />
* Construir limpiamente e instalar tu propio Kernel. (Lee [[Compilación del Kernel]])<br />
* Obtener módulos del Kernel para usarlos en tu propio Kernel.<br />
<br />
ABS no es necesario usarlo en Arch Linux, pero es necesario para automatizar las tareas de compilación de software en Arch Linux.<br />
<br />
== Instalar Paquetes ==<br />
<br />
Para usar abs, primero necesitas instalar '''abs''' desde el repositorio core; esto puede hacerse simplemente con:<br />
<br />
<pre><br />
pacman -Sy abs</pre><br />
<br />
Esto también instalará las dependencias necesitadas.<br />
<br />
==== /etc/abs/abs.conf ====<br />
Edita /etc/abs/abs.conf para incluir tus repositorios deseados:<br />
nano /etc/abs/abs.conf<br />
Quita el ! al inicio de tus repositorios, ejem:<br />
SUPFILES=(core extra !unstable community !testing)<br />
==== Crea el árbol ABS ====<br />
Como root, haz:<br />
abs<br />
Ahora tu árbol ABS es creado en /var/abs. Notese que los repositorios apropiados en el árbol ABS ahora existen y corresponden a los especificados en /etc/abs/abs.conf. <br />
<br />
''El comando abs debe usarse periódicamente para sincronizar y actualizar tu árbol ABS.''<br />
<br />
==== /etc/makepkg.conf ====<br />
<br />
Edita /etc/makepkg.conf para especificar las variables de entorno y las CFLAGS:<br />
nano /etc/makepkg.conf<br />
<br />
==== El árbol ABS ====<br />
<br />
Cuando ejecutas abs por primera vez, él sincroniza el árbol ABS con el del servidor de Arch usando el sistema cvs. ¿Así que es el árbol ABS exactamente? El mismo esta ubicado en /var/abs y parece algo como esto:<br />
<br />
<pre><br />
|-<br />
| -- core/<br />
|-<br />
| ||-- autoconf/<br />
|-<br />
| ||-- automake/<br />
|-<br />
| ||-- ...<br />
|-<br />
| -- devel/<br />
|-<br />
| -- ...<br />
|-<br />
| -- extra/<br />
|-<br />
| || -- daemons/<br />
|-<br />
| || || -- acpid/<br />
|-<br />
| || || || -- PKGBUILD<br />
... ... ... ...<br />
</pre><br />
<br />
Así que el árbol ABS tiene la misma escructura que el la base de datos de los paquetes:<br />
* Los primeros niveles representan las categorías.<br />
* Los segundos niveles representan los ABS, cuyos nombres corresponden al paquete que se desea construir.<br />
* Los PKGBUILD contienen toda la información concerniente al paquete.<br />
* Ademas, un directorio ABS puede contener parches y/u otros archivos necesarios para construir el paquete. <br />
''Es importante comprender que las fuentes del software no están en el directorio ABS.'' Para ello, el archivo '''PKGBUILD''' contiene una URL donde ABS va a descargarlos automáticamente.<br />
=====Crear un directorio para compilar=====<br />
Debes crear un directorio donde la compilación va a ocurrir. Aquí es donde tu vas a hacer todo; ya que nunca deberías modificar el árbol ABS compilando en él. Es buena práctica usar tu directorio HOME, aunque algunos usuarios de Arch prefieren crear un directorio 'local' en /var/abs/, pertenecientes a un usuario local. Copia ABS del árbol (var/abs/branch/category/nombre_paquete) al directorio de compilación.<br />
<br />
Crear tu directorio:<br />
mkdir /home/tuusuario/abs/local<br />
<br />
''NOTA: La primera descarga del árbol es la mas grande que se hará, a partir de allí solo se haran pequeños cambios cuando sea necesario, así que no tengas miedo de la información a descargar si solo tienes una conexión de 56k;es solo textos y archivos comprimidos''.<br />
<br />
Ahora que sabes que es un árbol ABS, ¿Como se usa ?<br />
<br />
==== La construcción de un paquete a la manera tradicional ====<br />
<br />
Si no estas familiarizado con las construcción desde las fuentes, debes saber que los paquetes (pero no todos) pueden ser construidos de esta '''manera tradicional''':<br />
* Descarga el comprimido con las fuentes desde el servidor remoto, usando el navegador web, ftp, wget o métodos alternativos.<br />
* Descomprime el archivo fuente:<br />
<br />
<pre><br />
tar -xzf foo-0.99.tar.gz<br />
tar -xjf foo-0.99.tar.bz2</pre><br />
<br />
* Entra al directorio:<br />
<br />
<pre>cd foo-0.99</pre><br />
<br />
* Configura el paquete: generalmente, existe un pequeño script llamado <code>configure</code> en el directorio de las fuentes que es usado para configurar el paquete (agrega o elimina soporte para cosas, escoge el directorio de instalación, etc.) y chequea que tu computadora posea todo el software necesario para crear el paquete. Se puede correr con solo:<br />
<br />
<pre>./configure [[opcion]]</pre><br />
<br />
Primero deberías entender la ayuda para ver como funciona:<br />
<br />
<pre>./configure --help</pre><br />
Si ninguna opción --prefix es pasada al script, ''muchos'' scripts usaran /usr/local como la ruta de instalación, pero otros usarán /usr. Para mayor seguridad, es recomendable pasar la opción --prefix=/usr/local. Es buena práctica instalar los programas personales en /usr/local, y los que deben ser mantenidos por la distribución, en /usr. Esto asegura que los paquetes personales puedan coexistir con los mantenidos por el gestor de paquetes de la distribución, en caso de Arch, ''pacman''.<br />
./configure --prefix=/usr/local<br />
* Compila las fuentes:<br />
<br />
<pre>make</pre><br />
<br />
* Instalarlo<br />
<br />
<pre>make install</pre><br />
* Desinstalarlo seria entrar al directorio de compilación y ejecutar:<br />
make uninstall<br />
<br />
Sin embargo, siempre deberías leer el archivo <code>INSTALL</code> para conocer como debe ser creado e instalado el paquete '''¡No todos los paquetes usan el sistema <code>configure; make; make install</code>!<br />
<br />
''Este método tradicional de compilación de las fuentes, puede por supuesto, ser usado en Arch Linux, pero ABS ofrece una lineal, sencilla y elegante alternativa que deberías ver.''<br />
<br />
==== La construcción de un paquete a lo ABS ====<br />
<br />
ABS es una elegante herramienta que permite la ayuda y personalización del proceso de construcción, creando un archivo de paquete para ser instalado. El método de ABS method incluye copiar el ABS desde el árbol a un directorio de compilación, y hacer el makepkg. El nuestro ejemplo, se construirá ''slim''manejador de la pantalla.<br />
<br />
*1. Copia el ABS de slim ABS desde el árbol a un directorio de compilación.<br />
cp -r /var/abs/extra/x11/slim /home/tuusuario/abs/local<br />
*2. Navega al directorio de compilación<br />
cd /home/yourusername/abs/local/slim<br />
*3. Haz makepkg, el cual descargará automáticamente las fuentes comprimidas, la descomprime, compila, y crea slim.pkg.tar.gz El argumento -i invoca a pacman a automáticamente instalar el resultante slim.pkg.tar.gz <br />
makepkg -i<br />
¡Eso es todo!. Ya haz construido un paquete slim desde las fuentes e instalado limpiamente en tu sistema con pacman. Para removerlo se debe usar pacman (pacman -R slim)<br />
<br />
Alternativamente puedes hacer makepkg sin el argumento -i y manualmente instalar el paquete usando:<br />
pacman -U slim.pkg.tar.gz<br />
<br />
* ''El método ABS agrega un nivel de seguridad y automatización, manteniendo la transparencia del paquete y el control de la manera de construcción del mismo mediante el archivo PKGBUILD.''</div>Anibalhttps://wiki.archlinux.org/index.php?title=AUR_User_Guidelines_(Espa%C3%B1ol)&diff=71606AUR User Guidelines (Español)2009-07-05T21:24:59Z<p>Anibal: /* Instalando paquetes del AUR */</p>
<hr />
<div>[[Category:Administración de paquetes (Español)]]<br />
[[Category:Acerca de Arch (Español)]]<br />
[[Category:Desarrollo de paquetes (Español)]]<br />
[[Category:Guías (Español)]]<br />
{{Article summary start}}<br />
{{Article summary text|Explains how to access and use the Arch User Repository}}<br />
{{Article summary heading|Available in languages}}<br />
{{i18n_entry|Česky|:AUR - uživatelský průvodce (Česky)}}<br />
{{i18n_entry|Dansk|:AUR_Brugervejledning}}<br />
{{i18n_entry|English|:AUR_User_Guidelines}}<br />
{{i18n_entry|Español|:Guía de usuario AUR (Español)}}<br />
{{i18n_entry|French|:AUR_User_Guidelines (French)}}<br />
{{i18n_entry|Italiano|:AUR_User_Guidelines (Italiano)}}<br />
{{i18n_entry|Русский|:AUR_руководство_пользователя}}<br />
{{i18n_entry|简体中文|:AUR用户指南}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|AUR Trusted User Guidelines}}<br />
{{Article summary wiki|Repositorio de Usuarios Arch Linux (AUR) (Español)}}<br />
{{Article summary wiki|AUR P & R (Español)}}<br />
{{Article summary wiki|Aurbuild (Español)}}<br />
{{Article summary end}}<br />
<br />
==Propósito==<br />
<br />
El [[ArchLinux User-community Repository (AUR)]] es un repositorio comunitario para los usuarios de Arch. Contiene descripciones de los paquetes que le permiten compilar un paquete desde las fuentes e instalarlo vía [[Pacman]]. Este documento enseña al usuario como acceder al AUR y trabajar con él. <br />
<br />
==Cómo utilizar el AUR==<br />
<br />
===Instalando paquetes del AUR===<br />
Para instalar un paquete que se ha encontrado en el AUR (esto es, en el repositorio UNSUPPORTED) siga los pasos que se listan a continuación:<br />
<br />
''Estos pasos incluyen un ejemplo de instalación para un paquete llamado "foo".''<br />
<br />
*Asegúrese en primer lugar de tener instaladas todas las herramientas necesarias. El metapaquete "base-devel" debería bastar, ya que incluye makepkg y las herramientas necesarias para compilar desde las fuentes. <br />
<br />
<code>pacman -Sy base-devel </code><br />
<br />
*Escoja a continuación un directorio apropiado para la construcción. Un directorio de construcción es simplemente un directorio donde se fabricará (o se construirá) el paquete y puede ser cualquier directorio. Ejemplos de directorios que se usan habitualmente son:<br />
<br />
<code>~/builds</code><br />
<br />
:o bien si utiliza ABS ("Arch Build System"):<br />
<br />
<code>/var/abs/local</code> <br />
<br />
:Si necesita más información acerca de ABS vaya a la página de [[ABS]]. El ejemplo utilizará <code>~/builds</code> como directorio de construcción.<br />
<br />
*Localice el paquete en el AUR. Esto se hace utilizando la [http://aur.archlinux.org/packages.php función de búsqueda], para navegar hasta esta función desde el [http://aur.archlinux.org/ sitio de AUR] haga click en el enlace "packages" a la derecha del menú superior. Pinchando con el ratón sobre el nombre de la aplicación en la lista de búsqueda le lleva a la página que contiene toda la información acerca de dicho paquete. Lea la descripción para asegurarse de que es el paquete deseado, también conviene comprobar cuando fue actualizado por última vez y leer todos los comentarios.<br />
<br />
*Descargue los ficheros de construcción necesarios. Desde la página que contiene la descripción del paquete descargue los ficheros de construcción necesarios haciendo click en el enlace "Tarball" hacia el final de la página a mano izquierda. Este fichero debería ser grabado en un directorio de construcción, pero podría ser copiado a dicho directorio una vez descargado. En el ejemplo el fichero descargado se llamaría "foo.tar.gz" si ha sido correctamente enviado.<br />
<br />
*Desempaquete el paquete tar.gz ("tarball"). Diríjase al directorio de construcción si no está ya ahí y extraiga los ficheros de construcción.<br />
<br />
<code>cd ~/builds<br />
tar -xvvzf foo.tar.gz</code><br />
<br />
Esto debería crear dentro del directorio de construcción un directorio nuevo llamado "foo".<br />
<br />
*'''IMPORTANTE''' Lea cuidadosamente todos los archivos. Diríjase al nuevo directorio que se ha creado y compruebe con mucha atención que ni el archivo PKGBUILD ni cualquier archivo .install contienen ordenes peligrosas. Si tiene dudas NO construya el paquete y busque consejo en los foros o en las listas de correo.<br />
<br />
<code>cd foo<br />
<editor de texto> PKGBUILD # Léalo completamente<br />
# Lea también cualquier archivo .install</code><br />
<br />
*Construya el paquete. Una vez confirmada la integridad de los archivos ejecute makepkg como un usuario normal en el directorio de construcción.<br />
<br />
<code>makepkg -s</code><br />
<br />
Esto usará [[sudo]] para instalar las dependencias necesarias. Si no quiere usar sudo utilice fakeroot (ver más abajo) y no incluya la opción "-s" en la orden makepkg.<br />
<br />
*Instale el paquete usando pacman. Se deberá haber creado un paquete llamado:<br />
<br />
<code><nombre de la aplicación>-<número de versió>-<arquitectura>.pkg.tar.gz.</code><br />
<br />
este paquete puede ser instalado utilizando la orden upgrade de pacman.<br />
<br />
<code>pacman -U foo-0.1-i686.pkg.tar.gz</code> <br />
<br />
'''Advertencia''': lo anterior es un breve resumen del proceso de construcción de un paquete. Una visita a la página [[ABS]] le dará todos los detalles, y se recomienda encarecidamente, en particular para aquellos empaquetadores primerizos.<br />
<br />
===Utilizando <code>fakeroot</code>===<br />
<code>fakeroot</code> simplemente otorga al usuario normal los permisos de administrador necesarios para crear paquetes en el entorno de construcción pero no le permite alterar nada a nivel de sistema. Si el proceso de construcción intenta modificar ficheros fuera del entorno de construcción se producirá un error y la construcción fallará - esto es muy útil para comprobar la calidad/seguridad/integridad de los archivos PKGBUILD para su posterior distribución. Se incluye por defecto <code>export USE_FAKEROOT="y"</code> en <code>/etc/makepkg.conf</code>, de manera que a menos que lo haya cambiado está ya habilitado.<br />
<br />
===Enviando paquetes a UNSUPPORTED===<br />
Una vez haya ingresado a la interfaz web del AUR, un usuario puede [http://aur.archlinux.org/pkgsubmit.php enviar] un fichero tar.gz de un directorio que contenga ficheros de construcción de un paquete. El directorio incluido en el archivo tar.gz deberá contener un fichero PKGBUILD, y tal vez algúnos ficheros .install, parches, etc. (no puede contener binarios EN ABSOLUTO). Se puede encontrar ejemplos de cómo debe ser un directorio tal en /var/abs. <br />
<br />
Tenga en cuenta de que se traa de un archivo tar.gz - p.ej. suponiendo que está subiendo un paquete llamado 'libfoo', cuando cree el archivo debería parecerse a esto (fíjese en la opción -zcvvf de tar):<br />
$ ls -a libfoo<br />
. .. PKGBUILD libfoo.install<br />
$ tar -zcvvf libfoo.tar.gz libfoo<br />
a libfoo<br />
a libfoo/PKGBUILD<br />
a libfoo/libfoo.install<br />
<br />
Cuando vaya a enviar un paquete, siga las siguientes reglas: <br />
* Compruebe que el paquete no está en [core], [extra], o [community]. Si está en alguno de estos repositorios CUALQUIERA SEA LA FORMA, NO envíe el paquete (si el paqute actual esta roto o le falta algua característica incluida emita por favor un informe de error en [http://bugs.archlinux.org/ FlySpray]).<br />
* Compruebe que no está en UNSUPPORTED. Si ya lo mantiene alguien, se puede enviar propuestas de cambios en un comentario a la atención de la persona que mantiene el paquete. Si no lo mantiene nadie, se puede adoptar y actualizar el paquete según se requiera.<br />
* Verifique con cuidado que lo que está subiendo es correcto. Todos los contribuyentes deben leer y adherirse a los [[Arch Packaging Standards]] cuando escriben ficheros PKGBUILD. Esto es esencial para el correcto funcionamiento y éxito general del AUR. Recuerde que no va a ganar ningún crédito o respeto de sus pares si les hacer perder el tiempo con un PKGBUILD incorrecto.<br />
* Los paquetes que contengan binarios o que estén muy mal escritos pueden ser borrados sin previo aviso.<br />
* Si no está seguro del todo del paquete (o del proceso de construcción/envío), envíe el fichero PKGBUILD a la lista de correo del AUR o a los hilos AUR del foro para que sea públicamente revisado antes de añadirlo al AUR.<br />
* Asegúrese de que el paquete es útil. ¿Querrá alguien más utilizar este paquete? ¿Es demasiado especializado? Si cree que un número razonable de usuarios va a encontrarle utilidad a este paquete, entonces es apropiado su envío.<br />
* Consiga cierta experiencia antes de enviar ningún paquete. Construya unos cuantos paquets para aprender el proceso y entonces envíelos.<br />
* Si envía un archivo package.tar.gz conteniéndo un fichero llamado 'package' obtendrá un error: 'Could not change to directory /home/aur/unsupported/package/package'. Para resolver esto renombre el fichero 'package', por ejemplo llámelo ahora 'package.rc'. Cuando esté instalado en el directorio de paquetes podrá renombrarlo de nuevo a 'package'.<br />
<br />
===Manteniendo paquetes en UNSUPPORTED===<br />
* Compruebe las respuests y comentarios por parte de otros usuarios e intente incorporar cualquier mejora que le sugieran; ¡considérelo como un proceso de aprendizaje!<br />
* ¡POR FAVOR NO envíe un paquete para olvidarse inmediatamente de él! Mientras esté en UNSUPPORTED, es tarea del usuario mantener el paquete comprobando si hay actualizaciones y mejorando el PKGBUILD.<br />
* Si por alguna razón no quiere continuar con el mantenimiento del paquete, use la orden <code>disown</code> en la interfaz web del AUR para dejar el paquete y/o mande un mensaje a la lista de correo del AUR.<br />
<br />
==El usuario y el AUR==<br />
<br />
El usuario normal juega un papel esencial e el AUR y sin el apoyo, la participación y la contribución de la comunidad de usuarios, el AUR no podría alcanzar su potencial. El ciclo de vida de un paquete del AUR comienza y termina con el usuario y requiere de éste que contribuya de diversas maners.<br />
<br />
===Compartiendo ficheros PKGBUILD en UNSUPPORTED===<br />
Los usuarios pueden '''compartir ficheros PKGBUILD''' utilizando el área UNSUPPORTED del AUR. UNSUPPORTED no contiene ningún paquete binaro pero permite subir a los usuarios ficheros PKGBUILD que pueden ser descargados por otros. La posibilidad de hacer comentarios permite a los usuarios hacer sugerencisa y mandar mejoras al usuario que subió el fichero PKGBUILD. Estos ficheros PKGBUILD son completamente no oficiales y no han sido profusamente inspeccionados, de manera que deberá usted asumir el riesgo.<br />
<br />
No hay por el momento ningún mecanismo oficial para descargar material de construcción desde UNSUPPORTED pero se pueden encontrar algunos guiones en la wiki.<br />
<br />
===[community]===<br />
El repositorio [community] es un supelmento de los repositorios [extra] y [core] donde se mantienen por parte de los usuarios "Trusted" y para el resto de los usuarios, los paquetes más utilizados de UNSUPPORTED. [community], a diferencia de UNSUPPORTED, contiene paquetes binarios que pueden ser instalados directamente mediante pacman y se puede acceder a los ficheros de construcción con el [[ABS]]. Algunos de estos paquetes pueden eventualmente ser trasladados a los repositorios [core] o [extra] si los desarrolladores los consideran cruciales para la distribución.<br />
<br />
Los usuarios pueden acceder al repositorio del AUR [community] añadiendo (o descomentando) esta línea en su archivo pacman.conf:<br />
Include = /etc/pacman.d/community<br />
Si <code>/etc/pacman.d/community</code> no existe entonces habrá que crearlo de manera que contenga lo siguiente:<br />
<pre>[community]<br />
Server = ftp://ftp.archlinux.org/community/os/i686/</pre><br />
<br />
Los usuarios pueden acceder también a los archivos de construcción de [community] editando <code>/etc/abs.conf</code> y eliminando el signo de exclamación que esta justo delante del repositorio community, de la manera siguiente:<br />
<pre>REPOS=(core extra community !testing)</pre><br />
<br />
===Votando===<br />
Una de las actividades más sencillas para '''todos''' los usuarios de Arch es navegar por el AUR y utilizar la interfaz online para '''votar''' a favor de sus paquetes favoritos. Todos los paquetes son elegibles para que sean adoptados en [community] por un usuario "Trusted", y el número de votos una de las consideraciones a tener en cuenta en ese proceso - ¡así que es del interés de todo el mundo el votar!<br />
<br />
==AUR-DMS (descargando y gestionando guiones)==<br />
<br />
=== Lista de AUR-DMS ===<br />
#'''[[aurbuild]]''' (Python)<br />
#'''aur-install''' (bash)<br />
#'''aur-sync''' (Perl) - para descargar todos los paquetes tar.gz del AUR<br />
#'''aurscripts''' (bash):<br />
##'''aurcreate''' - crea paquetes limpios preparados para subir al AUR <br />
##'''aurdownload''' - descarga y y extrae paquetes del AUR <br />
##'''aurupdate''' - actualiza las versiones de los paquetes update package versions (si se especifica una) y las sumas md5<br />
#'''aurup''' (bash) - para subir paquetes al AUR<br />
#'''autarchy''' (bash) - para crear un paquete tar que incluya todos los ficheros requeridos por el fichero PKGBUILD (mejor que aurcreate)<br />
#'''autoaur''' (bash, depende de aurscripts, actualizará automáticaente todos los paquetes que tanga instalados desde el AUR) <br />
#'''qpkg''' (Python, funciona también con paquetes que no son del AUR, *descontinuado*) <br />
#'''[http://archlinux.fr/yaourt-en yaourt]''' (bash, un programa que utiliza srcpac con capacidad de trabajar con el AUR y otros repositorios) <br />
<br />
Puede encontrar todos estos ''scripts'' (guiones) en [http://aur.archlinux.org/packages.php?L=2 UNSUPPORTED].</div>Anibal