jueves, 6 de marzo de 2014

Instalando Oracle 11g Release 2 bajo FreeBSD 9

Está Escrito:
Examináis las Escrituras porque vosotros pensáis que en ellas tenéis vida eterna; y ellas son las que dan testimonio de mí; (Juan 5:39)

Tomado de:DiabloEnLosDetalles

Continuamos dotando de funcionalidad a nuestra Jaula Debian GNU/Linux recién instalada. Para ello me he decidido por instalar Oracle 11gR2 para Linux, por tratarse de uno de los paquetes de software mas exigentes que se pueden encontrar; me parece que es una buena  forma de explorar los limites de la solución propuesta.

Otra motivación es el hecho de que en el Manual de FreeBSD el capítulo dedicado a la instalación de Oracle se refiere a la versión Oracle 8.0.5, que es bastante antigua, y esta circunstancia estimuló mi curiosidad.

Esta plataforma no resulta idónea para un entorno de producción ya que no está certificada por Oracle, lo cual no le resta utilidad como entorno de pruebas e incluso entorno de desarrollo para pequeños proyectos; depende de la aventurado que sea uno.

Las ventajas de emplear FreeBSD como infraestructura para entornos virtualizados son:

  1. Sistema de Ficheros ZFS.
  2. Pila de TCP/IP virtual.
  3. Seguridad de red con pf.
  4. Análisis de rendimiento con Dtrace.


Las ventajas de emplear Debian GNU/Linux dentro de una Jaula son:

  1. Debian GNU es una de las distribuciones Linux mas fiables y con un ciclo de lanzamiento de versiones muy previsible. 
  2. Utilizar una distribución completa nos ahorra bastante trabajo a la hora de instalar Oracle.
  3. Disponer de documentación técnica actualizada.

Como no soy partidario de instalar entornos gráficos en los servidores, especialmente si tienen que dar soporte a un motor de bases de datos tan pesado como lo es Oracle, voy a realizar una instalación en modo texto, empleado un fichero de respuestas para el instalador de Oracle.



Tareas previas a la instalación de Oracle


En todas las instalaciones de la base de datos Oracle hay que preparar el S.O para que se puede instalar y ejecutar correctamente. Estas tareas previas son específicas de cada S.O y la versión de Oracle.


Tareas específicas en FreeBSD


Las siguientes tareas se deben ejecutar como root:

1.-  Clonamos la Jaula deb-master previamente definida, utilizando la versión Lenny, para crear la Jaula debora:

root@morsa:/root # zfs clone fbsdzpool1/jailz/deb-master@deboostrap fbsdzpool1/jailz/debora

2.- Configuramos semáforos, memoria compartida y E/S asíncrona conforme a los requerimientos de Oracle 11gR2, para ello editamos /boot/loader.conf y /etc/sysctl.conf.

// Comienza  el fragmento de /boot/loader.conf 

kern.ipc.shmmni=4096
kern.ipc.semmns=32000
kern.ipc.semmni=128
aio_load="YES"

// Fin del fragmento de /boot/loader.conf
  
// Comienza  el fragmento de /etc/sysctl.conf

security.jail.sysvipc_allowed=1
kern.ipc.shmall=2097152
kern.ipc.shmseg=128
kern.ipc.shmmin=1
kern.ipc.shmmax=1073741824
kern.ipc.semaem=16384
kern.ipc.semvmx=32767
kern.ipc.semusz=632
kern.ipc.semume=50
kern.ipc.semopm=100
kern.ipc.semmsl=340
kern.ipc.semmnu=150

// Fin del fragmento de /etc/sysctl.conf 

3.- Habilitamos la memoria compartida en la Jaula debora.
// Comienza fragmento de /jailz/etc/jail.conf

debora {
  path = /jailz/debora;
  allow.mount;
  allow.sysvipc;
  host.hostname = debora;
  mount.devfs;
  mount.fstab="/jailz/etc/fstab.debora";
  ip4.addr = 127.0.0.25;
  interface = lo0;
  exec.start = "/etc/init.d/rc 3";
  exec.stop = "/etc/init.d/rc 0";
}
// Fin del fragmento de /jailz/etc/jail.conf 



4.- Iniciamos la jaula y nos conectamos a ella.

root@morsa:/root # jail -f /jailz/etc/jail.conf -c debora
debora: created
Starting periodic command scheduler: crond.
root@morsa:/root # jls
   JID  IP Address      Hostname                      Path
     1  127.0.0.25      debora                        /jailz/debora
root@morsa:/root # jexec 1 /bin/bash
debora:/# uname -a
Linux debora 2.6.16 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013 i686
 GNU/Linux

Tareas específicas en Debian


Los siguientes pasos se ejecutan dentro de la Jaula debora como usuario root:

5 .- Instalamos los paquetes requeridos para Oracle 11gR2 en Debian:

debora:/# apt-get install gcc make binutils lesstif2 rpm libaio1 libdb4.6 libstdc++5 unzip openjdk-6-jdk

Nota: El paquete openjdk-6-jdk se instala para disponer un entorno jre alternativo al proporcionado por el instalador de Oracle.

6.- Creamos los siguientes enlaces simbólicos:

debora:/# ln -s /usr/bin/awk /bin/awk
debora:/# ln -s /usr/bin/rpm /bin/rpm
debora:/# ln -s /usr/bin/basename /bin/basename
7.- Creamos los grupos y usuarios dba, oinstall y oracle.
debora:/# groupadd oinstall -g 1000
debora:/# groupadd dba -g 1001
debora:/# useradd -m -g oinstall -G dba -p passwd -s /bin/bash -d /home/oracle -u 1000 oracle
debora:/# passwd oracle
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
8.- Creamos los directorios para el sofware y la base de datos y les asignamos como propietario el usuario oracle.
debora:/# mkdir -p /oracle/product/11.2.0
debora:/# mkdir -p /oracle/admin/ORATEST/create
debora:/# mkdir /oracle/admin/ORATEST/adump
debora:/# mkdir /oracle/admin/ORATEST/logbook
debora:/# mkdir /oracle/oraInventory
debora:/# mkdir /oracle/oradata
debora:/# mkdir /oracle/flash_recovery_area
debora:/# chown  oracle.oinstall /oracle
debora:/# chown -R oracle.oinstall /oracle/product
debora:/# chown oracle.oinstall /oracle/oraInventory
debora:/# chown -R oracle.dba /oracle/admin
debora:/# chown oracle.dba /oracle/oradata
debora:/# chown oracle.dba  /oracle/flash_recovery_area
9.- Añadimos el nombre de host al fichero /etc/hosts.
debora:/# echo '127.0.0.25 debora' >> /etc/hosts

10.-  Creamos el archivo /etc/oraInst.loc y le asignamos como propietario al usuario oracle:

 // Comienza /etc/oraInst.loc

inventory_loc=/oracle/oraInventory
inst_group=oinstall

 // Fin de  /etc/oraInst.loc


debora:/# chown oracle.oinstall /etc/oraInst.loc



Instalación del Software de Oracle

Los siguientes pasos se ejecutan dentro de la Jaula debora bajo el usuario oracle:

11.- Cambiamos el usuario root a oracle. 

debora:/# su - oracle
oracle@debora:~$ id
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba)
oracle@debora:~$
12.- Copiamos al directorio /oracle (por ejemplo) los ficheroslinux_11gR2_database_1of2.zip y linux_11gR2_database_2of2.zip que contienen el instalador y los descomprimimos:
oracle@debora:/oracle $ unzip linux_11gR2_database_1of2.zip
oracle@debora:/oracle $ unzip linux_11gR2_database_2of2.zip 

13.- Para realizar la instalación desatendida creamos el fichero de respuestas/oracle/database/response/install_debora.rsp. Están marcados en negrita los valores que puede resultar útil modificar, el resto del fichero debe dejarse inalterado, pues esta versión del instalador es problemática y este es el formato que debe mantener el fichero de respuestas.

// Comienza el fichero install_debora.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=debora
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/oracle/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/oracle/product/11.2.0
ORACLE_BASE=/oracle
oracle.install.db.InstallEdition=SE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=username@mailaddress.com
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=

// Fin del fichero install_debora.rsp

14.- Ejecutamos  el instalador con las opciones indicadas tal y como están: 

oracle@debora:~$ /oracle/database/runInstaller -silent  -ignorePrereq -jreloc /usr/lib/jvm/java-6-openjdk -responseFile /oracle/database/response/install_debora.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 80 MB.   Actual -2147483648 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4096 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-09-01_08-30-45PM. Please wait ...
[WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
   CAUSE: The Central Inventory is located in the Oracle base.
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
[WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
   CAUSE: The Central Inventory is located in the Oracle base.
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
You can find the log of this install session at:
 /oracle/oraInventory/logs/installActions2013-09-01_08-30-45PM.log
 
The following configuration scripts need to be executed as the "root" user.
 #!/bin/sh
 #Root scripts to run

/oracle/oraInventory/orainstRoot.sh
/oracle/product/11.2.0/root.sh
To execute the configuration scripts:
         1. Open a terminal window
         2. Log in as "root"
         3. Run the scripts
         4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.
15.- Revisamos los logs del instalador.
debora:~# tail -10 /oracle/oraInventory/logs/installActions2013-09-01_08-30-45PM.log
INFO: Validating state <finish>
WARNING: Validation disabled for the state finish
INFO: Completed validating state <finish>
INFO: Terminating all background operations
INFO: Terminated all background operations
INFO: Successfully executed the flow in SILENT mode
INFO: Finding the most appropriate exit status for the current application
INFO: Exit Status is 0
INFO: Shutdown Oracle Database 11g Release 2 Installer
INFO: Unloading Setup Driver
16.- Si la instalación ha sido correcta, ejecutamos como usuario root los scriptsorainstRoot.sh y root.sh :
oracle@debora:~$ logout
debora:~# id
uid=0(root) gid=0(root) groups=5(tty)
debora:~# /oracle/oraInventory/orainstRoot.sh
Changing permissions of /oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /oracle/oraInventory to oinstall.
The execution of the script is complete.

debora:~# /oracle/product/11.2.0/root.sh
Check /oracle/product/11.2.0/install/root_debora_2013-09-01_20-39-01.log for the
 output of root script

debora:~# more /oracle/product/11.2.0/install/root_debora_2013-09-01_20-39-01.log

Running Oracle 11g root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /oracle/product/11.2.0

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
 

Creación de una base de datos de Pruebas


Antes de crear una base de datos necesitamos  un fichero de parámetros init.ora y un script con los comandos SQL que ejecutan la creación de la base de datos.


17.- Creamos el fichero /oracle/admin/ORATEST/create/initORATEST.ora:

// Comienza el fichero initORATEST.ora

db_name='ORATEST'
db_domain=''
sga_target=512M
sga_max_size=1G
pga_aggregate_target=1G
processes = 150
audit_trail ='db'
db_block_size=8192
db_recovery_file_dest='/oracle/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/oracle/'
#dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
compatible ='11.2.0'
db_create_file_dest='/oracle/oradata'
filesystemio_options = SETALL
disk_asynch_io = TRUE

// Fin del fichero initORATEST.ora

18.- Creamos los ficheros /oracle/admin/ORATEST/create/ORATEST.sh y/oracle/admin/ORATEST/create/cr_ORATEST.sh:
// Comienza el fichero ORATEST.sh
ORACLE_HOME=/oracle/product/11.2.0
ORACLE_SID=ORATEST

NLS_LANG=American_america.WE8ISO8859P15
ORA_NLS11=${ORACLE_HOME}/nls/data
PATH=$PATH:$ORACLE_HOME/bin
export PATH
export ORACLE_BASE
export ORACLE_HOME
export ORACLE_SID
export NLS_LANG
export ORA_NLS33 
// Fin del fichero ORATEST.sh

// Comienza el fichero cr_ORATEST.sh
#!/bin/bash

. ./ORATEST.sh

rm ${ORACLE_HOME}/dbs/orapw${ORACLE_SID}
orapwd file=${ORACLE_HOME}/dbs/orapw${ORACLE_SID} password=diablo entries=2

rm -r /oracle/oradata/${ORACLE_SID}

sqlplus /nolog << EOF
spool ../logbook/cr_${ORACLE_SID}.log
conn / as sysdba;
CREATE SPFILE
FROM   PFILE='/oracle/admin/${ORACLE_SID}/create/init${ORACLE_SID}.ora';

DISCONNECT;

conn / as sysdba;

STARTUP NOMOUNT;
CREATE DATABASE ${ORACLE_SID}
CHARACTER SET WE8ISO8859P15
NATIONAL CHARACTER SET UTF8
USER SYS IDENTIFIED BY diablo
USER SYSTEM IDENTIFIED BY diablo
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE temp
UNDO TABLESPACE undotbs1
DEFAULT TABLESPACE users;

@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql

SHUTDOWN IMMEDIATE;

EXIT
spool off

EOF 
// Fin del fichero cr_ORATEST.sh

19.- Concedemos a los scripts los permisos de ejecución:

oracle@debora:/oracle/admin/ORATEST/create$ chmod 750 *.sh
oracle@debora:/oracle/admin/ORATEST/create$ ls -la
total 31
drwxr-xr-x 2 oracle dba   5 Sep  1 21:04 .
drwxr-xr-x 5 oracle dba   5 Sep  1 20:11 ..
-rwxr-x--- 1 oracle dba 258 Sep  1 21:02 ORATEST.sh
-rwxr-x--- 1 oracle dba 782 Sep  1 21:04 cr_ORATEST.sh
-rw-r--r-- 1 oracle dba 490 Sep  1 21:01 initORATEST.ora
20.- Iniciamos la creación de la base de datos:
oracle@debora:/oracle/admin/ORATEST/create$ nohup ./cr_ORATEST.sh &
21.- Comprobamos que la creación de la base de datos a concluido correctamente:
oracle@debora:/oracle/admin/ORATEST/create$ tail -10 nohup.out
SQL> CREATE PUBLIC SYNONYM PRODUCT_USER_PROFILE FOR SYSTEM.PRODUCT_PRIVS;

Synonym created.

SQL>
SQL> -- End of pupbld.sql
SQL> SQL> Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> SQL> Disconnected from Oracle Database 11g Release 11.2.0.1.0 - Production


22.- Arrancamos la base de datos y nos conectamos.

oracle@debora:/oracle/admin/ORATEST/create$  . ./ORATEST.sh
oracle@debora:/oracle/admin/ORATEST/create$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Sun Sep 1 22:09:58 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL>  conn / as sysdba;
Connected to an idle instance.

SQL> startup;
ORACLE instance started.

Total System Global Area 1071333376 bytes
Fixed Size                  1341312 bytes
Variable Size             750782592 bytes
Database Buffers          314572800 bytes
Redo Buffers                4636672 bytes
Database mounted.
Database opened.
SQL>
SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION           STARTUP_T STATUS       PAR    THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST BLO
---------- --- ----------------- ------------------ --------- ---
              1 ORATEST
debora
11.2.0.1.0        01-SEP-13 OPEN         NO           1 STOPPED
ALLOWED    NO  ACTIVE            PRIMARY_INSTANCE   NORMAL    NO


SQL> !uname -a
Linux debora 2.6.16 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013 i686
 GNU/Linux

SQL>



Conseguido.


Oracle 11gR2 ejecutándose en FreeBSD 9


23.- Paramos la base de datos ORATEST. 

SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> SQL> Disconnected from Oracle Database 11g Release 11.2.0.1.0 - Production
24.- Paramos la jaula debora.
root@morsa:/root # jail -f /jailz/etc/jail.conf -r debora
Using makefile-style concurrent boot in runlevel 0.
Stopping device state change daemon: devd.
Asking all remaining processes to terminate...done.
All processes ended within 1 seconds....done.
Stopping enhanced syslogd: rsyslogd.
/etc/init.d/umountnfs.sh: 106: cannot open /etc/mtab: No such file
Deconfiguring network interfaces...done.
Cleaning up ifupdown....done. 
Deactivating swap...done.
mount: /: unknown special file or file system
Will now halt.
ifdown: shutdown usbus0: Operation not permitted
ifdown: shutdown ath0: Operation not permitted
ifdown: shutdown usbus1: Operation not permitted
ifdown: shutdown lo0: Operation not permitted
ifdown: shutdown wlan0: Operation not permitted
startpar: service(s) returned failure: umountnfs.sh ... failed!
deb-master: removed

23.- Hacemos un snapshot de la jaula debora para así disponer de una plantilla de unajaula configurada para bases de datos Oracle.


root@morsa:/root # zfs snapshot fbsdzpool1/jailz/debora@oracle11gR2

 

Consideraciones finales


La decisión de instalar en la Jaula la versión Lenny de Debian GNU/Linux está motivada por dos razones; por una parte, la versión de kernel de Linux que requiere el instalador de Oracle como requisito previo es la 2.6.9 y por otro lado la versión de kernel mínima para squeeze es la 2.6.18, que es superior a la admitida por el módulo de compatibilidad para Linux de FreeBSD 9. 

// Comienza el fragmento de installActions.log

INFO: *********************************************
INFO: OS Kernel Version: This is a prerequisite condition to test whether the system kernel version is at least "2.6.9".
INFO: Severity:CRITICAL
INFO: OverallStatus:SUCCESSFUL
INFO: -----------------------------------------------
INFO: Verification Result for Node:debora
INFO: Expected Value:2.6.9
INFO: Actual Value:2.6.16
INFO: -----------------------------------------------
INFO: *********************************************

// Fin del fragmento de installActions.log 

Durante el desarrollo de este Post, detecté un problema durante la ejecución del Instalador de Oracle, que de forma aleatoria fallaba en en arranque inicial. Una manera de evitar este problema consiste en utilizar un jre alternativo al suministrado con el instalador.

No he podido configurar la gestión automática de memoria (AMM) que es una de la nuevas características introducidas en la versión 11g. Esto es así por que no he conseguido configurar el dispositivo /dev/shm dentro de la Jaula.

En consecuencia, no queda mas remedio que emplear la gestión automática de memoria compartida (ASMM) dando valores a los parámetros SGA_TARGET y SGA_MAX_SIZE en el fichero initORATEST.ora.

El sistema de ficheros ZFS sobre el que se ha creado la base de datos no está optimizado para los ficheros de la base de datos, es un aspecto que debe mejorarse para un uso más intenso de la base de datos.

miércoles, 12 de febrero de 2014

Cómo instalar Java de Oracle en Debian 6 Squeeze

Está Escrito:
Joel 2:13,14
Rasgad vuestro corazón, y no vuestros vestidos, y convertíos a Jehová vuestro Dios; porque misericordioso es y clemente, tardo para la ira y grande en misericordia, y que se duele del castigo. ¿Quién sabe si volverá y se arrepentirá y dejará bendición tras de él, esto es, ofrenda y libación para Jehová vuestro Dios?

Tomado de : Nieleku

Si bien Debian 6 Squeeze ya viene con Openjdk hay aplicaciones que no funcionan bien con él o no funcionan de modo alguno. En tal caso podemos instalar java de Oracle.
Para comprobar que versión de java esta activa en nuestro Debian podemos usar la siguiente orden en un terminal y nos lo mostrará:
java -version
Si el java que tenemos instalado no corresponde con el de Oracle los pasos a dar para instalarlo son los siguientes. Desde un terminal ejecutamos:
su
nano /etc/apt/sources.list
Al final de nuestro fichero de fuentes de repositorios añadimos la siguiente línea:
deb http://ftp.es.debian.org/debian/ squeeze main non-free
Y actualizamos los repositorios para que el cambio tenga efecto.
apt-get update
Ahora ya podemos instalar el java de Oracle. La siguiente orden realizará la tarea:
apt-get install sun-java6-jre sun-java6-jdk
Durante la instalación deberemos aceptar la licencia de Oracle para con el uso de su java.
En este momento tenemos dos instalaciones de java en nuestro sistema. Debemos indicarle a Debian que use la nueva recién instalada. Esto lo podemos hacer con la siguiente orden:
update-alternatives --config java
La cual mostrará un menú para seleccionar el java a activar. En la siguiente imagen puede verse.
Configurar java de Oracle
La que esta marcada con un asterisco (*) es la que está previamente activa. Como queremos cambiarla a la que hemos instalado en este caso pulsaremos el número 2 y daremos a la tecla enter/return para que reconozca los cambios.
Con esto nos queda java instalado en el sistema.
En el vídeo siguiente podemos ver en vivo los pasos dados en esta guía.

Si queremos configurar java con la sesión podemos añadir a nuestro .basrc la variable de entorno.
nano .bashrc
export JAVA_HOME=/usr/lib/jvm/java-6-sun
 

lunes, 27 de enero de 2014

Sobre Linux Recordando la Histora

tux
Está Escrito:
El que cree en el Hijo de Dios tiene el testimonio en sí mismo; el que no cree a Dios, ha hecho a Dios mentiroso, porque no ha creído en el testimonio que Dios ha dado respecto a su Hijo. (1 Juan 5:10)
Tomado de: El Rinco de Linux

Introducción

Linux es un sistema operativo, compatible Unix. Dos características muy peculiares lo diferencian del resto de sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no tenemos que pagar ningun tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene acompañado del código fuente.
El sistema lo forman el núcleo del sistema (kernel) más un gran número de programas / bibliotecas que hacen posible su utilización. Muchos de estos programas y bibliotecas han sido posibles gracias al proyecto GNU, por esto mismo, muchos llaman a Linux, GNU/Linux, para resaltar que el sistema lo forman tanto el núcleo como gran parte del software producido por el proyecto GNU.
Linux se distribuye bajo la GNU General Public License por lo tanto, el código fuente tiene que estar siempre accesible y cualquier modificación ó trabajo derivado tiene que tener esta licencia.
El sistema ha sido diseñado y programado por multitud de programadores alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo bajo la coordinacion de Linus Torvalds, la persona de la que partio la idea de este proyecto, a principios de la década de los noventa. Hoy en dia, grandes compañias, como IBM, SUN, HP, Novell y RedHat, entre otras muchas, aportan a Linux grandes ayudas tanto económicas como de código.
Dia a dia, más y más programas y aplicaciones están disponibles para este sistema, y la calidad de los mismos aumenta de versión a versión. La gran mayoría de los mismos vienen acompañados del código fuente y se distribuyen generalmente bajo los terminos de licencia de la GNU General Public License.
Más y más casas de software comercial distribuyen sus productos para Linux y la presencia del mismo en empresas aumenta constantemente por la excelente relación calidad-precio que se consigue con Linux.
Las arquitecturas en las que en un principio se puede utilizar Linux son Intel 386-, 486-, Pentium, Pentium Pro, Pentium II/III/IV, IA-64, Amd 5x86, Amd64, Cyrix y Motorola 68020,IBM S/390, zSeries, DEC Alpha, ARM, MIPS, PowerPC, SPARC y UltraSPARC. Además no es dificil encontrar nuevos proyectos portando Linux a nuevas arquitexturas.

Historia

Linux hace su aparición a principios de la década de los noventa, era el año 1991 y por aquel entonces un estudiante de informática de la Universidad de Helsinki, llamado Linus Torvalds empezó, -como una afición y sin poder imaginar a lo que llegaria este proyecto, a programar las primeras lineas de código de este sistema operativo al que llamaria más tarde Linux.
Este comienzo estuvo inspirado en MINIX, un pequeño sistema Unix desarrollado por Andy Tanenbaum. Las primeras discusiones sobre Linux fueron en el grupo de noticias comp.os.minix, en estas discusiones se hablaba sobre todo del desarrollo de un pequeño sistema Unix para usuarios de Minix que querian más.
El 3 de julio de 1991, Linus Torvalds mandó el primer mensaje sobre Linux al grupo de noticias comp.os.minix:
Path: gmdzi!unido!mcsun!news.funet.fi!hydra!klaava!torvalds
From: torva...@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Gcc-1.40 and a posix-question
Keywords: gcc, posix
Message-ID: <1991Jul3.100050.9886@klaava.Helsinki.FI>
Date: 3 Jul 91 10:00:50 GMT
Organization: University of Helsinki
Lines: 28
Hello netlanders,

Due to a project I'm working on (in minix), I'm interested in the posix
standard definition. Could somebody please point me to a (preferably)
machine-readable format of the latest posix rules? Ftp-sites would be
nice.

As an aside for all using gcc on minix - the new version (1.40) has been
out for some weeks, and I decided to test what needed to be done to get
it working on minix (1.37.1, which is the version you can get from
plains is nice, but 1.40 is better :-).  To my surpice, the answer
turned out to be - NOTHING! Gcc-1.40 compiles as-is on minix386 (with
old gcc-1.37.1), with no need to change source files (I changed the
Makefile and some paths, but that's it!).  As default this results in a
compiler that uses floating point insns, but if you'd rather not,
changing 'toplev.c' to define DEFAULT_TARGET from 1 to 0 (this is from
memory - I'm not at my minix-box) will handle that too.  Don't make the
libs, use the old gnulib&libc.a.  I have successfully compiled 1.40 with
itself, and everything works fine (I got the newest versions of gas and
binutils at the same time, as I've heard of bugs with older versions of
ld.c).  Makefile needs some chmem's (and gcc2minix if you're still using
it). 

  Linus Torvalds  torva...@kruuna.helsinki.fi

PS. Could someone please try to finger me from overseas, as I've
installed a "changing .plan" (made by your's truly), and I'm not certain
it works from outside? It should report a new .plan every time.
El 25 de agosto de 1991, mandó el siguiente mensaje, el cual es considerado por muchos como el comienzo del proyecto Linux:
Path: gmdzi!unido!fauern!ira.uka.de!sol.ctr.columbia.edu!zaphod.mps.ohio-state.edu!
wupost!uunet!mcsun!news.funet.fi!hydra!klaava!torvalds
From: torva...@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Keywords: 386, preferences
Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Lines: 20


Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones.  This has been brewing
since april, and is starting to get ready.  I'd like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things). 

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. 
This implies that I'll get something practical within a few months, and
I'd like to know what features most people would want.  Any suggestions
are welcome, but I won't promise I'll implement them :-)

  Linus (torva...@kruuna.helsinki.fi)

PS.  Yes - it's free of any minix code, and it has a multi-threaded fs. 
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that's all I have :-(.   
Linus nunca anuncio la versión 0.01 de Linux (agosto/septiembre 1991), esta versión no era ni siquiera ejecutable, solamente incluia los principios del nucleo del sistema, estaba escrita en lenguaje ensamblador y asumia que uno tenia acceso a un sistema Minix para su compilación.
El 5 de octubre de 1991, Linus anuncio la primera version "Oficial" de Linux, -version 0.02. Con esta version Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El compilador GNU de C) pero no mucho mas funcionaba. En este estado de desarrollo ni se pensaba en los terminos soporte, documentación , distribución .....
Este fue el mensaje mandado a comp.os.minix:
Path: gmdzi!unido!mcsun!news.funet.fi!hydra!klaava!torvalds
From: torva...@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Free minix-like kernel sources for 386-AT
Keywords: 386, preliminary version
Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI>
Date: 5 Oct 91 05:41:06 GMT
Organization: University of Helsinki
Lines: 55

Do you pine for the nice days of minix-1.1, when men were men and wrote
their own device drivers? Are you without a nice project and just dying
to cut your teeth on a OS you can try to modify for your needs? Are you
finding it frustrating when everything works on minix? No more all-
nighters to get a nifty program working? Then this post might be just
for you :-)

As I mentioned a month(?) ago, I'm working on a free version of a
minix-lookalike for AT-386 computers.  It has finally reached the stage
where it's even usable (though may not be depending on what you want),
and I am willing to put out the sources for wider distribution.  It is
just version 0.02 (+1 (very small) patch already), but I've successfully
run bash/gcc/gnu-make/gnu-sed/compress etc under it. 

Sources for this pet project of mine can be found at nic.funet.fi
(128.214.6.100) in the directory /pub/OS/Linux.  The directory also
contains some README-file and a couple of binaries to work under linux
(bash, update and gcc, what more can you ask for :-).  Full kernel
source is provided, as no minix code has been used.  Library sources are
only partially free, so that cannot be distributed currently.  The
system is able to compile "as-is" and has been known to work.  Heh. 
Sources to the binaries (bash and gcc) can be found at the same place in
/pub/gnu. 

ALERT! WARNING! NOTE! These sources still need minix-386 to be compiled
(and gcc-1.40, possibly 1.37.1, haven't tested), and you need minix to
set it up if you want to run it, so it is not yet a standalone system
for those of you without minix. I'm working on it. You also need to be
something of a hacker to set it up (?), so for those hoping for an
alternative to minix-386, please ignore me. It is currently meant for
hackers interested in operating systems and 386's with access to minix.

The system needs an AT-compatible harddisk (IDE is fine) and EGA/VGA. If
you are still interested, please ftp the README/RELNOTES, and/or mail me
for additional info.

I can (well, almost) hear you asking yourselves "why?".  Hurd will be
out in a year (or two, or next month, who knows), and I've already got
minix.  This is a program for hackers by a hacker.  I've enjouyed doing
it, and somebody might enjoy looking at it and even modifying it for
their own needs.  It is still small enough to understand, use and
modify, and I'm looking forward to any comments you might have. 

I'm also interested in hearing from anybody who has written any of the
utilities/library functions for minix. If your efforts are freely
distributable (under copyright or even public domain), I'd like to hear
from you, so I can add them to the system. I'm using Earl Chews estdio
right now (thanks for a nice and working system Earl), and similar works
will be very wellcome. Your (C)'s will of course be left intact. Drop me
a line if you are willing to let me use your code.

  Linus

PS. to PHIL NELSON! I'm unable to get through to you, and keep getting
"forward error - strawberry unknown domain" or something. 
Despues de la versión 0.03, Linus salto en la numeración hasta la 0.10, más y más programadores a lo largo y ancho de internet empezaron a trabajar en el proyecto y despues de sucesivas revisiones, Linus incremento el número de versión hasta la 0.95 (Marzo 1992), la primera capaz de ejecutar el sistema X-windows. Más de un año despues (diciembre 1993) el núcleo del sistema estaba en la versión 0.99 y la versión 1.0.0 no llego hasta el 14 de marzo de 1994.
El 9 de Mayo 1996, Tux fue propuesto como mascota oficial de Linux.
El 9 de junio de 1996 fue lanzada la serie 2.0.x, la 2.2.x no llegó hasta el 25 de enero de 1999 y la 2.4.x hasta el 4 de enero del 2001.
El 17 de diciembre del 2003 fue lanzada la serie actual del nucleo, la 2.6.x y el desarrollo de Linux sigue avanzando dia a dia con la meta de perfeccionar y mejorar el sistema.
En el siguiente gráfico podeis ver una ilustración de las diferentes variantes de Unix desde el lanzamiento de la primera en la década de los 70 y la posición de Linux en esta historia.


Unix historia



Características

Aquí teneis una lista con las características más importantes de GNU/LINUX:
[Fuente: Infosheet-Como. Autor: IvanCasado]
  • Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo tiempo. LINUX utiliza la llamada multitarea preeventiva,la cual asegura que todos los programas que se estan utilizando en un momento dado seran ejecutados, siendo el sistema operativo el encargado de ceder tiempo de microprocesador a cada programa.
  • Multiusuario:Muchos usuarios usando la misma maquina al mismo tiempo.
  • Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II,Amiga y Atari, tambien existen versiones para su utilizacion en otras plataformas, como amd64, Alpha, ARM, MIPS, PowerPC y SPARC.
  • Multiprocesador: Soporte para sistemas con mas de un procesador esta disponible para Intel, AMD y SPARC.
  • Funciona en modo protegido 386.
  • Protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
  • Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un programa que están siendo usadas actualmente.
  • Política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.
  • Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: A una partición en el sistema de archivos, con la posibilidad de añadir más áreas de intercambio sobre la marcha.
  • La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes programas.
  • Librerías compartidas de carga dinámica (DLL's) y librerías estáticas.
  • Se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo.
  • Compatible con POSIX, System V y BSD a nivel fuente.
  • Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario.
  • Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
  • Control de tareas POSIX.
  • Pseudo-terminales (pty's).
  • Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si el ordenador ya tiene una FPU (unidad de coma flotante), esta será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.
  • Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.
  • Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64.
  • Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud.
  • Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no es necesario ningún comando especial para usar la partición MS-DOS, esta parece un sistema de archivos normal de Unix (excepto por algunas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT, FAT32 (WNT, Windows 95/98) se encuentra soportado desde la version 2.0 del nucleo y el NTFS de WNT desde la version 2.2 (Este ultimo solo en modo lectura).
  • Soporte en sólo lectura de HPFS-2 del OS/2 2.1
  • Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.
  • TCP/IP, incluyendo ssh, ftp, telnet, NFS, etc.
  • Appletalk.
  • Software cliente y servidor Netware.
  • Lan Manager / Windows Native (SMB), software cliente y servidor.
  • Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP, Netrom, etc.

viernes, 3 de enero de 2014

Herramientas gráficas

Esta Escrito:
Que si confesares con tu boca que Jesús es el Señor, y creyeres en tu corazón que Dios le levantó de los muertos, serás salvo.
Porque con el corazón se cree para justicia, pero con la boca se confiesa para salvación. (Romanos 10:9-10)

 
Tomado de: ac.usc.es
Además de los comandos comentados, si disponemos de un entorno X Windows podemos usar alguna herramienta gráfica en vez de top y ps:
  • proporcionan una visión más clara y son fáciles de usar
Algunas herramientas son
  • gnome-system-monitor: visor de procesos y monitorizador de recursos del sistema de GNOME
  • KDE System Guard (ksysguard): gestor de tareas y monitor de rendimiento de KDE
Ejemplo: gnome-system-monitor
Image gnome-system-monitor