diff --git a/es_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/es_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml index d6a6c4cc74..9938d07963 100755 --- a/es_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/linuxemu/chapter.sgml @@ -1,3518 +1,3519 @@ Jim Mock Restructurado y partes actualizadas por Brian N. Handy Originalmente contribuido por Rich Murphey Compatibilidad binaria con Linux Sinopsis compatibilidad binaria con Linux compatibilidad binaria Linux FreeBSD brinda compatibilidad de binarios con muchos otros sistemas operativos tipo &unix;, incluyendo Linux. En este punto, usted se puede estar preguntando ¿por qué, exactamente necesita FreeBSD ejecutar binarios de Linux? La respuesta a esa pregunta es muy simple. Muchas compañías y desarrolladores desarrollan solo para Linux, ya que es la cosa caliente del mundo computacional ultimamente. Eso nos deja al resto de nosotros, usuarios de FreeBSD la tarea de irritar a esas mismas compañías y desarrolladores para que saquen versiones nativas de FreeBSD de sus aplicaciones. El problema es, que la mayoría de esas compañías no se dan cuenta realmente cuantas personas utilizarían su producto si hubiera versiones para FreeBSD también, y la mayoría continua desarrollando solamente para Linux. Entonces ¿que puede hacer un usuario de FreeBSD? Aquí es donde entra en juego la compatibilidad de binarios con Linux. En resumen, la compatibilidad le permite a usuarios FreeBSD ejecutar cerca del 90% de todas las aplicaciones Linux sin modificación. Esto incluye aplicaciones como &staroffice;, la versión Linux de &netscape;, &adobe; &acrobat;, RealPlayer, VMware, &oracle;, WordPerfect, Doom, Quake y más. Se ha resportado también que en algunas situaciones los binarios Linux se desempeñan mejor en FreeBSD que en Linux. Existen, de todas maneras, algunas opciones de sistema operativo específicas de Linux que no están soportadas bajo FreeBSD. Los binarios Linux no funcionarán en FreeBSD si sobreutilizan llamadas &i386; específicas, como la habilitación del modo virtual 8086. Despues de leer este capítulo usted sabrá: Como habilitar la compatibilidad de binarios Linux en su sistema. Como instalar librerías compartidas Linux adicionales. Como instalar aplicaciones Linux en su sistema FreeBSD. Los detalles de la implementación de compatibilidad de binarios Linux en FreeBSD. Antes de leer este capítulo, usted debe: Saber como instalar software adicional de terceros (). Instalación KLD (objeto cargable del kernel) La compatibilidad binaria con Linux no está activada por omisión. La manera más sencilla de habilitar esta funcionalidad es cargar el objeto KLD linux (objeto cargable del kernel). Puede cargar este - módulo simplemente tecleando linux - en la línea de comando. + módulo tecleando lo siguiente como root: + + &prompt.root; kldload linux Si desea que la compatibilidad con Linux esté habilitada siempre, entonces debe agregar la siguiente línea a /etc/rc.conf: linux_enable="YES" El comando &man.kldstat.8; se puede utilizar para verificar que el KLD esté cargado: &prompt.user; kldstat Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko kernel options LINUX Si por alguna razón no desea o no puede cargar el KLD, entonces puede enlazar estaticamente la compatibilidad de binarios Linux en el kernel agregando options COMPAT_LINUX a su archivo de configuración del kernel. Entonces instale su nuevo kernel como se describe en . Instalando librerías de ejecución linux Linux instalando librerías Linux Esto puede realizarse de dos maneras, ya sea usando el port linux_base, o instalándolas manualmente. Instalación usando el port linux_base colección de ports Este es por mucho el método mas sencillo de utilizar para instalar librerías de ejecución. Es como instalar cualquier otro port desde la colección de ports. Simplemente haga lo siguiente: &prompt.root; cd /usr/ports/emulators/linux_base &prompt.root; make install distclean Ahora debe tener una compatibilidad de binarios Linux funcional. Algunos programas pueden quejarse de versiones inferiores incorrectas de las librerías del sistema. En general, de todas formas, esto no parece ser un problema. Pueden existir múltiples versiones disponibles del port emulators/linux_base, correspondiendo a diferentes versiones de varias distribuciones Linux. Debe instalar el port que más se parezca a los requerimientos de las aplicaciones Linux que quiera instalar. Instalación manual de librerías Si no tiene instalada la colección de ports, en su lugar puede instalar las librerías a mano. Necesitará las librerías compartidas Linux de las que depende el programa y el enlazador en tiempo de ejecución (runtime linker). También, necesitará crear un directorio raíz sombra, /compat/linux, para librerías Linux en su sistema FreeBSD. Cualquier librería compartida abierta por los programas Linux que se ejecuten en FreeBSD buscarán primero en este directorio. Por lo tanto, si se carga un programa Linux, por ejemplo, /lib/libc.so, FreeBSD primero tratará de abrir /compat/linux/lib/libc.so, y si no existe, entonces tratará con /lib/libc.so. Las librerías compartidas deben ser instaladas en el árbol sombra /compat/linux/lib en lugar de las rutas que el ld.so de Linux reporta. Generalmente, necesitará buscar las librerías compartidas de las que los binarios Linux dependen solamente las primeras veces que instale un programa Linux en su sistema FreeBSD. Despues de un tiempo, tendrá un conjunto suficiente de librerías compartidas Linux en su sistema para ser capaz de correr nuevos binarios Linux importados sin ningún trabajo extra. Como instalar librerías compartidas adicionales librerías compartidas ¿Que pasaría si instala el port linux_base y su aplicación todavía se queja de librerías compartidas no existentes? ¿Como saber que librerías compartidas necesitan los binarios Linux? Basicamente, hay dos posibilidades (al seguir estas instrucciones necesitará estar como root en su sistema FreeBSD). Si tiene acceso a un sistema Linux, vea que librerías necesita la aplicación y cópielas a su sistema FreeBSD. Vea los siguientes ejemplos: Vamos a asumir que utilizó FTP para obtener los binarios Linux de Doom, y los puso en un sistema Linux al que tiene acceso. Entonces puede revisar que librerías compartidas necesita ejecutando ldd linuxdoom, como esto: &prompt.user; ldd linuxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 enlace simbólicos Necesitaría obtener todos los archivos de la última columna, y colocarlos en /compat/linux, con los nombres de la primera columna como enlaces simbólicos apuntando a ellos. Esto significa que eventualmente tiene esos archivos en su sistema FreeBSD: /compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Note que si usted ya tiene una librería compartida Linux con un número de revisión mayor que concida con la primera columna de la salida de ldd, no necesitará copiar el archivo nombrado en la última columna a su sistema, el que ya tiene debería funcionar. Aunque se aconseja copiar la librería compartida de todas maneras si es una versión nueva. Puede eliminar la vieja, siempre que haga que el enlace simbólico apunte a la nueva. Por eso, si tiene estas librerías en su sistema: /compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27 y encuentra un nuevo binario que demanda requerir una una versión más reciente de acuerdo a la salida de ldd: libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29 Si solo son una o dos versiones desfasadas en los últimos dígitos entonces no se preocupe de copiar /lib/libc.so.4.6.29 también, debido a que el programa debe funcionar bien con la versión ligeramente antigua. De todas formas, si gusta, puede decidir reemplazar libc.so, y eso le debe dejar con: /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
El mecanismo de enlazado simbólico es necesitado unicamente para binarios Linux. El enlazador en tiempo de ejecución de FreeBSD se encarga de buscar el mismo revisiones mayores coincidentes y usted no necesita preocuparse de eso.
Instalar binarios ELF Linux Linux binarios ELF Los binarios ELF algunas veces requieren un paso extra de marcado. Si trata de correr un binario ELF no marcado, obtendrá un mensaje de error como el siguiente: &prompt.user; ./my-linux-elf-binary ELF binary type not known Abort Para ayudar al kernel de FreeBSD a distinguir entre un binario ELF de FreeBSD y uno de Linux, use la utlidad &man.brandelf.1;. &prompt.user; brandelf -t Linux my-linux-elf-binary GNU toolchain Las herramientas GNU ahora colocan el marcado de información apropiada en los binarios ELF automaticamente, por lo tanto este paso debería convertirse en innecesario en el futuro. Configurando el resolvedor de nombres de equipo Si el DNS no funciona u obtiene este mensaje: resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword Necesitará configurar un archivo /compat/linux/etc/host.conf conteniendo: order hosts, bind multi on El orden aquí especifica que /etc/hosts es analizado primero y DNS es usado despues. Cuando /compat/linux/etc/host.conf no está instalado, las aplicaciones Linux encuentran el /etc/host.conf de FreeBSD y se quejan de la sintaxis incompatible de FreeBSD. Debe eliminar bind si no tiene configurado un servidor de nombres usando el archivo /etc/resolv.conf.
Murray Stokely Actualizado para Mathematica 4.X por Bojan Bistrovic Fusionado con trabajo de Instalando &mathematica; aplicaciones Mathematica Este documento describe el proceso de instalación de la versión para Linux de &mathematica; 4.X en un sistema FreeBSD. La versión para Linux de &mathematica; corre perfectamente bajo FreeBSD, de todas maneras, los binarios liberados por Wolfram necesitan ser marcados para que FreeBSD sepa que tiene que utilizar la ABI Linux para ejecutarlos. La versión para Linux de &mathematica; o &mathematica; para estudiantes puede ser solicitada directamente de Wolfram en . Marcando los binarios Linux Los binarios Linux están localizados en el directorio Unix del CDROM de &mathematica; distribuido por Wolfram. Necesita copiar este árbol de directorios a su disco duro local para que pueda marcar los binarios Linux con &man.brandelf.1; antes de ejecutar el instalador: &prompt.root; mount /cdrom &prompt.root; cp -rp /cdrom/Unix/ /localdir/ &prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/* &prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/* &prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/* &prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/* &prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/* &prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm &prompt.root; cd /localdir/Installers/Linux/ &prompt.root; ./MathInstaller Alternativamente, puede simplemente activar la marcación por omisión de binarios ELF a Linux para todos los binarios no marcados con el comando: &prompt.root; sysctl kern.fallback_elf_brand=3 Esto provocará que FreeBSD asuma que los binarios ELF utilicen la ABI Linux y por lo tanto debe ser capaz de correr el instalador directamente desde el CDROM. Obteniendo su contraseña de &mathematica; Antes de que pueda correr &mathematica; tendrá que obtener una contraseña de Wolfram que corresponda a su ID de máquina. Ethernet dirección MAC Una vez que tenga instalada las librerías de compatibilidad en tiempo de ejecución y descompactado &mathematica; puede obtener la ID de máquina corriendo el programa mathinfo en el directorio de instalación. Esta ID de máquina está basada solamente en la dirección MAC de su primera tarjeta de red. &prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux &prompt.root; mathinfo disco.example.com 7115-70839-20412 Cuando se registre con Wolfram, ya sea por correo, teléfono o fax, le proporcionará la ID de máquina y le responderán con una contraseña correspondiente consistiendo en grupos de números. Puede ingresar esta información cuando trate de ejecutar &mathematica; por primera vez exactamente como lo haría para cualquier otra plataforma de &mathematica;. Ejecutando el Frontend de &mathematica; a través de la red &mathematica; utiliza algunas fuentes especiales para desplegar caracteres no presentes en cualquier otro conjunto de fuentes estándar (integrales, sumatorias, letras griegas, etc). El protocolo X requiere que estas fuentes sean instaladas localmente. Esto significa que tendrá que copiar estas fuentes desde el CDROM a desde un equipo con &mathematica; instalado a su máquina local. Estas fuentes son almacenadas normalmente en /cdrom/Unix/Files/SystemFiles/Fonts en el CDROM, o /usr/local/mathematica/SystemFiles/Fonts en su disco duro. Las verdaderas fuentes se encuentran en los subdirectorios Type1 y X. Hay muchas maneras de utilizarlas, como se describe abajo. La primera manera es copiarlas a uno de los directorios de fuentes existentes en /usr/X11R6/lib/X11/fonts. Esto requerirá editar el archivo fonts.dir, agregandole los nombres de fuentes, y cambiando el número de fuentes en la primera línea. Alternativamente, debe ser capaz de ejecutar solamente &man.mkfontdir.1; en el directorio a donde las ha copiado. La segunda manera de hacer esto es copiar los directorios a /usr/X11R6/lib/X11/fonts: &prompt.root; cd /usr/X11R6/lib/X11/fonts &prompt.root; mkdir X &prompt.root; mkdir MathType1 &prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts &prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X &prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; cd /usr/X11R6/lib/X11/fonts/X &prompt.root; mkfontdir &prompt.root; cd ../MathType1 &prompt.root; mkfontdir Ahora agregue los nuevos directorios de fuentes a su ruta de fuentes: &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; xset fp rehash Si está utilizando el servidor &xorg;, puede hacer que estos directorios de fuentes se carguen automaticamente añadiéndolos a su archivo xorg.conf file. Para servidores &xfree86;, el archivo de configuración es XF86Config. fuentes Si todavía no tiene un directorio llamado /usr/X11R6/lib/X11/fonts/Type1, puede cambiar el nombre del directorio MathType1 en el ejemplo de arriba a Type1. Aaron Kaplan Contribuido por Robert Getschmann Gracias a Instalando &maple; aplicaciones Maple &maple; es un programa de matemáticas comercial similar a &mathematica;. Debe adquirir este software desde y entonces registrarlo para recibir un archivo de licencia. Para instalar este software en FreeBSD siga por favor estos siemples pasos. Ejecute el script de shell INSTALL desde la distribución del producto. Elija la opción RedHat cuando le pregunte el programa de instalación. Un directorio de instalación típico puede ser /usr/local/maple. Si no lo ha hecho, ordene una licencia para &maple; desde Maple Waterloo Software () y cópiela a /usr/local/maple/license/license.dat. Instale el manejador de licencias FLEXlm ejecutando el script de shell de instalación INSTALL_LIC que viene con &maple;. Especifique el nombre de equipo primario de su máquina para el servidor de licencias. Parchee el archivo /usr/local/maple/bin/maple.system.type con lo siguiente: ----- snip ------------------ *** maple.system.type.orig Sun Jul 8 16:35:33 2001 --- maple.system.type Sun Jul 8 16:35:51 2001 *************** *** 72,77 **** --- 72,78 ---- # the IBM RS/6000 AIX case MAPLE_BIN="bin.IBM_RISC_UNIX" ;; + "FreeBSD"|\ "Linux") # the Linux/x86 case # We have two Linux implementations, one for Red Hat and ----- snip end of patch ----- Por favor note que despues de "FreeBSD"|\ no se encuentre ningún espacio en blanco. Este parche le instruye a &maple; que reconozca a FreeBSD como un tipo de sistema Linux. El script de shell bin/maple llama al script de shell bin/maple.system.type el cual a su vez llama a uname -a para encontrar el nombre del sistema operativo. Dependiendo del nombre del sistema operativo sabrá que binarios utilizar. Inicie el servidor de licencias. El siguiente script, instalado como /usr/local/etc/rc.d/lmgrd.sh es una manera conveniente de iniciar lmgrd: ----- snip ------------ #! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX export PATH LICENSE_FILE=/usr/local/maple/license/license.dat LOG=/var/log/lmgrd.log case "$1" in start) lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2 echo -n " lmgrd" ;; stop) lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 ;; *) echo "Usage: `basename $0` {start|stop}" 1>&2 exit 64 ;; esac exit 0 ----- snip ------------ Pruebe iniciar &maple;: &prompt.user; cd /usr/local/maple/bin &prompt.user; ./xmaple Debe estar arriba y funcionando. ¡Asegúrese de escribir a Maplesoft para hacerles saber que le gustaría una versión nativa para FreeBSD! Trampas comunes El administrador de licencias FLEXlm puede ser una herramienta difícil de trabajar. Se puede encontrar información adicional sobre el tema en . lmgrd es conocido por ser muy meticuloso acerca del archivo de licencia y por mandar volcados core (core dump) si hay algún problema. Un archivo de licencia correcto debe verse como este: # ======================================================= # License File for UNIX Installations ("Pointer File") # ======================================================= SERVER chillig ANY #USE_SERVER VENDOR maplelmg FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \ PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \ ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \ SN=XXXXXXXXX Número de serie y llave sobreescritos con X. chillig es un nombre de equipo. Editar el archivo de licencias funciona siempre que no toque la línea FEATURE (la cual es protegida por la llave de licencia). Dan Pelleg Contribuido por Instalando &matlab; aplicaciones MATLAB Este documento describe el proceso para instalar la versión para Linux de &matlab; version 6.5 en un sistema &os;. Funciona bastante bien, con la excepción de &java.virtual.machine; (ver ). La versión Linux de &matlab; puede ser ordenada directamente desde The MathWorks en . Asegúrese de recibir también el archivo de licencia o instrucciones de como crearlo. Mientras está ahí, hágales saber que le gustaría una versión nativa para FreeBSD de su software. Instalando &matlab; Para instalar &matlab;, haga los siguiente: Inserte el CD de instalación y móntelo. Conviertase en root, como lo recomienda el script de instalación. Para iniciar el script de instalación teclée: &prompt.root; /compat/linux/bin/sh /cdrom/install El instalador es gráfico. Si obtiene errores acerca de no ser capaz de abrir un display, teclée setenv HOME ~USER, donde USER es el usuario desde donde hizo &man.su.1; as. Cuando se le pregunte por el directorio raíz de &matlab;, teclée /compat/linux/usr/local/matlab. Para un tecleo más fácil en el resto del proceso de instalación, en el prompt de su shell escriba esto: set MATLAB=/compat/linux/usr/local/matlab Edite el archivo de licencia como se le instruyó cuando obtuvo la licencia de &matlab;. Puede preparar este archivo desde antes usando su editor favorito, y cópielo a $MATLAB/license.dat antes que el instalador le pida editarlo. Complete el proceso de instalación. En este punto su instalación &matlab; está completada. Los siguientes pasos aplican pegamento para conectarlo a su sistema &os;. Inicio del administrador de licencias Crée enlaces simbólicos para los scripts del administrador de licencias: &prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW &prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW Crée un archivo de inicio en /usr/local/etc/rc.d/flexlm.sh. El ejemplo de abajo es una versión modificada de $MATLAB/etc/rc.lm.glnx86 que se distribuye. Los cambios son la localización de los archivos y el inicio del administrador de licencias bajo emulación Linux. #!/bin/sh case "$1" in start) if [ -f /usr/local/etc/lmboot_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd' fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0 El archivo debe hacerse ejecutable: &prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.sh También debe reemplazar el nombre de usuario de arriba con el nombre de un usuario válido en su sistema (que no sea root). Inicie el administrador de licencias con el comando: &prompt.root; /usr/local/etc/rc.d/flexlm.sh start Enlazando el ambiente de ejecución &java; Cambie el enlace del ambiente de ejecución &java; (JRE) a uno que funcione bajo &os;: &prompt.root; cd $MATLAB/sys/java/jre/glnx86/ &prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre Creando un script de arranque para &matlab; Coloque el siguiente script de arranque en /usr/local/bin/matlab: #!/bin/sh /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@" Entonces escriba el comando chmod +x /usr/local/bin/matlab. Dependiendo de su versión de emulators/linux_base tal vez tenga errores al correr este script. Para prevenir eso, edite el archivo /compat/linux/usr/local/matlab/bin/matlab y cambie la línea que dice: if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then (en la versión 13.0.1 es en la línea 410) a esta línea: if test -L $newbase; then Creando un script de apagado para &matlab; Lo siguiente se necesita para resolver un problema de &matlab; al no cerrarse correctamente. Crée un archivo $MATLAB/toolbox/local/finish.m y ponga en el una sola línea: ! $MATLAB/bin/finish.sh El $MATLAB es literal. En el mismo directorio encontrará los archivos finishsav.m y finishdlg.m, los cuales le permiten salvar su espacio de trabajo antes de salir. Si utiliza alguno de ellos, inserte la línea de arriba inmediatamente despues del comando save. Crée un archivo $MATLAB/bin/finish.sh, el cual contendrá lo siguiente: #!/usr/compat/linux/bin/sh (sleep 5; killall -1 matlab_helper) & exit 0 Haga el archivo ejecutable: &prompt.root; chmod +x $MATLAB/bin/finish.sh Usando &matlab; En este punto usted está listo para teclear matlab y empezar a utilizarlo. Marcel Moolenaar Contribuido por Instalando &oracle; aplicaciones Oracle Prefacio Este documento describe el proceso de instalación de &oracle; 8.0.5 y &oracle; 8.0.5.1 Enterprise Edition para Linux en una máquina FreeBSD. Instalando el ambiente Linux Asegúrese que tiene instalados emulators/linux_base y devel/linux_devtools desde la colección de ports. Si encuentra dificultades con estos ports, tal vez tenga que usar los paquetes o versiones antiguas disponibles en la colección de ports. Si desea correr el agente inteligente, también necesitará instalar el paquete Tcl de Red Hat: tcl-8.0.3-20.i386.rpm. El comando general para instalar paquetes con el port oficial RPM (archivers/rpm) es: &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package La instalación del paquete no debe generar ningún error. Creando el ambiente &oracle; Antes de que pueda instalar &oracle;, necesita configurar un ambiente apropiado. Este documento solamente describe lo que hay que hacer especialmente para correr &oracle; en su versión para Linux en FreeBSD, no lo que ha sido descrito en la guía de instalación de &oracle;. Afinación del Kernel kernel tuning Como se describió en la guía de instalación de &oracle;, necesita configurar el tamaño máximo de memoria compartida. No utilice SHMMAX bajo FreeBSD. SHMMAX es meramente calculado de SHMMAXPGS y PGSIZE. Por lo tanto defina SHMMAXPGS. Todas las otras opciones pueden ser usadas como se describe en la guía. Por ejemplo: options SHMMAXPGS=10000 options SHMMNI=100 options SHMSEG=10 options SEMMNS=200 options SEMMNI=70 options SEMMSL=61 Configure estas opciones para que se apeguen al uso pretendido de &oracle;. También, asegúrese que tenga las siguientes opciones en su archivo de configuración de kernel: options SYSVSHM #SysV shared memory options SYSVSEM #SysV semaphores options SYSVMSG #SysV interprocess communication Cuenta &oracle; Crée una cuenta oracle como si fuera a crear cualquier otra cuenta. La cuenta oracle es especial en el sentido que debe darle un shell Linux. Agregue /compat/linux/bin/bash a /etc/shells y active el shell para la cuenta oracle a /compat/linux/bin/bash. Ambiente aparte de las variables normales de &oracle;, como ORACLE_HOME y ORACLE_SID, debe configurar las siguientes variables de entorno: Variable Valor LD_LIBRARY_PATH $ORACLE_HOME/lib CLASSPATH $ORACLE_HOME/jdbc/lib/classes111.zip PATH /compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin Se aconseja configurar todas las variables de ambiente en .profile. Un ejemplo completo es: ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=/oracle; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH ORACLE_SID=ORCL; export ORACLE_SID ORACLE_TERM=386x; export ORACLE_TERM CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip export CLASSPATH PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin export PATH Instalando &oracle; Debido a una pequeña inconsistencia en el emulador Linux, necesita crear un directorio llamado .oracle en /var/tmp antes de iniciar el instalador. Deje que sea propiedad del usuario oracle. Debe ser capaz de instalar &oracle; sin ningún problema. Si tiene problemas, ¡revise su distribución &oracle; y/o configuración primero! Despues que tenga instalado &oracle;, aplique los parches descritos en las siguientes dos subsecciones. Un problema frecuente es que el adaptador del protocolo TCP no está instalado correctamente. Como consecuencia, no puede iniciar ningún escucha TCP. Las siguientes acciones ayudan a resolver el problema: &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk ntcontab.o &prompt.root; cd $ORACLE_HOME/lib &prompt.root; ar r libnetwork.a ntcontab.o &prompt.root; cd $ORACLE_HOME/network/lib &prompt.root; make -f ins_network.mk install ¡No se olvide de correr root.sh otra vez! Parchando root.sh Al instalar &oracle;, algunas acciones, las cuales necesitan ser ejecutadas como root, son grabadas en un script de shell llamado root.sh. Este script es escrito es el directorio orainst. Aplique el siguiente parche a root.sh, para que utilice la ruta correcta de chown o alternativamente corra el script bajo un shell nativo de Linux. *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 --- orainst/root.sh Mon Dec 28 15:58:53 1998 *************** *** 31,37 **** # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/bin/chown # # Define variables to be used in this script --- 31,37 ---- # This is the default value for CHOWN # It will redefined later in this script for those ports # which have it conditionally defined in ss_install.h ! CHOWN=/usr/sbin/chown # # Define variables to be used in this script Cuando no instala &oracle; desde CD, puede parchar las fuentes de root.sh. Está como rthd.sh y está localizado en el directorio orainst en el árbol de fuentes. Parchando genclntsh El script genclntsh es usado para crear una sola librería de cliente compartida. Es usada para construir los demos. Aplique el siguiente parche para comentar la definición de PATH: *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 *************** *** 32,38 **** # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst --- 32,38 ---- # # Explicit path to ensure that we're using the correct commands #PATH=/usr/bin:/usr/ccs/bin export PATH ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH # # each product MUST provide a $PRODUCT/admin/shrept.lst Corriendo &oracle; Cuando haya seguido las instrucciones, usted debe ser capaz de correr &oracle; como si estuviera corriendo en Linux. Holger Kipp Contribuido por Valentino Vaschetto Versión original convertida a SGML por Instalando &sap.r3; aplicaciones SAP R/3 Las instalaciones de sistemas &sap; utilizando FreeBSD no seán soportadas por el equipo de soporte de &sap; — ellos solo ofrecen soporte para plataformas certificadas. Prefacio Este documento describe una manera posible de instalar un sistema &sap.r3; con una base de datos &oracle; para Linux en una máquina FreeBSD, incluyendo la instalación de FreeBSD y &oracle;. Dos configuraciones diferentes serán descritas: &sap.r3; 4.6B (IDES) con &oracle; 8.0.5 en FreeBSD 4.3-STABLE &sap.r3; 4.6C con &oracle; 8.1.7 en FreeBSD 4.5-STABLE Incluso aunque este documento trata de describir todos los pasos importantes en mayor detalle, no se espera que sea un reemplazo de las guías de instalación de &oracle; y &sap.r3;. Por favor vea la documentación de &sap.r3; que viene con la edición para Linux de &sap y las preguntas específicas de &oracle;, así como los recursos de &oracle; y &sap; OSS. Software Los siguientes CD-ROMs han sido usados para la instalación &sap;: &sap.r3; 4.6B, &oracle; 8.0.5 Nombre Número Descripción KERNEL 51009113 SAP Kernel Oracle / Installation / AIX, Linux, Solaris RDBMS 51007558 Oracle / RDBMS 8.0.5.X / Linux EXPORT1 51010208 IDES / DB-Export / Disco 1 de 6 EXPORT2 51010209 IDES / DB-Export / Disco 2 de 6 EXPORT3 51010210 IDES / DB-Export / Disco 3 de 6 EXPORT4 51010211 IDES / DB-Export / Disco 4 de 6 EXPORT5 51010212 IDES / DB-Export / Disco 5 de 6 EXPORT6 51010213 IDES / DB-Export / Disco 6 de 6 Adicionalmente, utilizamos el CD de &oracle; 8 Server (versión pre-producción 8.0.5 para Linux, versión de kernel 2.0.33) el cual no es realmente necesario y FreeBSD 4.3-STABLE (a unos cuantos días de la liberación de 4.3-RELEASE). &sap.r3; 4.6C SR2, &oracle; 8.1.7 Nombre Número Descripción KERNEL 51014004 SAP Kernel Oracle / SAP Kernel Version 4.6D / DEC, Linux RDBMS 51012930 Oracle 8.1.7/ RDBMS / Linux EXPORT1 51013953 Release 4.6C SR2 / Export / Disco 1 de 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disco 2 de 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disco 3 de 4 EXPORT1 51013953 Release 4.6C SR2 / Export / Disco 4 de 4 LANG1 51013954 Release 4.6C SR2 / Language / DE, EN, FR / Disco 1 de 3 Dependiendo de los lenguajes que le gustaría instalar, pueden ser necesarios CDs adicionales de lenguajes. Aquí solo estamos utilizando DE y EN, así que solo el primer CD de lenguajes se necesita. Como una pequeña nota, los números para todos los cuatro CDs EXPORT son idénticos. Los tres CDs de lenguajes también tienen el mismo número (esto es diferente de la numeración de CDs de la liberación 4.6B IDES). Al momento de escribir esto la instalación está corriendo en FreeBSD 4.5-STABLE (20.03.2002). Notas &sap; Las siguientes notas deben ser leídas antes de instalar &sap.r3; y han probado ser útiles durante la instalación: &sap.r3; 4.6B, &oracle; 8.0.5 Número Título 0171356 SAP Software en Linux: Comentarios esenciales 0201147 INST: 4.6C R/3 Inst. en UNIX - Oracle 0373203 Actualización / Migración Oracle 8.0.5 --> 8.0.6/8.1.6 LINUX 0072984 Liberación de Digital UNIX 4.0B para Oracle 0130581 R3SETUP step DIPGNTAB terminates 0144978 Su sistema no ha sido instalado correctamente 0162266 Preguntas y consejos para R3SETUP en Windows NT / W2K &sap.r3; 4.6C, &oracle; 8.1.7 Número Título 0015023 Inicializar tabla TCPDB (RSXP0004) (EBCDIC) 0045619 R/3 con varios lenguajes o estilos 0171356 SAP Software en Linux: Comentarios esenciales 0195603 RedHat 6.1 Enterprise version: Problemas conocidos 0212876 La nueva herramienta de archivado SAPCAR 0300900 Linux: Hardware DELL liberado 0377187 RedHat 6.2: Observaciones importantes 0387074 INST: R/3 4.6C SR2 Instalación en UNIX 0387077 INST: R/3 4.6C SR2 Inst. en UNIX - Oracle 0387078 SAP Software en UNIX: Dependencias de OS 4.6C SR2 Requerimientos de hardware El siguiente equipo es suficiente para la instalación de un sistema &sap.r3;. Para uso en producción, se necesita una medición más exacta por supuesto: Componente 4.6B 4.6C Procesador 2 x 800MHz &pentium; III 2 x 800MHz &pentium; III Memoria 1GB ECC 2GB ECC Espacio en disco 50-60GB (IDES) 50-60GB (IDES) Para su uso en producción se recomienda procesadores &xeon; con un caché grande, discos de acceso de alta velocidad (SCSI, controlador de RAID por hardware), USV y ECC-RAM. El extenso espacio en disco es debido al sistema IDES preconfigurado que crea archivos de base de datos de 27 GB durante la instalación. Este espacio es también suficiente para sistemas iniciales en producción y datos de aplicación. &sap.r3; 4.6B, &oracle; 8.0.5 El siguiente hardware fué usado: tarjeta para procesadores dual con 2 procesadores &pentium; III a 800 MHz, adaptador SCSI &adaptec; 29160 Ultra160 (para accesar una unidad de cinta 40/80 GB DLT y CDROM), &mylex; &acceleraid; (2 canales, firmware 6.00-1-00 con 32 MB RAM). A la controladora &mylex; RAID están conectados dos discos duros de 17 GB (espejados) y cuatro discos duros de 36 GB (RAID level 5). &sap.r3; 4.6C, &oracle; 8.1.7 Para esta instalación se usó un &dell; &poweredge; 2500: tarjeta para procesadores dual con 2 procesadores &pentium; III a 1000 MHz (256 kB Caché), 2 GB PC133 ECC SDRAM, Controladora RAID PERC/3 DC PCI con 128 MB y una unidad EIDE DVD-ROM. A la ontroladora RAID se conectaron dos discos duros 18 GB (espejados) y cuatro discos duros de 36 GB (RAID level 5). Instalación de FreeBSD Primero tiene que instalar FreeBSD, Existen muchas maneras de hacer esto (FreeBSD 4.3 fué instalado por FTP, FreeBSD 4.5 directamente desde el CD de distribución) para mayor información lea . Esquema de disco Para mantenerlo simple, el mismo esquema de disco para la instalación de &sap.r3; 46B y &sap.r3; 46C SR2 fué utilizado. Solo los nombres de dispositivos cambiaron, debido a que las instalaciones fueron en hardware diferente (/dev/da y /dev/amr respectivamente, así que si se utiliza una AMI &megaraid;, uno verá /dev/amr0s1a en lugar de /dev/da0s1a): Sistema de archivos Tamaño (bloques de 1k) Tamaño (GB) Montado en /dev/da0s1a 1.016.303 1 / /dev/da0s1b 6 swap /dev/da0s1e 2.032.623 2 /var /dev/da0s1f 8.205.339 8 /usr /dev/da1s1e 45.734.361 45 /compat/linux/oracle /dev/da1s1f 2.032.623 2 /compat/linux/sapmnt /dev/da1s1g 2.032.623 2 /compat/linux/usr/sap Configure e inicialice las dos unidades lógicas con el software &mylex; or PERC/3 RAID con anterioridad. El software puede ser iniciado durante la fase de arranque del BIOS. Por favor note que este esquema de disco difiere ligeramente de las recomendaciones de &sap;, ya que &sap; sugiere montar los subdirectorios &oracle; (y algunos otros) separadamente — decidimos simplemente crearlos como subdirectorios reales para simplificar. <command>make world</command> y un nuevo Kernel Descargue las fuentes -STABLE más recientes. Recompile world y su kernel personalizado despues de configurar su archivo de configuración del kernel. Aquí debe incluir también los parámetros del kernel que son requeridos tanto para &sap.r3; como para &oracle;. Instalando el ambiente Linux Instalando el sistema base Linux Primero necesita ser instalado el port linux_base (como root): &prompt.root; cd /usr/ports/emulators/linux_base &prompt.root; make install distclean Instalando el ambiente de desarrollo Linux El ambiente de desarrollo Linux es necesario, si quiere instalar &oracle; en FreeBSD de acuerdo a : &prompt.root; cd /usr/ports/devel/linux_devtools &prompt.root; make install distclean El ambiente de desarrollo Linux solo ha sido instalado para la instalación de &sap.r3; 46B IDES. No es necesario, si &oracle; DB no está reenlazado (relinked) en el sistema FreeBSD. Este es el caso si está usando el archivo comprimido tar de &oracle; de un sistema Linux. Instalando los RPMs necesarios RPMs Para iniciar el programa R3SETUP, se necesita soporte PAM. Durante la primera instalación de &sap; en FreeBSD 4.3-STABLE tratamos de instalar PAM con todos los paquetes requeridos y finalmente forzamos la instalación del paquete PAM, el cual funcionó. Para &sap.r3; 4.6C SR2 forzamos directamente la instalación del RPM PAM, que también funcionó, así que parece que los paquetes dependientes no son necesarios: &prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \ pam-0.68-7.i386.rpm Para que &oracle; 8.0.5 corra el agente inteligente, también tenemos que instalar el paquete Tcl de RedHat tcl-8.0.5-30.i386.rpm (de otra forma en reenlazado durante la instalación de &oracle; no funcionará). Existen algunos otros asuntos en relación al reenlazado de &oracle;, pero esos son asuntos de la versión para Linux de &oracle;, no específicos de FreeBSD. Algunas sugerencias adicionales Puede ser una buena idea agregar también linprocfs a /etc/fstab, para mayor información vea la página de manual &man.linprocfs.5;. Otro parámetro a configurar es kern.fallback_elf_brand=3 el cual se realiza en el archivo /etc/sysctl.conf. Creando el ambiente &sap.r3; Creando los sistemas de archivos y puntos de montaje necesarios Para una instalación simple, es suficiente con crear los siguientes sistemas de archivos: punto de montaje tamaño en GB /compat/linux/oracle 45 GB /compat/linux/sapmnt 2 GB /compat/linux/usr/sap 2 GB También es necesario crear algunos enlaces. De otra manera el instalador &sap; se quejará, ya que revisa los siguientes enlaces creados: &prompt.root; ln -s /compat/linux/oracle /oracle &prompt.root; ln -s /compat/linux/sapmnt /sapmnt &prompt.root; ln -s /compat/linux/usr/sap /usr/sap Errores posibles durante la instalación (aquí con el sistema PRD y la instalación de &sap.r3; 4.6C SR2): INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200 Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to /sapmnt/PRD/exe. Creating if it does not exist... WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400 Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The program cannot go on as long as this link exists at this location. Move the link to another location. ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0 can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content '/sapmnt/PRD/exe' Creando usuarios y directorios &sap.r3; necesita dos usuarios y ID de sistema &sap; (SID) el cual consiste en tres letras. Algunos de estos SIDs están reservados por &sap; (por ejemplo SAP y NIX. Para una lista completa vea por favor la documentación de &sap;). Para la instalación de IDES usamos IDS, para la instalación de 4.6C SR2 PRD, si ese sistema está destinado para un uso de producción. Tenemos por lo tanto los siguientes grupos (IDs de grupo pueden ser diferentes, estos son solamente los valores usados con nuestra instalación): ID de grupo nombre de grupo descripción 100 dba Administrador de base de datos 101 sapsys Sistema &sap; 102 oper Operador de base de datos Para una instalación por omisión de &oracle;, solo se usa el grupo dba. Como el grupo oper, uno también usa el grupo dba (ver la documentación de &oracle; y &sap; para información adicional). También necesitamos los siguientes usuarios: ID de usuario nombre de usuario nombre genérico grupo grupos adicionales descripción 1000 idsadm/prdadm sidadm sapsys oper Administrador &sap; 1002 oraids/oraprd orasid dba oper Administrador &oracle; Agregar los usuarios con &man.adduser.8; requiere las siguientes entradas (por favor note el shell y directorio de home) para el administrador &sap;: Name: sidadm Password: ****** Fullname: SAP Administrator SID Uid: 1000 Gid: 101 (sapsys) Class: Groups: sapsys dba HOME: /home/sidadm Shell: bash (/compat/linux/bin/bash) y para el Administrador &oracle;: Name: orasid Password: ****** Fullname: Oracle Administrator SID Uid: 1002 Gid: 100 (dba) Class: Groups: dba HOME: /oracle/sid Shell: bash (/compat/linux/bin/bash) Esto también debe incluir al grupo oper en caso de que esté usando el grupo dba y también el grupo oper. Creando directorios Estos directorios son usualmente creados como sistemas de archivos separados. Esto depende enteramente de sus requerimientos. Nosotros elegimos crearlos como simples directorios, ya que todos están localizados en el mismo RAID 5 de todas maneras: Primero vamos a configurar los propietarios y los derechos de algunos directorios (como el usuario root): &prompt.root; chmod 775 /oracle &prompt.root; chmod 777 /sapmnt &prompt.root; chown root:dba /oracle &prompt.root; chown sidadm:sapsys /compat/linux/usr/sap &prompt.root; chmod 775 /compat/linux/usr/sap Luego vamos a crear directorios como el usuario orasid. Estos serán todos subdirectorios de /oracle/SID: &prompt.root; su - orasid &prompt.root; cd /oracle/SID &prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB &prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6 &prompt.root; mkdir saparch sapreorg &prompt.root; exit Para la instalación de &oracle; 8.1.7 se necesitan algunos directorios adicionales: &prompt.root; su - orasid &prompt.root; cd /oracle &prompt.root; mkdir 805_32 &prompt.root; mkdir client stage &prompt.root; mkdir client/80x_32 &prompt.root; mkdir stage/817_32 &prompt.root; cd /oracle/SID &prompt.root; mkdir 817_32 El directorio client/80x_32 es usado con este nombre exacto. No reemplace la x con algún número o algo más. En el tercer paso creamos directorios como el usuario sidadm: &prompt.root; su - sidadm &prompt.root; cd /usr/sap &prompt.root; mkdir SID &prompt.root; mkdir trans &prompt.root; exit Entradas en <filename>/etc/services</filename> &sap.r3; requiere algunas entradas en el archivo /etc/services, las cuales puede que no estén correctamente activadas durante la instabalación bajo FreeBSD. Agregue por favor las siguientes entradas (necesita al menos esas entradas correspondientes al número de instancia — en este caso, 00. No hará ningún daño agregar todas las entradas desde 00 hasta 99 para dp, gw, sp y ms). Si va a utilizar un SAProuter o necesita accesar &sap; OSS, también necesita 99, ya que el puerto 3299 es usado generalmente para el proceso SAProuter en el sistema destino: sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number sapsp00 3400/tcp # 3400 + Instance-Number sapms00 3500/tcp # 3500 + Instance-Number sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number Locales necesarios locales &sap; requiere al menos dos locales que no son parte de la instalación por omisión de RedHat. &sap; ofrece los RPMs que se requieren como descarga desde su FTP (que solo es accesible si es un cliente con acceso OSS). Vea la nota 0171356 para una lista de los RPMs que necesita. También es posible solamente crear enlaces apropiados (por ejemplo desde de_DE y en_US ), pero no recomendamos para un sistema en producción (aunque hasta ahora ha funcionado con el sistema IDES sin ningún problema). Las siguientes locales son necesarias: de_DE.ISO-8859-1 en_US.ISO-8859-1 Haga los enlaces de esta manera: &prompt.root; cd /compat/linux/usr/share/locale &prompt.root; ln -s de_DE de_DE.ISO-8859-1 &prompt.root; ln -s en_US en_US.ISO-8859-1 Si no están presentes, habrán algunos problemas durante la instalación. Si estos son ignorados subsecuentemente (configurando el STATUS de los pasos ofensivos a OK en el archivo CENTRDB.R3S), será imposible entrar al sistema &sap; sin algo de esfuerzo adicional. Afinación del kernel Afinación del kernel Los sistemas &sap.r3; necesitan muchos recursos. Por lo tanto hemos agregado los siguientes parámetros al archivo de configuración del kernel: # Set these for memory pigs (SAP and Oracle): options MAXDSIZ="(1024*1024*1024)" options DFLDSIZ="(1024*1024*1024)" # System V options needed. options SYSVSHM #SYSV-style shared memory options SHMMAXPGS=262144 #max amount of shared mem. pages #options SHMMAXPGS=393216 #use this for the 46C inst.parameters options SHMMNI=256 #max number of shared memory ident if. options SHMSEG=100 #max shared mem.segs per process options SYSVMSG #SYSV-style message queues options MSGSEG=32767 #max num. of mes.segments in system options MSGSSZ=32 #size of msg-seg. MUST be power of 2 options MSGMNB=65535 #max char. per message queue options MSGTQL=2046 #max amount of msgs in system options SYSVSEM #SYSV-style semaphores options SEMMNU=256 #number of semaphore UNDO structures options SEMMNS=1024 #number of semaphores in system options SEMMNI=520 #number of semaphore identifiers options SEMUME=100 #number of UNDO keys Los valores mínimos son especificados en la documentación que viene con &sap;. Como no hay una descripción para Linux, vea la sección de HP-UX (32-bit) para mayor información. Como el sistema para la instalación 4.6C SR2 tiene más memoria principal, los segmentos compartidos pueden ser más extensos tanto para &sap; como para &oracle;, por consiguiente elija un número más grande de páginas de memoria compartida. Con la instalación por omisión de FreeBSD 4.5 en &i386;, deje MAXDSIZ y DFLDSIZ a 1 GB máximo. De otra manera, pueden ocurrir errore extraños como ORA-27102: out of memory y Linux Error: 12: Cannot allocate memory. Instalando &sap.r3; Preparando los CDROMs Hay muchos CDROMs que montar y desmontar durante la instalación. Asumiendo que tenga suficientes unidades de CDROM, puede solamente montarlos todos. Nosotros decidimos copiar el contenidos de los CDROMs a los directorios correspondientes: /oracle/SID/sapreorg/nombre-cd Donde nombre-cd era KERNEL, RDBMS, EXPORT1, EXPORT2, EXPORT3, EXPORT4, EXPORT5 y EXPORT6 para la instalación 4.6B/IDES, y KERNEL, RDBMS, DISK1, DISK2, DISK3, DISK4 y LANG para la instalación 4.6C SR2. Todos los nombres de archivo en los CDs montados deben estar en mayúsculas, de otra manera use la opción para el montado. Entonces utilice estos comandos: &prompt.root; mount_cd9660 -g /dev/cd0a /mnt &prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/nombre-cd &prompt.root; umount /mnt Corriendo el script de instalación Primero tiene que preparar un directorio install directory: &prompt.root; cd /oracle/SID/sapreorg &prompt.root; mkdir install &prompt.root; cd install Entonces el script de instalación es iniciado, el cual copiará casi todos los archivos relevantes en el directorio install: &prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SH La instalación IDES (4.6B) viene con un sistema de demostración &sap.r3; totalmente personalizado, así que hay seis CDs EXPORT en lugar de solo tres. En este punto el patrón de instalación CENTRDB.R3S es para instalar una instancia dentral estándar (&r3; y base de datos), no la instancia central IDES, entonces se necesita copiar el CENTRDB.R3S correspondiente desde el directorio EXPORT1, de otra manera R3SETUP solo pedirá tres CDs EXPORT. La nueva liberación de &sap; 4.6C SR2 viene con cuatro CDs EXPORT. El archivo de parámetros que controla los pasos de instalación es CENTRAL.R3S. Contrario a liberaciones anteriores no existen patrones de instalación separados para una instancia central con o sin base de datos. &sap; está usando un patrón separado para la instalación de la base de datos. Para reiniciar la instalación despues es suficiente reiniciarla con el archivo original. Durante y despues de la instalación, &sap; requiere que hostname regrese el nombre de la computadora solamente, no el nombre calificado de dominio completo. Así que configure el nombre de equipo de acuerdo, o active un alias con alias hostname='hostname -s' para orasid y para sidadm (y para root al menos durante los pasos de la instalación realizados como root). También es posible ajustar los archivos .profile y .login instalados de ambos usuarios que son instalados durante la instalación &sap;. Iniciar <command>R3SETUP</command> 4.6B Asegúrese que LD_LIBRARY_PATH esté configurada correctamente: &prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib Inicie R3SETUP como root desde el directorio de instalación: &prompt.root; cd /oracle/IDS/sapreorg/install &prompt.root; ./R3SETUP -f CENTRDB.R3S El script pregunta entonces algunas cosas (por omisión en corchetes, seguido de la respuesta real): Pregunta Por omisión Entrada Enter SAP System ID [C11] IDSEnter Enter SAP Instance Number [00] Enter Enter SAPMOUNT Directory [/sapmnt] Enter Enter name of SAP central host [troubadix.domain.de] Enter Enter name of SAP db host [troubadix] Enter Select character set [1] (WE8DEC) Enter Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 1Enter Extract Oracle Client archive [1] (Yes, extract) Enter Enter path to KERNEL CD [/sapcd] /oracle/IDS/sapreorg/KERNEL Enter path to RDBMS CD [/sapcd] /oracle/IDS/sapreorg/RDBMS Enter path to EXPORT1 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT1 Directory to copy EXPORT1 CD [/oracle/IDS/sapreorg/CD4_DIR] Enter Enter path to EXPORT2 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT2 Directory to copy EXPORT2 CD [/oracle/IDS/sapreorg/CD5_DIR] Enter Enter path to EXPORT3 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT3 Directory to copy EXPORT3 CD [/oracle/IDS/sapreorg/CD6_DIR] Enter Enter path to EXPORT4 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT4 Directory to copy EXPORT4 CD [/oracle/IDS/sapreorg/CD7_DIR] Enter Enter path to EXPORT5 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT5 Directory to copy EXPORT5 CD [/oracle/IDS/sapreorg/CD8_DIR] Enter Enter path to EXPORT6 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT6 Directory to copy EXPORT6 CD [/oracle/IDS/sapreorg/CD9_DIR] Enter Enter amount of RAM for SAP + DB 850Enter (en Megabytes) Service Entry Message Server [3600] Enter Enter Group-ID of sapsys [101] Enter Enter Group-ID of oper [102] Enter Enter Group-ID of dba [100] Enter Enter User-ID of sidadm [1000] Enter Enter User-ID of orasid [1002] Enter Number of parallel procs [2] Enter Si no ha copiado los CDs a las diferentes localidades, entonces el instalador &sap; no podrá encontrar el CD necesario (identificado por el archivo LABEL.ASC en el CD) y puede entonces pedirle que inserte y monte el CD y confirme o introduzca la ruta de montaje. El CENTRDB.R3S puede no estar libre de errores. En nuestro caso, solicitó el CD EXPORT4 nuevamente pero solo se le indicó la clave correcta (6_LOCATION, luego 7_LOCATION, etc), entonces uno puede solamente continuar indroduciendo los valores correctos. Aparte de algunos problemas mencionados abajo, todo debe ir directamente al punto donde el software de base de datos &oracle; necesita ser instalado. Iniciar <command>R3SETUP</command> 4.6C SR2 Asegúrese que LD_LIBRARY_PATH esté configurada correctamente. Este es un valor diferente de la instalación 4.6B con &oracle; 8.0.5: &prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib Inicie R3SETUP como el usuario root desde el directorio de instalación: &prompt.root; cd /oracle/PRD/sapreorg/install &prompt.root; ./R3SETUP -f CENTRAL.R3S El script pregunta entonces algunas cosas (por omisión en corchetes, seguido de la respuesta real): Pregunta Por omisión Entrada Enter SAP System ID [C11] PRDEnter Enter SAP Instance Number [00] Enter Enter SAPMOUNT Directory [/sapmnt] Enter Enter name of SAP central host [majestix] Enter Enter Database System ID [PRD] PRDEnter Enter name of SAP db host [majestix] Enter Select character set [1] (WE8DEC) Enter Enter Oracle server version (2) Oracle 8.1.7 2Enter Extract Oracle Client archive [1] (Yes, extract) Enter Enter path to KERNEL CD [/sapcd] /oracle/PRD/sapreorg/KERNEL Enter amount of RAM for SAP + DB 2044 1800Enter (in Megabytes) Service Entry Message Server [3600] Enter Enter Group-ID of sapsys [100] Enter Enter Group-ID of oper [101] Enter Enter Group-ID of dba [102] Enter Enter User-ID of oraprd [1002] Enter Enter User-ID of prdadm [1000] Enter LDAP support 3Enter (no support) Installation step completed [1] (continue) Enter Choose installation service [1] (DB inst,file) Enter Hasta ahora, la creación de usuarios da un error durante la instalación en las fases OSUSERDBSID_IND_ORA (para crear al usuario orasid) y OSUSERSIDADM_IND_ORA (creando al usuario sidadm). Aparte de algunos problemas mencionados abajo, todo debe ir directamente al punto donde el software de base de datos &oracle; necesita ser instalado. Instalando &oracle; 8.0.5 Vea por favor las notas correspondientes en los Readmes de &sap; y &oracle; en relación a Linux y &oracle; DB para problemas posibles. La mayoría, si no todos los problemas vienen de librerías incompatibles. Para mayor información instalando &oracle;, refiérase al capítulo de instalación de &oracle;. Instalando &oracle; 8.0.5 con <command>orainst</command> Si &oracle; 8.0.5 va a ser usado, se necesitan algunas librerías adicionales para un reenlazado exitoso, ya que &oracle; 8.0.5 fué enlazado con una glibc antigua (RedHat 6.0), pero RedHat 6.1 ya usa una nueva glibc. Entonces tiene que instalar los siguientes paquetes adicionales para asegurarse que el reenlazado funcionará: compat-libs-5.2-2.i386.rpm compat-glibc-5.2-2.0.7.2.i386.rpm compat-egcs-5.2-1.0.3a.1.i386.rpm compat-egcs-c++-5.2-1.0.3a.1.i386.rpm compat-binutils-5.2-2.9.1.0.23.1.i386.rpm Vea las notas correspondientes de &sap; o el Readme de &oracle; para más información. Si esto no puede ser posible (al momento de instalación no teniamos tiempo suficiente para revisar esto), se podrían utilizar los binarios originales, o los binarios reenlazados de un sistema original RedHat. Para compilar el agente inteligente, el paquete Tcl de RedHat debe ser instalado. Si no puede obtener tcl-8.0.3-20.i386.rpm, una versión más reciente como tcl-8.0.5-30.i386.rpm para RedHat también debe funcionar. Aparte del reenlazado, la instalación es directa: &prompt.root; su - oraids &prompt.root; export TERM=xterm &prompt.root; export ORACLE_TERM=xterm &prompt.root; export ORACLE_HOME=/oracle/IDS &prompt.root; cd $ORACLE_HOME/orainst_sap &prompt.root; ./orainst Confirme todas las pantallas con Enter hasta que el software esté instalado, excepto la que tiene deseleccionar el visualizador de textos &oracle; en línea, ya que no se encuentra disponible para Linux. &oracle; quiere entonces reenlazar con i386-glibc20-linux-gcc en lugar del gcc disponible, egcs o i386-redhat-linux-gcc. Debido a falta de tiempo decidimo usar los binarios de una liberación &oracle; 8.0.5 PreProduction, despues que el primer intento de que funcionara la versión del CD RDBMS fallara, y encontrar y accesar los RPMs correctos era una pesadilla en ese momento. Instalando &oracle; 8.0.5 Pre-production Release para Linux (Kernel 2.0.33) Esta instalacación es bastante fácil. Monte el CD, inicie el instalador. Entonces le preguntará por la ubicación de directorio home de &oracle;, y copiará ahí todos los binarios. Aunque nosotros no eliminamos los sobrantes de nuestra instalación RDBMS previa fallida. Despues de eso, la base de datos &oracle; puede ser iniciada sin problemas. Instalando el archivo comprimido de Linux &oracle; 8.1.7 Tome el archivo comprimido oracle81732.tgz que produjo desde el directorio de instalación en un sistema Linux y descomprímalo en /oracle/SID/817_32/. Continue con la instalación &sap.r3; Primero revise las configuraciones de ambiente de los usuarios idsamd (sidadm) y oraids (orasid). Ahora ambos deben tener los archivos .profile, .login y .cshrc los cuales están utilizando hostname. En caso que el nombre de equipo del sistema sea el nombre calificado completo, necesita cambiar hostname a hostname -s dentro de los tres archivos. Carga de la base de datos Despues, R3SETUP puede ser iniciado o continuado (dependiendo si se eligió salir o no). Entonces R3SETUP crea los espacios en tablas y carga los datos (para 46B IDES, desde EXPORT1 hasta EXPORT6, para 46C desde DISK1 hasta DISK4) con R3load en la base de datos. Cuando se termina la carga de la base de datos (puede tomar un par de horas), se solicitan algunas contraseñas. Para instalaciones de prueba, se pueden utilizar las contraseñas por omisión bien conocidas (¡use unas diferentes si le preocupa la seguridad!): Pregunta Entrada Enter Password for sapr3 sapEnter Confirum Password for sapr3 sapEnter Enter Password for sys change_on_installEnter Confirm Password for sys change_on_installEnter Enter Password for system managerEnter Confirm Password for system managerEnter At this point We had a few problems with dipgntab during the 4.6B installation. Escucha Inicie el escucha de &oracle; como el usuario orasid de la siguiente manera: &prompt.user; umask 0; lsnrctl start De otra manera puede obtener el error ORA-12546 ya que los sockets no tendrán los permisos correctos. Vea la nota 072984 de &sap;. Actualizando tablas MNLS Si planea importar lenguajes que no sean Latin-1 hacia el sistema &sap;, tiene que actualizar el soporte de tablas multilenguaje. Esto se describe en las notas 15023 y 45619 de &sap; OSS. Si no, puede saltarse esta sección durante la instalación de &sap;. Si no necesita soporte MNLS, todavía es necesario revisar la tabla TCPDB e inicializarla si no se ha hecho. Vea las notas 0015023 y 0045619 de &sap; para mayor información. Pasos para despues de la instalación Solicitar una licencia llave &sap.r3; Tiene que solicitar su licencia llave de &sap.r3;. Esta se necesita, ya que la licencia temporal que fué instalada durante la instalación es válida solamente por cuatro semanas. Primero obtenga la llave hardware. Entre como el usuario idsadm y llame a saplicense: &prompt.root; /sapmnt/IDS/exe/saplicense -get Llamar a saplicense sin parámetros da una lista de opciones. Despues de recibir la licencia llave, puede ser instalada usando: &prompt.root; /sapmnt/IDS/exe/saplicense -install Entonces se le solicita que entre los siguientes valores: SAP SYSTEM ID = SID, 3 caracteres CUSTOMER KEY = hardware key, 11 caracteres INSTALLATION NO = installation, 10 caracteres EXPIRATION DATE = yyyymmdd, usualmente "99991231" LICENSE KEY = license key, 24 caracteres Crear usuarios Cree un usuario dentro del cliente 000 (para algunas tareas que requieren ser hechas dentro de cliente 000, pero con un usuario diferente a los usuarios sap* y ddic). Como nombre de usuario, generalmente escogemos wartung (o servicio es español). Los perfiles requeridos son sap_new y sap_all. Para seguridad adicional las contraseñas para usuarios por omisión dentro de todos los clientes deben ser cambiadas (esto incluye usuarios sap* y ddic). Configurar sistema de transporte, perfil, modos de operación, etc. Dentro del cliente 000, usuario diferente de ddic y sap*, haga al menos lo siguiente: Tarea Transacción Configurar sistema de transporte, ej. como Stand-Alone Transport Domain Entity STMS Crear / editar perfil para el sistema RZ10 Mantener modos de operación e instancias RZ04 Estos y todos los demas pasos post-instalación son descritos detalladamente en las guías de instalación &sap;. Editar <filename>init<replaceable>sid</replaceable>.sap</filename> (<filename>initIDS.sap</filename>) El archivo /oracle/IDS/dbs/initIDS.sap contiene el perfil de respaldo &sap;. Se necesita definir aquí el tamaño de la cinta a utilizar, tipo de conpresión y demás. Para tener esto corriendo con sapdba / brbackup, cambiamos los siguientes valores: compress = hardware archive_function = copy_delete_save cpio_flags = "-ov --format=newc --block-size=128 --quiet" cpio_in_flags = "-iuv --block-size=128 --quiet" tape_size = 38000M tape_address = /dev/nsa0 tape_address_rew = /dev/sa0 Explicaciones: compress: La cinta que usamos es una HP DLT1 que tiene compresión por hardware. archive_function: Esto define la conducta por omisión del almacenaje de los archivos de log de &oracle;: los archivos de log nuevos son guardados en cinta, los archivos de log que ya han sido guardados se guardan de nuevo y entonces son borrados. Esto previene muchos problemas si necesita recuparar la base de datos y uno de las cintas de archivo se ha dañado. cpio_flags: por omisión se usa que indica un tamaño de bloque de 5120 Bytes. Para cintas DLT, HP recomienda al menos un tamaño de bloque de 32 K, así que usamos para 64 K. se necesita debido a que tenemos números de inodo mayores a 65535. La última opción se necesita ya que brbackup se queja tan pronto como cpio imprime los números de bloque salvados. cpio_in_flags: Banderas necesarias para cargar datos de vuelta desde la cinta. El formato es reconocido automaticamente. tape_size: Esto usualmente da la capacidad de almacenaje cruda de la cinta. Por razones de seguridad (nosotros usamos compresión por hardware), el valor es ligeramente menor que el valor real. tape_address: El dispositivo no retrocedible a utilizar con cpio. tape_address_rew: El dispositivo retrocedible a utilizar con cpio. Detalles de configuración despues de la instalación Los siguientes parámetros &sap; deben ser afinados despues de la instalación (ejemplos para IDES 46B, 1 GB memory): Nombre Valor ztta/roll_extension 250000000 abap/heap_area_dia 300000000 abap/heap_area_nondia 400000000 em/initial_size_MB 256 em/blocksize_kB 1024 ipc/shm_psize_40 70000000 &sap; Note 0013026: Nombre Valor ztta/dynpro_area 2500000 &sap; Note 0157246: Nombre Valor rdisp/ROLL_MAXFS 16000 rdisp/PG_MAXFS 30000 With the above parameters, on a system with 1 gigabyte of memory, one may find memory consumption similar to: Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free Problemas durante la instalación Reiniciar <command>R3SETUP</command> despues de arreglar el problema R3SETUP se detiene si encuentra un error. Si ha revisado en los archivos de log correspondientes y arreglado el error, tiene que reiniciar R3SETUP, usualmente seleccionando REPEAT como opción para el último paso donde R3SETUP se quejó. Para reiniciar R3SETUP, solo inicielo con el archivo R3S correspondiente: &prompt.root; ./R3SETUP -f CENTRDB.R3S para 4.6B, o con &prompt.root; ./R3SETUP -f CENTRAL.R3S para 4.6C, sin importar si el error ocurrió con CENTRAL.R3S o con DATABASE.R3S. En algunas etapas, R3SETUP asume que la base de datos y los procesos &sap; están arriba y funcionando (como aquellos en donde ya se completaron los pasos). Si ocurren errores y por ejemplo la base de datos no pudo iniciarse, tiene que iniciar la base de datos y &sap; manualmente despues de arreglar los errores y antes de iniciar R3SETUP de nuevo. No se olvide de iniciar también el escucha de &oracle; de nuevo (como orasid con umask 0; lsnrctl start) si fué detenido también (por ejemplo debido a un reinicio necesario del sistema). OSUSERSIDADM_IND_ORA durante <command>R3SETUP</command> Si R3SETUP se queja en este etapa, edite el archivo de formato R3SETUP usado en ese momento (CENTRDB.R3S (4.6B) o ya sea CENTRAL.R3S o DATABASE.R3S (4.6C)). Localice [OSUSERSIDADM_IND_ORA] o busque la única entrada STATUS=ERROR y edite los siguientes valores: HOME=/home/sidadm (estaba vacío) STATUS=OK (tenía status ERROR) Entonces puede reiniciar R3SETUP. OSUSERDBSID_IND_ORA durante <command>R3SETUP</command> Posiblemente R3SETUP se queje también en esta etapa. El error aquí es similar al de la fase OSUSERSIDADM_IND_ORA. Simplemente edite el archivo de formato R3SETUP utilizado en ese momento (CENTRDB.R3S (4.6B) o ya sea CENTRAL.R3S o DATABASE.R3S (4.6C)). Localice [OSUSERDBSID_IND_ORA] o busque la única entrada STATUS=ERROR y edite los siguientes valores en esa sección: STATUS=OK Entonces reinicie R3SETUP. <errorname>oraview.vrf FILE NOT FOUND</errorname> durante la instalación de &oracle; No ha deseleccionado el visualizador de texto en línea de &oracle; antes de iniciar la instalación. Esto está marcado para instalar includo aunque esta opción no se encuentra disponible para Linux. Quite la selección de este producto dentro del menú de instalación de &oracle; y reinicie la instalación. <errorname>TEXTENV_INVALID</errorname> durante <command>R3SETUP</command>, o inicio de RFC o SAPgui Si este error es encontrado, falta el local correcto. La nota 0171356 de &sap; lista los RPMs que necesitan instalarse (ej. saplocales-1.0-3, saposcheck-1.0-1 para RedHat 6.1). En caso de que ignore todos los errores relacionados y configure los STATUS correspondientes de ERROR a OK (en CENTRDB.R3S) cada vez que R3SETUP se queje y simplemente reinicie R3SETUP, el sistema &sap; no será configurado apropiadamente y no podrá ser capaz de conectarse al sistema con SAPgui, incluso aunque el sistema pueda ser iniciado. Tratar de conectar con el antiguo SAPgui de Linux da los siguientes mensajes: Sat May 5 14:23:14 2001 *** ERROR => no valid userarea given [trgmsgo. 0401] Sat May 5 14:23:22 2001 *** ERROR => ERROR NR 24 occured [trgmsgi. 0410] *** ERROR => Error when generating text environment. [trgmsgi. 0435] *** ERROR => function failed [trgmsgi. 0447] *** ERROR => no socket operation allowed [trxio.c 3363] Speicherzugriffsfehler Este comportamiento se debe a que &sap.r3; es incapaz de asignar correctamente una local y tampoco puede configurarse a si mismo correctamente (entradas faltantes en algunas tablas de la base de datos). Para ser capaz de conectar a &sap;, agregue las siguientes entradas al archivo DEFAULT.PFL (vea la nota 0043288): abap/set_etct_env_at_new_mode = 0 install/collate/active = 0 rscp/TCP0B = TCP0B Reinicie el sistema &sap;. Ahora puede conectar al sistema, incluso aunque la configuración de lenguaje de país específico puede que no funcione como se espera. Despues de corregir las configuraciones de país (y proporcionar las locales correctas), estas entradas pueden ser eliminadas de DEFAULT.PFL y el sistema &sap; puede ser reiniciado. <errorcode>ORA-00001</errorcode> Este error solamente ocurre con &oracle; 8.1.7 en FreeBSD 4.5. La razón fué que la base de datos &oracle; no pudo inicializarse apropiadamente y falló, dejando semáforos y memoria compartida en el sistema. El siguiente intento de iniciar la base de datos regresó entonces ORA-00001. Encuéntrelos con ipcs -a y elimínelos con ipcrm. <errorcode>ORA-00445</errorcode> (Proceso en segundo plano PMON no inició) Este error ocurrió con &oracle; 8.1.7. Este error es reportado si la base de datos es iniciada con el script usual startsap (por ejemplo startsap_majestix_00) como usuario prdadm. Una posible solución es iniciar la base de datos como el usuario oraprd en lugar de hacerlo con svrmgrl: &prompt.user; svrmgrl SVRMGR> connect internal; SVRMGR> startup; SVRMGR> exit <errorcode>ORA-12546</errorcode> (Iniciar escucha con los permisos correctos) Inicie el escucha de &oracle; como usuario oraids con el siguiente comando: &prompt.root; umask 0; lsnrctl start De no ser así puede obtener ORA-12546 ya que los sockets no tendrán los permisos correctos. Vea la nota 0072984 de &sap;. <errorcode>ORA-27102</errorcode> (Memoria agotada) Este error ocurre al tratar de usar valores mayores a 1 GB (1024x1024x1024) para MAXDSIZ y DFLDSIZ. Adicionalmente, obtenemos Linux Error 12: Cannot allocate memory. [DIPGNTAB_IND_IND] durante <command>R3SETUP</command> En general, vea la nota 0130581 de &sap; (el paso DIPGNTAB de R3SETUP finaliza). Durante la instalación específica IDES, por alguna razón el proceso de instalación no estaba usando el nombre de sistema &sap; IDS correcto, sino la cadena vacía "" en su lugar. Esto provoca algunos errores menores con el acceso de directorios, ya que las rutas son generadas dinamicamente utilizando SID (en este caso IDS). Así que en lugar de accesar: /usr/sap/IDS/SYS/... /usr/sap/IDS/DVMGS00 las siguientes rutas fueron utilizadas: /usr/sap//SYS/... /usr/sap/D00 Para continuar con la instalación, creamos un enlace y un directorio adicional: &prompt.root; pwd /compat/linux/usr/sap &prompt.root; ls -l total 4 drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00 drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans También encontramos que las notas de &sap; (0029227 y 0008401) describían este comportamiento. No encontramos ninguno de estos problemas con la instalación de &sap; 4.6C. [RFCRSWBOINI_IND_IND] durante <command>R3SETUP</command> Durante la instalación de &sap; 4.6C, este error fué el resultado de otro error que ocurrió antes durante la instalación. En este caso, tiene que buscar en los archivos de log correspondientes y corregir el problema real. Si despues de buscar en los archivos de log este error resulta ser el correcto (revise las notas de &sap;), puede poner el STATUS del paso ofensivo de ERROR a OK (archivo CENTRDB.R3S) y reiniciar R3SETUP. Despues de la instalación, tiene que ejecutar el reporte RSWBOINS de la transacción SE38. Vea la nota 0162266 de &sap; para información adicional acerca de la fase RFCRSWBOINI y RFCRADDBDIF. [RFCRADDBDIF_IND_IND] durante <command>R3SETUP</command> Aquí aplican las mismas restricciones: asegúrese revisando los archivos de log, que este error no sea causado por algún problema previo. Si puede confirmar que la nota 0162266 de &sap; aplica, solo ponga el STATUS del paso ofensivo de ERROR a OK (archivo CENTRDB.R3S) y reinicie R3SETUP. Despues de la instalación, tiene que ejecutar el reporte RADDBDIF desde la transacción SE38. <errorcode>sigaction sig31: File size limit exceeded</errorcode> Este error ocurrió durante el inicio del proceso &sap; disp+work. Si inicia &sap; con el script startsap, entonces se inician los subprocesos que se desligan y hacen el trabajo sucio de iniciar todos los otros procesos &sap;. Como resultado, el mismo script no notará si algo va mal. Para revisar si los procesos &sap; iniciaron correctamente, de un vistazo al estatus de los procesos con ps ax | grep SID, que le proporcionará una lista de todos los procesos de &oracle; y de &sap;. Si parece que algunos procesos no están o si no puede conectar al sistema &sap;, revise los archivos de log correspondientes los cuales pueden ser encontrados en /usr/sap/SID/DVEBMGSnr/work/. Los archivos a revisar son dev_ms y dev_disp. La señal 31 sucede si la cantidad de memoria compartida utilizada por &oracle; y &sap; excede la definida dentro del archivo de configuración del kernel y puede resolverse usando un valor más grande: # larger value for 46C production systems: options SHMMAXPGS=393216 # smaller value sufficient for 46B: #options SHMMAXPGS=262144 Inicio de <command>saposcol</command> fallido Existen algunos problemas con el programa saposcol (version 4.6D). El sistema &sap; está usando saposcol para recoger datos acerca del rendimiento del sistema. Este programa no es necesario para usar el sistema &sap;, así que este problema puede ser considerado un problema menor. La versión más antigua (4.6B) funciona, pero no recoge todos los datos (muchas llamdas regresarán solamente 0, por ejemplo el uso del CPU). Tópicos avanzados Si tiene curiosidad de como funciona la compatibilidad de binarios Linux, esta es la sección que usted quiere leer. La mayoría de lo que sigue está fuertemente basado en un correo escrito a &a.chat; por Terry Lambert tlambert@primenet.com (ID de mensaje: <199906020108.SAA07001@usr09.primenet.com>). ¿Como funciona? cargador de clases de ejecución FreeBSD tiene un abstracción llamada un cargador de clases de ejecución. Esto es un pedazo dentro del sistema de llamadas &man.execve.2;. Lo que sucede es que FreeBSD tiene una lista de cargadores, en lugar de un solo cargador con un respaldo a el cargador #! para correr cualquier intérprete de shell o script de shell. Historicamente, el único cargador en la plataforma &unix; examinaba el número mágico (generalmente los primeros 4 o 8 bytes del archivo) para ver si era un binario conocido para el sistema, y si lo era, invocaba el cargador binario. Si no era un tipo de binario para el sistema, la llamada &man.execve.2; regresaba un fallo, y el shell trataba de iniciar la ejecución como comandos de shell. Se asumía por defecto un cualquiera que sea el shell actual. Despues, se hizo un hack para que &man.sh.1; examinara los primeros dos caracteres, y si eran :\n, entonces invocaba al shell &man.csh.1; (creemos que el primero en hacer el hack fué SCO). Lo que hace FreeBSD Ahora es ir a través de una lista de cargadores, con un cargador #! genérico que sabe de intérpretes ya que los caracteres que le siguen al espacio en blanco siguiente que le sigue al último, seguido por un repliegue a /bin/sh. ELF Para el soporte de la ABI Linux, FreeBSD ve el número mágico como un binario ELF (no hace distinción entre FreeBSD, &solaris;, Linux, o cualquier otro sistema operativo que tenga un tipo de imagen ELF, hasta este momento). Solaris El cargador ELF busca por una marca especializada, la cual es una sección de comentarios en la imagen ELF, y que no está presente en los binarios ELF de SVR4/&solaris;. Para que los binarios Linux funcionen, deben ser marcados de tipo Linux desde &man.brandelf.1;: &prompt.root; brandelf -t Linux file Cuando se ha hecho esto, el cargador ELF verá la marca Linux en el archivo. ELF marcaje Cuando el cargador ELF ve la marca Linux, el cargador reemplaza un apuntador en la estructura proc. Todas las llamadas del sistema son indexadas a través de este apuntador (en un sistema tradicional &unix;, esto sería la matriz de estructura sysent[], conteniendo las llamadas del sistema). Adicionalmente, el proceso es abanderado para un manejo especial del vector de trampas para la señal del código trampolín, y otras correciones varias (menores) que son manejadas por el módulo Linux del kernel. El vector de llamadas de sistema Linux contiene, entre otras cosas, una lista de entradas sysent[] cuyas direcciones residen en el módulo del kernel. Cuando una llamada del sistema es invocada por el binario Linux, el código de trampa deferencía la función de llamada al sistema fuera de la estructura proc, y toma el punto de entrada de llamada al sistema de Linux, no el de FreeBSD. Además, el modo Linux reenruta dinamicamente búsquedas; esto es, en efecto, lo que la opción hace en los montajes de sistemas de archivos (¡no el tipo de sistema de archivo unionfs!). Primero, un intento es realizado de buscar el archivo en el directorio /compat/linux/ruta-original, entonces solamente si eso falla, la búsqueda se realiza en el directorio /ruta-original. Esto asegura que los binarios que requieren otros binarios puedan ejecutarse (ej. todos los binarios de la cadena de utilidades Linux pueden correr bajo soporte de ABI Linux). También significa que los binarios Linux pueden cargar y ejecutar binarios FreeBSD, si no están presentes los binarios Linux correspondientes, y que puede colocar un &man.uname.1; en el árbol de directorios /compat/linux para asegurar que los binarios Linux no puedan saber que no están corriendo en Linux. En efecto, existe un kernel Linux en el kernel de FreeBSD; las varias funciones internas que implementan todos los servicios que brindados por el kernel son idénticas tanto en la tabla de entradas de llamadas al sistema FreeBSD como en la tabla de entradas de llamadas al sistema Linux: operaciones del sistema de archivos, operaciones de memoria virtual, entrega de señales, System V IPC, etc… La única diferencia es que los binarios FreeBSD obtienen las funciones pegadas, y los binarios Linux obtienen las funciones pegadas Linux (sistemas operativos mas antiguos tenían su propias funciones pegadas: direcciones de funciones en una matriz de estructuras sysent[] global, en lugar de direcciones de funciones deferenciadas de un apuntador inicializado dinamicamente en la estructura proc del proceso que realizaba la llamada). ¿Cual es la ABI nativa de FreeBSD? No importa. Basicamente la única diferencia es que (actualmente; esto puede ser facilmente cambiado un una liberación futura, y probablemente será despues de esta) las funciones FreeBSD pegadas son enlazadas estaticamente en el kernel, y las funciones Linux pegadas pueden ser enlazadas estaticamente, o pueden ser accesadas por medio de un módulo del kernel. Claro, ¿pero esto es realmente emulación? No. Es una implementación de la ABI, no una emulación. No existe un emulador (o simulador, para cortar la siguiente pegunta) involucrado. ¿Entonces por qué es llamado a veces emulación Linux? ¡Para hacer que sea más difícil vender FreeBSD! De verdad, se debe a que la implementación histórica fué hecha en una época en la que no existía realmente otra palabra que esa para describir lo que estaba pasando; decir que FreeBSD corría binarios Linux no era cierto, si no se compilaba el código o cargaba un módulo, y necesitaba haber una palabra que describiera lo que estaba siendo cargado—por eso el emulador Linux.