Sie sind auf Seite 1von 27

Esta actividad deberás realizarla en una máquina virtual que tenga instalada cualquier

distribución del sistema operativo GNU/Linux, o en caso de no desear utilizar máquina


virtual, tendrás que tener instalada en tu computadora cualquier distribución, para poder
realizar lo siguiente:

1. Desarrolla un tutorial que muestre la instalación y configuración de los siguientes


programas libres:
a. Software gestor de base de datos: MySQL
2. De cada programa, deberás mostrar paso a paso en tu computadora o en tu máquina
virtual, cuál es el proceso completo de instalación, configuración y prueba. Por
talmotivo, presenta pantallas y texto de la siguiente información:

a. Sitio de descarga del programa.


b. Requerimientos e Instrucciones de descarga.
c. Instrucciones de instalación paso a paso.
d. Instrucciones de configuración paso a paso.
e. Descripción del funcionamiento de cada programa realizando alguna prueba,
dependiendo del programa; por ejemplo, para el entorno gráfico de desarrollo
escribir algún programa tipo “Hola mundo”, mostrando su funcionamiento, para
el sistema gestor de base de datos diseñando alguna base de datos y mostrando la
creación de una tabla.
Instalación

1. En la consola de comandos (shell) ejecutar el siguiente comando:

1 sudo apt-get install mysql-server

   NOTA: de preferencia antes de correr el comando apt-get install, actualizar la


lista de
   paquetes disponibles usando el comando:
   
1 sudo apt-get update

2. Seguir con los pasos del asistente de instalación y no olvidarse la clave asignada
al superusuario
    root. Una vez instalado el servidor MySQL verificamos que el servidor se haya
levantado a
    través del siguiente comando:
   
1 sudo netstat -tap | grep mysql

    El comando mostrará algo similar a lo siguiente, indicando el nombre de proceso


asignado y que el
    servidor se encuentra escuchando (LISTEN).

1 tcp        0      0 UbuntuSrv:mysql *:*                     LISTEN      667/mysqld

3. El archivo de configuración del servidor MySQL se crea en el


directorio /etc/mysq/my.cnf
    En éste archivo descomentar la línea:
   
1 bind-address = 127.0.0.1
   
  

Y colocar la IP asignada al servidor, esto sirve para que el servidor acepte


conexiones de clientes
    externos. Por ejemplo: 
   
1 bind-address = 192.168.90.100
   
4. Reiniciar el servidor MySQL usando el comando:
    
1 sudo /etc/init.d/mysql restart

5. En la consola de comandos acceder a la consola de administración


de MySQL usando:
1 mysql -u root -p

   NOTA: recordar la contraseña que se colocó para el usuario root en el paso 1.

6. Crear un usuario para realizar tareas administrativas.


   
mysql>use mysql;
1
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED B
2
Y 'manager' WITH GRANT OPTION;
3
mysql>FLUSH PRIVILEGES;
4
mysql>QUIT;

   
   NOTA: en éste caso la contraseña para el usuario creado es manager, de
preferencia cambiarla
   a una más segura.
   
7. Instalar un cliente de administración gráfico para conectarse al
servidor MySQL con el usuario
    creado en el paso 6. En mi caso instalé la versión para Windows de la
herramienta MySQL GUI 
    Tools descargando la aplicación del siguiente link:

http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-gui-tools-5.0-r17-
win32.msi/from/pick 

Gestión de los servicios [Iniciar | Detener | Reiniciar]

Para detener el servicio de MySQL ejecutar el siguiente comando:


1 /etc/init.d/mysql stop

Para iniciar el servicio ejecutar el comando:


1 sudo sudo /etc/init.d/mysql start

Para reiniciar el servicio ejecutar el comando:


1 sudo /etc/init.d/mysql restart

Cambiar la contraseña de los usuarios del servidor MySQL

Ingresar a la consola del servidor MySQL usando el comando mysql -u root -p


mysql>use mysql;
1
mysql>UPDATE user SET password=PASSWORD('nuevaClave'),
2
host='%' WHERE user='nombreUsuario';
3
mysql>FLUSH PRIVILEGES;
4
mysql>QUIT;
f. Servidor Web: Apache
Para nuestros propósitos, podemos iniciar escribiendo los siguientes comandos:

 sudo apt -get update



 sudo apt -get install apache2
Ya que estamos utilizando el comando sudo, estas operaciones son ejecutadas
con privilegios de administrador, por lo que le pedirá la contraseña para verificar
sus intenciones.

Una vez que haya ingresado su contraseña, apt le dirá qué paquetes planea
instalar y cuánto espacio adicional ocuparán en su disco. Ingrese Y y
presione Enter para continuar, y la instalación continuará.

Establecer ServerName para Suprimir los Errores de Sintaxis

A continuación, agregamos una sola línea al archivo /etc/apache2/apache2.conf para


suprimir un mensaje de advertencia. Si no se define ServerName globalmente,
recibirá la siguiente advertencia cuando compruebe la configuración de Apache
para los errores de sintaxis:

 sudo apache2ctl configtest


Output
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using
127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Abra el archivo de configuración principal con su editor de texto:

 sudo nano /etc/apache2/apache2.conf


Dentro, en la parte inferior del archivo, agregue una directiva ServerName,
apuntando a su nombre de dominio principal. Si no tiene un nombre de dominio
asociado con su servidor, puede utilizar la dirección IP pública de su servidor:

Nota: Si no conoce su dirección IP del servidor, vaya a la sección sobre cómo


encontrar la dirección IP de su servidor para encontrarla.
/etc/apache2/apache2.conf
...
ServerName dominio_del_servidor_o_IP
Guarde y cierre el archivo cuando termine.

Después, revise los errores de sintaxis escribiendo:

 sudo apache2ctl configtest


Puesto que hemos añadido la directiva global ServerName, todo lo que debe ver es:

Output
Syntax OK
Reinicie Apache para implementar los cambios:

 sudo systemctl restart apache2


Ahora puede comenzar a ajustar el firewall.

Ajustar el Firewall para Permitir el Tráfico Web

Ahora, asumiendo que ha seguido las instrucciones iniciales de configuración del


servidor para habilitar el firewall UFW, asegúrese de que el firewall permita el
tráfico HTTP y HTTPS. Puede asegurarse de que UFW tiene un perfil de
aplicación para Apache así:

 sudo ufw app list


Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Si observa el perfil Apache Full, deberia mostrar que habilita el tráfico a los puertos
80 y 443:

 sudo ufw app info "Apache Full"


Output
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
80,443/tcp

Permitir el tráfico entrante para ese perfil:

 sudo ufw allow in "Apache Full"


Usted puede hacer un chequeo inmediato para verificar que todo salió según lo
planeado visitando la dirección IP pública de su servidor en su navegador web
(vea la nota en el siguiente encabezado para averiguar cuál es su dirección IP
pública si no tiene esta información ya):

http://la_ip_de_su_servidor
Verá la página web predeterminada de Apache y Ubuntu 16.04, que está
disponible para fines informativos y de prueba. Debe ser algo como esto:
Si

usted ve esta página, entonces su servidor web está correctamente instalado y


accesible a través del firewall.
g. Lenguaje de desarrollo Web: PHP
HP es el componente de nuestra configuración que procesará código para mostrar
contenido dinámico. Puede ejecutar secuencias de comandos, conectarse a
nuestras bases de datos MySQL para obtener información, y entregar el contenido
procesado a nuestro servidor web para mostrarlo.

Una vez más podemos aprovechar el sistema apt para instalar nuestros


componentes. Vamos a incluir algunos paquetes de ayuda, así, por lo que el
código PHP se puede ejecutar en el servidor Apache y hablar con nuestra base de
datos MySQL:

 sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql


Esto deberá instalar PHP sin ningún problema. Vamos a probar esto en un
momento.

En la mayoría de los casos, vamos a querer modificar la forma en que Apache


sirve archivos cuando se solicita un directorio. Actualmente, si un usuario solicita
un directorio del servidor, Apache buscará primero un archivo llamado index.html.
Nosotros queremos decirle a nuestro servidor web que elija los archivos PHP de
preferencia, por lo que vamos a hacer Apache busque un
archivo index.php primero.

Para ello, escriba éste comando para abrir el archivo dir.conf en un editor de texto
con privilegios de root:

 sudo nano /etc/apache2/mods-enabled/dir.conf


Se verá de forma similar a esto:

/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Queremos mover el índice del archivo PHP destacandolo a la primera posición
después de la especificación del DirectoryIndex, así:
/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Cuando haya terminado, guarde y cierre el archivo presionando "CTRL-X". Va a
tener que confirmar el guardado ingresando "Y" y luego pulsando "Enter" para
confirmar la ubicación de almacenamiento de archivos.

Después de esto, tenemos que reiniciar el servidor web Apache para que nuestros
cambios sean reconocidos. Puede hacerlo hacerlo ejecutando esto:

 sudo systemctl restart apache2


También podemos comprobar el estado del servicio de apache2 a través
de systemctl:

sudo systemctl status apache2


Sample Output
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited,
status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited,
status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─13623 /usr/sbin/apache2 -k start
├─13626 /usr/sbin/apache2 -k start
├─13627 /usr/sbin/apache2 -k start
├─13628 /usr/sbin/apache2 -k start
├─13629 /usr/sbin/apache2 -k start
└─13630 /usr/sbin/apache2 -k start

Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Stopped LSB: Apache2 web server.


Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Starting LSB: Apache2 web server...
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: * Starting Apache httpd web
server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: AH00558: apache2: Could not
reliably determine the server's fully qualified domain name, using 127.0.1.1. Set
the 'ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2[13605]: *
Apr 13 14:28:43 ubuntu-16-lamp systemd[1]: Started LSB: Apache2 web server.

Instalación de Módulos de PHP

Para mejorar la funcionalidad de PHP, podemos instalar opcionalmente algunos


módulos adicionales.

Para ver las opciones disponibles para los módulos de PHP y bibliotecas, se
puede canalizar los resultados de la búsqueda apt-cache dentro de less, un
localizador que le permite desplazarse a través de la salida de otros comandos:

 apt-cache search php- | less


Use las teclas de flecha para desplazarse hacia arriba y hacia abajo, y q para salir.

Los resultados son todos los componentes opcionales que se pueden instalar. Se
le dará una breve descripción de cada uno:

libnet-libidn-perl - Enlaces de Perl para GNU Libidn


php-all-dev - Paquete que depende de todos los paquetes de desarrollo de PHP
soportados
php-cgi - Del lado del servidor, lenguaje de scripting embebido en HTML (CGI
binario) (Por defecto)
php-cli - Intérprete de línea de comandos para el lenguaje de scripting PHP (Por
defecto)
php-common - Archivos comunes para paquetes construidos desde fuente PHP
php-curl - Módulo CURL para PHP [Por defecto]
php-dev - Archivos para el módulo de desarrollo PHP (Por defecto)
php-gd - Módulo GD para PHP [Por defecto]
php-gmp - Módulo GMP para PHP [Por defecto]

:
Con el fin de probar que nuestro sistema se ha configurado correctamente para
PHP, podemos crear un script PHP muy básico.
Vamos a llamar a este script info.php. Para que Apache pueda buscar el archivo y
lo trabaje correctamente, se debe guardar en un directorio muy específico, al cual
se le conoce como "raíz".

En Ubuntu 16.04, este directorio se encuentra en /var/www/html/. Podemos crear


el archivo en esa ubicación ejecutando:

 sudo nano /var/www/html/info.php


Esto abrirá un archivo en blanco. Queremos poner el texto siguiente, que es el
código PHP válido, dentro del archivo:

info.php
<?php
phpinfo();
?>
Cuando haya terminado, guarde y cierre el archivo.

Ahora podemos probar si nuestro servidor web puede visualizar correctamente el


contenido generado por un script PHP. Para probar esto, sólo tenemos que visitar
esta página en nuestro navegador web. De nuevo necesitará la dirección IP
pública del servidor.

La dirección que desea visitar será:

http://dirección_IP_del_servidor/info.php
La página que verá debe ser algo como esto:

Esta página básicamente le da información sobre el servidor desde la perspectiva


de PHP. Es útil para la depuración y para asegurarse de que los ajustes se están
aplicando correctamente.

Si esto fue un éxito, entonces su PHP está funcionando como se esperaba.

h. Entorno gráfico de desarrollo web: Monodevelop

Lo primero que haremos sera instalar la versión 3 de mono:

Ingresa a orígenes del software y añade el siguiente origen:

deb http://debian.meebey.net/experimental/mono /
Luego abre la consulta y ejecuta:
apt-get update
apt-get install mono-complete
Ahora para instalar MonoDevelop 4 de forma fácil en Ubuntu o Mint pueden
descargar el siguiente script:

monodevelop4-build.sh
Abrir la terminal y desplazarse hasta la carpeta donde descargaron el script, por
ejemplo en mi caso:

cd ~/Descargas
Luego ejecuta:

sudo sh monodevelop4-build.sh
y listo, ya tenemos instalado la versión 4 de MonoDevelop

Nota: Si al ejecutar un proyecto asp.net te sale un error de mono-xsp:


Descargar el código de este desde el repositorio https://github.com/mono/xsp/
cd xsp
./autogen.sh
./configure –prefix=/usr
sudo make
sudo make install

Abrimos MonoDevelop, vamos a Archivo–>Nuevo–>Solucion, elegimos C# nuevamente a


la izquierda y a la derecha elegimos proyecto GTK# 2.0, le damos un nombre a proyecto y
luego apretamos siguiente, en la siguiente ventana no hacemos nada, solo le damos al boton
OK para que MonoDevelop se encargue de crear todos los archivos necesarios para
comenzar a trabajar.

Click para agrandar


De todos los archivos creados son 2 los mas importantes, Main.cs y MainWindows.cs estos
se pueden ver en la ventana solucion 
Para empezar a trabajar con el trabajo de diseño, se debe hacer dobre click sobre
MainWindows.cs y seleccionar ‘diseñador’ que se encuentra en la parte inferior. De esta
manera podremos ver la ventana sobre la cual podremos empezar a trabajar

Click para agrandar


A lo que me refiero es que los controles o componentes deben estar dentro de alguno de
estos u otros contenedores. Para ser más gráfico, en este ejemplo quiero usar dos controles;
un “Label” y un “Button” y quiero que al pulsar sobre el botón aparezca en la etiqueta un
“Hola Mundo”. Por lo tanto, necesito pensar en el orden en que estarán los controles, por lo
que para esta pequeña prueba solo necesito una tabla de una columna y dos filas usando el
“VBox” y después incluyendo los controles en su fila correspondiente.

Todos los componentes se encuentran en la barra de herramientas a la derecha, el Vbox se


encuentra dentro de los llamados ‘Containers’ y el label y el button dentro de los
‘Componentes’. Ahora es necesario ponerle nombre a los controles, esto se logra usando las
pestaña de “Propiedades” a la derecha, es tan simple como seleccionar el control y
modificar su propiedades de forma muy fácil. Para los que usaron Visual Basic alguna vez
(calculo que todos) esto es lo mismo.
En este proyecto uso los siguientes valores:
 Para el “MainWindow” 
Window Title: Proyecto Hola Mundo 
Window Position: Centered
Para el “label” 
Widget name: texto 
Label: Presiona el botón 
Justification: Center
Para el “button” 
Widget name: boton 
Buton Type: Text and Icon 
Icon: gtk-yes 
Label: Aceptar
El siguiente paso a seguir es declarar la acción del botón, que cuando se de un click este
haga algo, para realizar esta declaración es necesario seleccionar el botón y después ir a la
pestaña “señales” en las “Propiedades del componente”. Ahí podremos ver un listado de
comportamientos de control, buscamos el que se usa al pulsar el botón que se llama
“Clicked”. Al lado de este evento veremos un mensaje que dice “Click here to add a new
handler”, así que le hago caso y le doy un click para ponerle un nombre… se me ocurre por
ejemplo: “boton_Clicked”, osea “boton” ya que es el nombre del control y agregarle el
sufijo del nombre del evento, para que nuestro código tenga coherencia. 

trabajamos sobre el código pulsando sobre el botón “Código Fuente” del “MainWindow.cs”
y veremos lo siguiente:
 using System; 
using Gtk;
public partial class MainWindow: Gtk.Window 

public MainWindow (): base (Gtk.WindowType.Toplevel) 

Build (); 
}
protected void OnDeleteEvent (object sender, DeleteEventArgs a) 

Application.Quit (); 
a.RetVal = true; 
}
protected virtual void boton_Clicked (object sender, System.EventArgs e) 
{

}
Vemos ahora que ahi una funcion llamada boton_Clicked que MonoDevelop agrego
automaticamente, y ahora vamos a agregar el codigo bendito para que se muestre un “Hola
Mundo” en el label, seria asi:
 texto.Text=”Hola Mundo!!”;
Ya quedó, eso fue todo, solo un consejo que quiero darles es que se fijen que es ‘texto.Text’
y no ‘texto.text’, estamos hablando de C# y este es case sensitive. Podemos probar como
funciona nuestra aplicación de forma rápida, pulsando sobre el icono de ejecutar.

Queda asi: 

i. Entorno gráfico de desarrollo: Eclipse

abrimos una terminal (en modo gráfico), o hacemos un Ctrl-ALT-F2 por ejemplo,
para irnos a una de las consolas, y nos conectarnos:

 como root, si podemos o


 con nuestro usuario, y luego desde linea de comando tecleamos “su” y
tecleamos la contraseña de root
Ahora ya estamos en una terminal con permisos, de forma que instalamos el
entorno de desarrollo Java

apt-get install openjdk-7-jdk


Nos instalara el entorno de desarrollo java (la versión Open, si no, debes
descargarla desde Oracle)

A continuación, vas a la página de descargas de Eclipse


http://www.eclipse.org/downloads/?osType=linux
y te descargas la versión que te interese (32 o 64 bits) y dejas el fichero en tu
directorio de trabajo. En el momento de escribir esto, lo podrías hacer con un :

~#
wget http://eclipse.ialto.com/technology/epp/downloads/release/kepler/SR2/eclipse
-standard-kepler-SR2-linux-gtk.tar.gz

Ahora ya podemos descomprimir con el consabido

:~# tar -xzvf eclipse-standard-kepler-SR2-linux-gtk.tar.gz

Esto nos generará una carpeta “eclipse” que pasaremos a mover bajo el
directorio /opt

:~# mv eclipse /opt/

Y para esta primera fase, solo nos queda crear el lanzador, por lo que primero
creamos el fichero con nano:

nano /usr/share/applications/eclipse.desktop

y tecleamos dentro:

[Desktop Entry]
Name=Eclipse
Type=Application
Exec=/opt/eclipse/eclipse
Terminal=false
Icon=/opt/eclipse/icon.xpm
Comment=Entorno de Desarrollo integrado (Eclipse)
NoDisplay=false
Categories=Development;IDE
Name[en]=eclipse.desktop
Ya puedes volver al entorno gráfico, abrir el navegador de archivos, ir
hasta /usr/share/applications/  y arrastrar eclipse.desktop hasta la barra de “unity”
para dejar accesible y comodo tu nuevo IDE

Al empezar, nos preguntará por el área de trabajo, y nos sugiere una carpeta
llamada workspace justo debajo de nuestra “home“;
La pantalla que presentará de bienvenida,será algo asi:

Lo primero que hacemos a continuaciones instalar el plugin de Aptana Studio, ya


que nos aporta mejoras para la programación de PHP, y la conexion por FTP

Para ello, nos vamos al Menu Help, y escogemos “Install New Software”
En la pantalla que aparece
Añadiremos un repositorio a Eclipse, para eso:

1. Pulsamos “Add”
2. En “Name” podemos indicar por ejemplo “Aptana Studio”
3. y en Location pondremos: http://download.aptana.com/studio3/plugin/install
4. Por ultimo pulsamos OK
Como resultado, nuestra maquina se intentara conectar al nuevo repositorio;
cuando lo consiga nos mostrara una lista de los módulos disponibles:

Podemos utilizar el Select All, y pulsar en Next


Con lo que nos mostrará todos los modulos que va a instalar; un nuevo “Next”

y nos presentara el acuerdo de licencia:


1. Indicamos que lo aceptamos
2. pulsamos “Finish”
A partir de este punto, se descargan los módulos correspondientes
Hasta que vemos aparecer esta pantalla, que nos indica que hemos finalizado la
instalación de Aptana Studio, y debemos reiniciar Eclipse, pues un “Yes” lo hará
Otro plugin que puede ser interesante instalar es el que nos permite intercambiar
temas, y así cambiar los colores de la pantalla. Para poder manejar esos temas
cómodamente hay un plugin, y ahora que ya sabemos instalarlo, sera un
momento.

Vamos a Help->Install New Software y le añadimos un repositorio, como hemos


hecho antes, esta vez, en Nombre, podemos indicar “Gestor de Temas” y en
dirección: “http://eclipse-color-theme.github.com/update”, repetimos el proceso
anterior para descargar e instalar el plugin, y una vez este instalado, podemos ir
a Window > Preferences y en la sección General > Appearance >Color Theme.
tendremos un montón de temas que podemos ir seleccionando para ver su
aspecto, y cuando encontremos el que nos gusta, pulsamos OK

j. Software de diagramación UML: Umbrello


UMLet, está disponible para Linux, Windows y Mac. Su versión más reciente se
puede descargar desde aquí. También se puede instalar desde los repositorios
oficiales de las distribuciones más populares.

En Debian/Ubuntu y derivados:

sudo apt-get install umlet


En Arch y derivados:

sudo pacman -S umlet

UMLet, como su nombre indica es una herramienta para la creación


de Diagramas UML. Está basada en Java y es distribuida bajo la licencia GPL3.

Los Diagramas UML soportados son:


UMLet tiene una interfaz gráfica muy simple y utiliza un lenguaje de marcado para
la creación y edición de los elementos UML, lo cual permite una ventaja para
el Modelado avanzado.

Por ejemplo para cambiar el color de un elemento UML, dando clic elemento y


editar en el área de Propiedades:

bg = cyan
Use Case 1

El resultado sería el siguiente:

Otra característica de UMLet es la gran cantidad de formatos que soporta para la


exportación de sus diagramas.

k. Software de animación: Blender

Lo primero de todo será agregar los repositorios de la aplicación:

 sudo add-apt-repository ppa:irie/blender


A continuación actualizamos la lista de repositorios:

 sudo apt-get update

Para finalmente instalar Blender:

 sudo apt-get install blender

Con esto ya tendremos correctamente instalado Blender en nuestro equipo


con Ubuntu/Debian

3. Al final, presenta las conclusiones sobre la actividad reflexionando sobre la


importancia que tienen los entornos de desarrollo de software libre en
comparación con los de software propietario, así como el proceso de
descarga, instalación y configuración.

Actualmente es posible automatizar cualquier área de negocios o trabajo con un


mínimo de inversión y sin costos ocultos, ni contratos amañados que
comprometan el uso de un software por tiempo indeterminado, algo que se
promete pero no siempre se cumple. Asimismo, existe la posibilidad de renegociar
con los proveedores comerciales los contratos bajo el ultimatum de dejarlos y
cambiarse a un software libre. Se puede afirmar que el software libre es hoy día
una alternativa de competencia real al software propietario ya que ambos tienen
sus ventajas y desventajas es más óptimo elegir cual es el más apto para el tipo
de actividades.

Bibliografía

https://books.google.com.mx/books?
id=JoiuCgAAQBAJ&pg=PA81&dq=instalacion+y+utilizacion+software+para+ubunt
u&hl=es-
419&sa=X&ved=0ahUKEwibjJu08e7UAhWr7YMKHaVPAnsQ6AEIIjAA#v=onepag
e&q=instalacion%20y%20utilizacion%20software%20para%20ubuntu&f=false

http://www.ubuntu-guia.com/2009/06/como-instalar-paquetes-y-programas-en.html
https://openwebinars.net/blog/como-instalar-linux-apache-mysql-y-php-lamp-en-
ubuntu-1404/

https://ubunlog.com/eclipse-en-ubuntu/

https://paraisolinux.com/herramientas-para-modelado-uml/

Das könnte Ihnen auch gefallen