sábado, 15 de diciembre de 2012

LMDE: Todos los repositorios de Debian en un Clic


Yo normalmente soy muy estricto con la composición de mis repositorio. Pero lo soy claro está a mi manera. Es decir...no les hago ascos al uso de cualquier repositorios sea éste el que sea siempre que lo necesite por el motivo que fuere.
El uso y control total de los repositorios instalados o a instalar, es una de las mayores ventajas que uno en Linux pueda tener. Ya que ésto nos permite tener nuestro sistema (dentro de lo standar de cada Distribución si se puede decir así) a nuestra medida.
Por ejemplo, en el caso de LMDE podemos tener unicamente nuestros repositorios apuntando a Latest (que son los más estables) pero a la vez añadir otros repositorios "puntualmente" que nos permita añadir paquetería nueva o elevar las versiones de las ya instaladas. Estos repositorios se deben utilizar unicamente de forma "puntual" y una vez realizado lo que uno quiere, (muy importante) eliminarlos o #comentarlos.

El uso de repositorios extras a nuestra distribución (sobre todo cuando pertenecen a otras) nos puede llevar a dos simples situaciones:
- Tener nuestro sistema a nuestra medida y practicamente a la última
- Arruinar nuestro sistema parcialmente o por completo

La forma más fácil de intuir de que un repositorio nos traerá problemas es a la hora de instalar alguna paquetería de éste. Si en ese preciso momento nos indica que tiene que eliminar una serie de paquetes por entrar en conflicto con lo nuevos a añadir, está claro que algo dejará de funcionar y de seguir adelante tenemos todos los boletos para tener problemas.

Pongamos un ejemplo practico que ya he utilizado en alguna u otra ocasión:


Si queremos utilizar Déjà-Dup en LMDE (aún no es posible siguiendo los repositorios de Mint) sí se puede lograr añadiendo el repositorio de la rama SID.
Pero en este caso, rápidamente se da cuenta de que esto es a costa de eliminar una considerable cantidad barbara de paquetes, que seguro serán necesarios para una u otra cosa:


Está claro que instalar Déjà-Dup no compensa la enorme perdida de paquetería, ¿no?. Pero tambien sucederá, que con ese mismo repositorio no tendremos problemas para instalar o actualizar cualquier otra paquetería. Es decir nos irá bien para unos casos y terriblemente mal para otros.  Es precisamente en este último caso cuando debemos saber dar marcha atrás...
La verdad es que esto se puede convertir en todo un arte, y cuando uno decide en aventurarse y seguir adelante (como en lo expuesto anteriormente), debe tomar muy buena nota de todo lo que se va a cambiar, eliminar, modificar y reconfigurar, para que en el caso de que todo sea una pifia poder dejarlo como estaba antes de realizar la salvajada. Y os aseguro (si sale mal) que se necesitará mucho tiempo y paciencia para restaurarlo.

A priori puede parecer algo muy complicado y difícil de llevar a cabo, pero ciertamente no lo es tanto. La norma fundamental es que cuando se haga algo de este tipo, no se instale nada de forma desatendida. Es decir, que se realice siempre de forma controlada. Yo recomiendo hacerlo siempre desde el Synaptic por ser el más gráfico, el más fácil de ver y que mejor y más detallada información nos da.
Pero sobre todo, jamás de los jamases se utilice el Gestor de Actualizaciones (en este preciso momento) para actualizar el sistema. Ya que si por ejemplo hemos añadido de forma "puntual" un repositorio superior de Debian para actualizar un programa que no supone más de 3 o 4 paquetes...si clicamos en el Gestor de Actualizaciones en Actualizar puede pasar de 3 o 4, a por ejemplo 400 o más, ya que los actualizará todos!

En el blog se ha tratado (aparte de las consultas habidas de carácter personal) varias veces sobre este tema y que podéis ver aquí:

Sé que muchos usuarios de LMDE son impacientes al respecto de las actualizaciones de éste. En realidad las aportaciones de los Update Pack de Mint en su mayor medida son para la actualización de paquetería y una mínima parte en mejoras de su distribución en particular. Por lo tanto tampoco tiene mucho sentido que si uno necesita que X aplicación sea actualizada, tenga que esperar 4 o 5 meses en tenerla una vez éstos (Mint) decidan añadirla en sus repositorios.
Para ésto podemos tirar perfectamente (siempre de forma "puntual" como se expuso anteriormente) de las diferente ramas de la más grande de todas las distribuciones y en la que está especialmente basada LMDE: Debian

La forma más fácil e intuitiva de adquirir un repositorio de cualquier rama de Debian lo tenemos en la propia Web. Se trata de la página Debian Sources List Generator desde el cual con unos simples clic de mouse nos dará el repositorio deseado y si se quiere también, el más cercano a nuestra ubicación.


Una vez seleccionadas las opciones que nos interesen, clicamos en Generar Sources.list para que éste nos lo muestre y podamos copiarlo en nuestro archivo /etc/apt/sources.list.


La forma de proceder es muy fácil:
  • Seleccionamos uno de los "depósitos" País, más cercanos a nuestra Ubicación
Nota: Aunque pueda ser paradójico, no siempre la ubicación más cercana es la que mejor funciona.  Otro caso a parte que se debe tener en consideración, es que el depósito del País seleccionado puede que no se encuentre lo suficientemente actualizado. Es decir, paquetes encontrados en los repositorios de Francia pueden no encontrarse en los de España y viceversa.
  • Seleccionamos la rama que nos interese
Oldstable (lenny)
Stable (squeeze)
Testing (wheezy)
Unstable (Sid)
Experimental
  • Seleccionamos la arquitectura utilizada
32 bits
64 bits
  • Seleccionamos el tipo de paquetería
Main
Contrib
Non-free
Security
Updates

Aquí haremos un inciso y explicaremos las tres primeras opciones para facilitaros su compresión y elección ya que supongo que muchos aún no tendrán muy claro que significa Main, Contrib y Non-free. Las dos restantes no creo necesiten explicación alguna.

Main
Se refiere a paquetería 100% libres. Si seleccionamos unicamente Main los paquetes suministrados serán los que cumplen los 9 puntos de la directiva de Debian (DFSG) sin excepción, es decir: 100% software libre.

Contrib
Esta compuesto por software libre, pero dependiente de alguna u otra forma de uno o más paquetes que no son 100% libres y por lo tanto no afines en su totalidad a la directiva de Debian (DFSG).

Non-free
Aquí se encuentran y distribuyes paquetes que por un motivo u otro en su totalidad o en parte y de forma directa contienen condiciones de licencia onerosa que restringe su uso o redistribución.


Debian reconoce que algunos usuario necesitan para sus trabajos hacerlo sin las directrices de software libre de Debian (DFSG). Por ello, crearon las secciones Contrib y Non-Free en sus archivos para estos trabajos en concreto. Los paquetes en estas secciones no son parte del sistema Debian, aunque han sido configurados para usarse con Debian.

Puede ser que a muchos esto no les interese para nada y simplemente les interese instalar lo que necesiten instalar sin necesidad de que le llenen la cabeza con estas cosas. Pero con que haya uno que tenga interés en profundizar más, aquí expongo la directiva de Debian sobre los tres puntos anteriores que nunca está de más saberla.
Lógicamente la expongo en su versión original (ingles) para que no dar pie a interpretaciones erróneas.

                                                                                                                                                                                
Primer punto: Directiva (DFSG)

The Debian Free Software Guidelines

The Debian Free Software Guidelines (DFSG) form our definition of "free software". These are:
1. Free Redistribution
The license of a Debian component may not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license may not require a royalty or other fee for such sale.
2. Source Code
The program must include source code, and must allow distribution in source code as well as compiled form.
3. Derived Works
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
4. Integrity of The Author's Source Code
The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software. (This is a compromise. The Debian Project encourages all authors to not restrict any files, source or binary, from being modified.)
5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons.
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
7. Distribution of License
The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.
8. License Must Not Be Specific to Debian
The rights attached to the program must not depend on the program's being part of a Debian system. If the program is extracted from Debian and used or distributed without Debian but otherwise within the terms of the program's license, all parties to whom the program is redistributed must have the same rights as those that are granted in conjunction with the Debian system.
9. License Must Not Contaminate Other Software
The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be free software.
10. Example Licenses
The "GPL," "BSD," and "Artistic" licenses are examples of licenses that we consider free.
Segundo punto: Main

The main archive area

The main archive area comprises the Debian distribution. Only the packages in this area are considered part of the distribution. None of the packages in the main archive area require software outside of that area to function. Anyone may use, share, modify and redistribute the packages in this archive area freely.
Every package in main must comply with the DFSG (Debian Free Software Guidelines).
In addition, the packages in main
  • must not require or recommend a package outside of main for compilation or execution (thus, the package must not declare a "Pre-Depends", "Depends", "Recommends", "Build-Depends", or "Build-Depends-Indep" relationship on a non-main package),
  • must not be so buggy that we refuse to support them, and
  • must meet all policy requirements presented in this manual.
Tercer punto: Contrib

The contrib archive area

The contrib archive area contains supplemental packages intended to work with the Debian distribution, but which require software outside of the distribution to either build or function.
Every package in contrib must comply with the DFSG.
In addition, the packages in contrib
  • must not be so buggy that we refuse to support them, and
  • must meet all policy requirements presented in this manual.
Examples of packages which would be included in contrib are:
  • free packages which require contrib, non-free packages or packages which are not in our archive at all for compilation or execution, and
  • wrapper packages or other sorts of free accessories for non-free programs.
Cuarto punto: Non-Free

The non-free archive area

The non-free archive area contains supplemental packages intended to work with the Debian distribution that do not comply with the DFSG or have other problems that make their distribution problematic. They may not comply with all of the policy requirements in this manual due to restrictions on modifications or other limitations.
Packages must be placed in non-free if they are not compliant with the DFSG or are encumbered by patents or other legal issues that make their distribution problematic.
In addition, the packages in non-free
  • must not be so buggy that we refuse to support them, and
  • must meet all policy requirements presented in this manual that it is possible for them to meet
Fuente de la directiva

                                                                                                                                                     


Siguiendo con nuestro tema; lógicamente si seleccionamos las tres: Main, Contrib y Non-free quedaremos cubiertos en todos los sentidos con respecto a paquetería, pero ni mucho menos lo estaremos en filosofía libre. Pero esto, ya dependerá de cada cual.

Para finalizar explicaré brevemente la forma en la que procedo yo básicamente.
  1. Selecciono el repositorio que deseo en la Web indicada
  2. Edito mi archivo: sudo pluma /etc/apt/sources.list y elimino todo su contenido, añadiendo el repositorio creado. Guardo los cambios en el archivo sources.list pero no lo cierro ya que cuando finalice con la instalación de lo que valla hacer, clicaré en Deshacer en editor pluma para dejarlo como lo tenía en un principio. Nota: Si no tienes experiencia en este sentido, mejor crea antes de modificarlo una copia de /etc/apt/sources.list.
  3. Abro Synaptic y clico en el botón Actualizar.
  4. Instalo o actualizo las aplicaciones convenidas y cierro el Synaptic.
  5. Vuelvo a mi archivo sources.list que aún tengo abierto y clico en Deshacer hasta dejarlo con su contenido original
También se debe tener en cuenta que hay muchos casos en los que el cumplimiento de una serie de dependencias requiere de una combinación de repositorios...pero esto ya es otro cantar.

Aquí dejo un vídeo demostrativo del proceso indicado anteriormente.


Puede ser que me haya entendido un poco (bastante creo yo) pero pienso que no se puede indicar del cómo añadir según que cosas (sobre todo de este tipo) sin más explicación. Mejor pasarse que quedarse corto...vamos creo yo.

16 comentarios:

  1. Muy buenas, sabéis si se ha arreglado ya en el Kernel los problemas que había en cuanto a duración de las baterías? O sólo se han colocado pequeños parches?
    Gracias ;)

    ResponderEliminar
  2. Excelente entrada Frannoe, como todas las realizadas.
    Has estado un tiempo sin actividad, espero que vayan las cosas bien.
    Un abrazo.

    ResponderEliminar
  3. Frannoe, muchas gracias por la explicación. Hace unos días te hice una consulta en la sección " Tú preguntas" muy relacionada con el artículo que hoy publicas y si bien conseguí el objetivo (gracias a tu respuesta) no terminé de
    entender porqué había que hacerlo así. Hoy creo que he entendido eso y alguna cosilla más.


    Gracias. Un saludo, Angel.

    ResponderEliminar
  4. Muy buena explicación. La verdad es que explicando no tienes rival.

    ResponderEliminar
  5. Ya se ha comentado en este blog, en mas de una ocasión, sobre la conveniencia o no de agregar ciertos repositorios a nuestro sistema. Para un novato (como yo claro) esto es una tarea harto difícil y a no ser que te esté guiando un profesional estás vendido. Por eso es de agradecer la explicación dada aquí, ya que la experiencia es un grado, y siempre se aprende de quien primero anduvo el camino. A mi modo de ver la inclusión de los repositorios en LMDE es la tarea mas difícil del sistema, por lo delicada que es.Es mucho mejor medirse uno mismo que te mida el mismo sistema, por la cantidad de trabajo y tiempo que te puedes ahorrar. En Ubuntu esto era relativamente fácil con las "ppa", pero claro, todos sabemos hasta donde ha llegado Ubuntu con su política.Por tanto pienso que habrá que leer este trabajo y volverlo a reeler tantas veces como haga falta hasta llegar a tener "conciencia" en toda su amplitud de lo que significa .Es posible llegar a tener un SO a punto si te preocupas por él, ya que él, a la inversa, no lo va a hacer . Por tanto hay que seguir estudiando.Editado por Kikilovem.

    ResponderEliminar
  6. Muy buena explicación Frannone, hace unos días comentamos mis dudas y problemas con los repos y ahora lo has bordado. También añadiría por si aun a alguien le queda alguna duda que incluso para estas cosas puntuales podemos tener repos de Debian mixtos, es decir testing para multimedia y estable para seguridad.
    Y como tu dices yo antes de editar el source.list cuando lo abro con pluma, lo guardo antes de tocar nada como sourceold.list así siempre lo puedo recuperar.
    Me has solucionado un saco de problemas con el directorio de Debian source list. Vaya ayuda si señor.

    Saludos y excelente explicación.
    Y muchas gracias

    ResponderEliminar
  7. También aprovecho para comentarte una pequeña discusión que tuve en un chat sobre LMDE y las distro rolling release, me decían que eran malisimas porque e somos como conejillos de indias, y yo no estoy para nada de acuerdo con estas personas ya que estas distribuciones tienen la misma forma de trabajar que el win, añadiendo paqueteria solucionan todos los bugs y no tienes que reinstalar todo.
    Si estoy equivocado corrígeme.

    Gracias.

    ResponderEliminar
  8. No pudo ser mejor explicado, para las personas recian iniciadas en el mundo Debian-LMDE (como yo) quedan muy claras las cosas, muchas gracias por tu tiempo y dedicacion.
    Saludos

    ResponderEliminar
  9. He compartido este articulo con las comunidad de Debian y DesdeLinux, espero que no te moleste.
    saludos.

    ResponderEliminar
    Respuestas
    1. Muchas gracias a todos por vuestra buena crítica respecto a este artículo...

      Desde luego Mysta puedes compartirlo con quien buenamente quieras. Para eso está.

      Saludos

      Eliminar
  10. La lie. me gusta demasiado probar y hice lo que tu dijiste que no hay que hacer, me actualizo sin darme cuenta que tenia unos repos de debian que baje para una cosa y puffff sistema con pantalla negra.
    Al final reinstala todo LMDE, y tunealo como lo tenia.
    Seamos positivos, no hay mas que por bien no venga, llevo 2 meses con Linux, asi tambien se aprende.

    PD: Franonne como no escarmiento me he instalado el repo de liquorix para actualizar el kernel a la versión 3.6.0-10 y de momento todo bien, eso si como he comentado al tener que reinstalar LMDE la actualización del kernel la he hecho sin tener instalado aun el driver de Nvidia 310.19, ya que me daba miedo por si no arrancaba bien.
    Ahora voy a instalar el 310.19.

    Saludos y gracias

    ResponderEliminar
    Respuestas
    1. Desde luego Javier no hay mejor y modo más rápido de aprender que pifiándola de vez en cuando.
      Ya comentarás que tal te va con ese proyecto que llevas entre manos.
      Yo por mi parte también lo tengo puesto el Kernel 3.6. Y desde luego la velocidad de arranque es ciertamente considerable. Con respecto a la grráfica, lo más seguro es que te quedes sin "ella". si es así tan solo tienes que renombrar el archivos /etc/X11/xorg.conf y arrancar el Kernel 3.6 sin él . Luego una vez iniciado reinstala desde el Synaptic todos los paquetes de Nvidia 310.
      A saber:

      glx-alternative-nvidia
      libgl1-nvidia-alternatives
      libgl1-nvidia-glx
      libglx-nvidia-alternatives
      libvdpau1
      libxnvctrl0
      libxvmcnvidia1
      nvidia-alternative
      nvidia-glx
      nvidia-installer-cleanup
      nvidia-kernel-common
      nvidia-kernel-dkms
      nvidia-settings
      nvidia-support
      nvidia-vdpau-driver
      xserver-xorg-video-nvidia

      No todos son necesarios, pero por si las moscas...Luego una vez finalizado en un terminal ejecutas:
      sudo nvidia-xconfig

      Si de cualquier modo te quedas sin gráfica (a mi me funciona perfectamente) siempre puedes arrancar de cualquiera de los otros Kernels.
      ¿2 meses? pues vas que te las pelas !! jeje

      Eliminar
  11. Gracias Frannone,
    Ya me imprimi estos consejos y tambien tu articulo de solucion a la pantalla negra.
    Por el momemto no lo necesitare ya que como instale el 3.6.0-10 del Kernel ya no he actualizado mas, una vez instalado este kernel, volvi a seguir tu tutoria de la Nvidia 310.19 y todo perfecto.
    Vamos a ver cuanto tardo en volver a dejar el sistema K.O.
    Aprovecho aquí ya que hablamos del kernel, para una duda, no se si es solo sensación mía o en realidad el USB me funciona lento, cuando pongo un pen y paso pelis (2GB) me parece que la transferencia es mas lenta que en win, la estadística es de 9 o 10 Mb/s. ¿ Es velocidad normal ? Listando puertos tengo varios como USB 2.0 y 2 USB 3.0 de una tarjeta de expansión que puse. Claro yo veo que tarda en pasar la peli pero son 2Gb.
    Dejo este pequeña duda y así tu y la demás gente habitual de tu blog puede ir poniendo sus velocidades de transferencia.

    PD: lo del repositorio de liquorix no lo conocía pero va genial para lo del kernel

    Saludos y gracias por tus aportes y ayudas

    ResponderEliminar
    Respuestas
    1. Hola Frannoe,
      Esta pregunta va dirigida a ti o a Javier que sé que es asiduo del blog.
      A mi también me gusta trastear con mi laptop y me gustaría instalarle el kernel 3.6. Mi pregunta es ¿como lo habeís hecho vosotros?? no os preocupeis que no me importa reinstalar todo el sistema ;)
      Un abrazo
      ALex

      Eliminar
    2. Pues vamos a intentarlo,
      Es raro, ¿con esto instalas el nuevo kernel??? parece mucho más facil de lo que pensaba ;).
      Saludos
      Alex

      Eliminar
    3. La instalación de un nuevo kernel es relativamente sencilla y sin ningún riesgo, ya que si no te arranca con ese kernel, arrancas desde el grub con el que tenias antes.
      Luego si quieres compilarlo tu para tu maquina ya es otra cosa, ya que el de liquorix no deja de se un kernel genérico, cargado de módulos que en muchos casos tu pc no necesitara.
      Espero que te vaya bien ya cuentas.
      PD: ya salio la 3.7.5 estable, hay que ver el changelog para ver si han corregido algún bug.

      Saludos

      Eliminar