USar PDA – winCE en linux Venenux como si de cualquier USB (synce-gvfs)

En el repositorio hay un paquete llamado synce-gvfs que lo hace todo
El la primera imagen se muestra la ruta USERSPACE donde el usuario puede acceder realmente a los archivos, esto funciona con fuse y gvfs , synce emplea estas capas y monta el dispositivo aqui:
el “1000” es el identificador de usuario puedes hacer:

cd /var/run/user/”$(id -u)”

.. y como una imagen vale mas que mil palabras:

Venenux ODBC y sybase nociones y conectividad

Soporte ODBC Sybase/SAPIQ en linux

En linux hay 3 tipos de software ODBC para conectarse a sybase:
proveedor usa odbcinst todo en odbc.ini DBMS soportadas detalles
SAP sybase NO NECESARIO anywehere, IQ, SAP Viene incluido en el instalador del engine ( libdbodbc )
FreeDTS SI SOPORTADO SQL Server, Adaptive Server/Enterprise Opensourse, solo 1.X para mas caracteristicas
EasySoft SI SOPORTADO anywhere, IQ, SAP,
SqlServer/Adaptive
trial 14dias, SOPORTA TODO LAS CARACTERISTICAS incluyendo codificacion

Limitaciones linux ODBC sybase

  1. FREEDTS no soporta tipos de datos como nvarchar y ntext faltan, las veriones recientes solo limitado.
  2. FREEDTS solo “pasa” las sentencias, no las interpreta como el de easy soft
  3. SAPODBC solo “pasa” las sentencias, ya que asume se conecta a un engine Sybase
  4. SAPODBC aunque solo usa el odbc.ini el engine no interpreta, requiere la forma DSN-less
  5. EasySoft es mejor opcion pero es caro y a medida avanza no soporta versiones sybase viejas

fuentes de software y delimitantes

  1. Sybase anywhere se compro por SAP en 2010/2012 desde sybase 17 todo su software no viene en la forma “todo en uno”, sino separado
  2. librerias ODBC desde sybase anywhere o IQ 12 a 16 vienen incluidas tanto el propio software ODBC como su conector, 17 solo el conector
  3. modulo ct sybase para php como compilar:https://sourceforge.net/p/asemon/wiki/recompile%20sybase_ct%20module%20on%20Linux/
  4. modulo ct sybae viene precompilado para linux php 5.2.X y 5.3.X en sybase anywhare 12 y 16, pero en 17 ya no y necesita SDK.

Problemas de conversion y conectividad ANSI/UTF8

Sybase soporta el “mapear” tablas de otras bases de datos como si fueran suyas, esto se le llama tablas proxy en base de datos remotas pero tienen un problema, dependen del soporte ODBC de la base de datos origen.
  1. UNICODE: Por ejemplo en el caso Postgres, el ODBC provee dos tipos de conecion el ansi y el unicode, pero en el caso de mysql no esta muy claro, sino el la version liberada en 2015 que ya provee dos modulso bien definidos tal cual lo hace el de postgres. Mismo problema sucede con Oracle. Por ende si se pretende usar Sybase por medio de ODBC hay que tener en cuenta el mapeo de datos, ademas de el soporte (FreeDTS es el mas limitado de los odbc), ya que por medio de ODBC no “pasan” todas las caracteristicas y entre unicode y UTF8 el odbc utiliza 2bytes en vez de 4bytes, esto mapea mal los dato con errores como "cannot map datatype nchar" en el odbc o el php o donde se consulte. Ya esto se esta trabajando en github gracias a un reporte de PICCORO.
  2. DSN-less: el sybase, el central y el dbisql no leen completamente un archivo odbc.ini, por ende si se realiza conecciones odbc desde sybase, estas deben ser de la forma DSN-less, un ejemplo claro es tratando de conectarse a Mysql, siempre apuntara a localhost si se pretente usar toda la configuracion desde un DSN de un archivo odbd con el error "Can't connect to local MySQL server through socket ", se evita usando la forma DSN-less de myodbc en el string de coneccion de sybase.

Trabajar ODBC con Sybase/SQL (freeDTS)

Esto es documentación técnica para la tarea #412 que requiere crear en dinámico el conector odbc

Software requerido y preparación ODBC

En una consola instalar freedts de venenux (recomendado 0.95 en adelante, debian aun no los tiene) y odbcunix asi:
apt-get install unixodbc tdsodbc libsybdb5 libct4
Esto creará un archivo de sistema en /etc/ que tendrá los parámetros de conectividad para DBMS en sybase (solo en venenux) de no ser asi deben leer: http://qgqlochekone.blogspot.com/2010/10/setup-odbc-using-postgresql-and-access.html. y adaptarlo segun freedts (tdsodbc en share).

NOTA: a partir de enero paquetes odbc freedts con soporte completo solo venenux!

Conexiones ODBC Sybase:

NOTA un archivo odbc.ini u/o .odbc.ini puede tener una o mas secciones que definan una conexión
En una consola crear un archivo odbc asi:
touch .odbc.ini
El contenido no usa ni usuario ni clave, tampoco connection settings, entonces de este debera ser asi:
[oasis0]
Description         = TDS sybase SQL
Driver              = FreeTDS
Trace               = Yes
TraceFile           = /tmp/tdsqlodbc.log
Database            = oasis
Server              = 192.168.1.12
Port                = 2638
TDS_version         = 5.0
 Es importante el parametro TDS_version a 5.0 sino no se podra asumir sybase en freedts.

Probar la conexcion ODBC realizada

Se usa tres parametros, el nombre (la parte entre corchetes) el usuario y la clave de conexión de acceso al a base de datos deseada, el usuario y clave son mandatorios ya que no son nunca asumidos en el odbc.ini asi:
(ejemplo usando la conexión arriba oasis0 pero con usuario y clave ficticio)
isql oasis0 pepe pablo
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

Trabajar con el odbc Sybase Linux (SAP odbc)

Cuando realize la instalacion hagala en /opt/sap/sqlanywhere12 aqui se asumira esta ruta.

Software requerido y preparación ODBC

Requiere nombre en bruto de ODBC lib (libodbc.so en vez de libodbc.so.2), ademas el instalador tiene un script llamado sa_config (hay dos uno para bash y otro para cshell) este ensena hay dos rutas importante que deben estar presentes:
export SQLANY12=/opt/sap/sqlanywhere12
export LD_LIBRARY_PATH="$SQLANY12/lib32:$LD_LIBRARY_PATH"
apt-get install unixodbc-dev
El software de SAP/Sybase no usa ODBCINST.ini por ende no se registra en /etc/ sin embargo se puede usar de esta manera.
NOTA: tenga en cuenta que aunque registrarlo en odbcinst sirve, el software de SAP/Sybase no usa sino odbc.ini o DSN-less

Conexiones odbc SAP sybase:

NOTA un archivo odbc.ini u/o .odbc.ini puede tener una o mas secciones que definan una conexión
En una consola crear/verificar un archivo odbc asi:
touch .odbc.ini
El contenido depende del archivo libreria provisto, en este caso el nombre varia segun la instalacion, busque en el manual o ayuda de sybase, de este deberia ser SIMILAR asi:
[oasis0]
Description         = TDS sybase SAP
Driver              = /opt/sap/sqlanywhere12/lib32/libdbodbc12_r.so
Server              = 192.168.1.123
Port                = 2638

Probar la conexcion ODBC realizada

Se usa tres parametros, el nombre (la parte entre corchetes) el usuario y la calve de conexión de acceso al a base de datos deseada, asi:
(ejemplo usando la conexión arriba nominaq pero con usuario y clave ficticio)
dbisql -datasource oasis0 -c "dsn=oasis0;DBN=oasisdb;UID=pepe;PWD=pablo" -nogui
dbisql> 

debian live squeeze y wheeze “grub-pc failed to install” solucionado

Fue un problema comun “grub-pc failed to install” el los live debian y con decir “no” en el paso de grub master boot record se solucionaba. Siempre que se usara el modo experto en el instalador live.


En debian live 6 y 7 desde la segunda version de squeeze y en las primeras de wheeze, los discos live no instalan, tiene nun error causado por no seleccionar correctamente el dispositivo al cual se instala, esto porque la primera “particion como tal” es o el USB o el CD/DVD live, y no el disco duro.

La errata salio bien tarde: https://www.debian.org/releases/wheezy/debian-installer/#errata pues en squeeze ya existia en las subreleases ultimas.

Fuentes de info y errata

Al instalar dice asi: “The ‘grub-pc’ package failed to install into /target/. Without the GRUB boot loader, the installed system will not boot.”

Aunque es informacion vieja, (Ya fue Reportado) hay quienes aun usan squeeze o wheeze, los enlaces y fe de errata son:

Solucion

Hay tres maneras, segun el disco

  1. FACIL: Si inicio la instalacion para evitar que se ejecute en esto, asegúrese de contestar “No” cuando se hace la siguiente pregunta durante el proceso de instalación: “Instalar el cargador de arranque de GRUB en el registro de arranque maestro?”; Debería ser posible especificar el dispositivo correcto en el siguiente paso: “Dispositivo para la instalación del gestor de arranque”. Alli coloque la letra del dico que se detecto en el paso de parmat o seleccionde particion de disco duro, ejemplo /dev/sda o /dev/sdc o /dev/hda
  2. PROFESIONAL: en la pantalla de arranque despues arraco el cd-live instalador en parametros de boot (presionar tabulador) agregar esto: “grub-installer/bootdev?=/dev/sda grub-pc/install_devices?=/dev/sda” donde deben cambiar “sda” segun el disco o dejarlo en un avlor invalido para que se les pregunte, esta es la mas profesional
  3. DIFICIL: una vez falle el paso, seleccionar “continuar sin cargador de arranque” y en el menu de instalacion seleccionar una consola de rescate, hacer chroot en la particion de instalacion y alli ejecutar grub-install pero ojo montar todo lo necesario en el chroot como proc y sys en modo ciego (bind) desde la real.