sexta-feira, 20 de janeiro de 2012

Iniciando com SuSE

A maioria das versões de Linux, assim como Unix, define  o prompt de comando padrão como um sinal de dolar, $, para usuários comuns e para o root #). o SuSE, entretanto, define o prompt de comando padrão como um sinal de maior  (>), mas segue a convenção dos Linux usando o sinal de cerquilha ou libra # para o usuario root. Ao longo dos meus post, você vai ver $ para o prompt de shell para comandos que podem rodar como qualquer usuario (não querer privilegios especiais).

Voce pode customizar seu prompt da maneira que voce quiser, usando o comando abaixo:

$ export PS1=" [\u@\h \w]\\$ "
[amilcar@isis /root]$

Este comando configura o prompt com seu nome, @ o hostname corrente, com o diretorio de trabalho atual, tudo dentro dos colchetes, seguido pelo $ que é o prompt tradicional.

Encontrando Comandos

Alguns dos comandos que vou descrever em meus post, pode não ser encontrados na sua distribuição ou dependendo do usuario que você estiver logado, ou se digitar o comando errado, irá aparecer uma mensagem similar  a essa:

[amilcar@isis ~]$ comandoinexistente
bash: comandoinexistente: command not found

Algumas das razões para voltar essa mensagem de erro:

  • Você pode ter digitado o comando errado;
  • O comando pode não existir em seu PATH;
  • Pode ser necessario do usuario root para executar o comando;
  • O comando pode nao estar instalado no computador;

Abaixo alguns comandos para extrair informações do comandos que deseja usar:

[amilcar@isis ~]$ type mount   (Mostra o primeiro comando do PATH)
mount is /bin/mount
[amilcar@isis ~]$ ]

[amilcar@isis ~]$ whereis mount            (Mostra binarios, fontes e manuais)
mount: /bin/mount /sbin/mount.nfs /sbin/mount.cifs /sbin/mount.nfs4 /sbin/mount.ntfs /sbin/mount.ntfs-3g /usr/share/man/man2/mount.2.gz /usr/share/man/man8/mount.8.gz
[amilcar@isis ~]$


[amilcar@isis ~]$ which mount      (procura pelo comando em qualquer lugar da file system)
/bin/mount
[amilcar@isis ~]$

[amilcar@isis ~]$ rpm -qal |grep mount           (encontrar pelo comando em qualquer pacote instalado)
/usr/bin/mmount
/usr/share/man/man1/mmount.1.gz
/usr/share/zsh/4.3.6/functions/_fusermount
/usr/share/zsh/4.3.6/functions/_mount
/usr/share/zsh/4.3.6/functions/_showmount
/usr/lib64/hal/hal-storage-cleanup-all-mountpoints
/usr/lib64/hal/hal-storage-cleanup-mountpoint
/usr/lib64/hal/hal-storage-mount
/usr/lib64/hal/hal-storage-unmount
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/linux/ncp_mount.ph
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/linux/nfs4_mount.ph
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/linux/nfs_mount.ph
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/linux/smb_mount.ph
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/rpcsvc/mount.ph
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/sys/mount.ph
/sbin/mount.nfs
/sbin/mount.nfs4
/sbin/umount.nfs
/sbin/umount.nfs4
…………………
…………………

[amilcar@isis ~]$ rpm -q --whatprovides tar   (procura pelo pacote que prove o comando)
tar-1.20-23.12.1
[amilcar@isis ~]$

Se o comando que voce procura nao estiver instalado, voce pode fazer a instalação do pacote usando o shell ou GUI:

  • Instalação pelo Shell – digite yast na linha de comandoe siga as orientações do YaST2. Também pode ser instalado via zypper ou ainda com o rpm.
  • Instalação via GUI – pode ser instalado pela versão grafica do YaST2, você vai precisar da senha do root para rodar a aplicação.

Usando o recurso GLS

O recurso de Suporte de Linguagem Global (Global Language Support – GLS)  permite que produtos IBM Informix lide com diferentes idiomas, convenções culturais, e conjuntos de códigos para a Ásia, Africa, Europa, Latino Americano, e países do Oriente Médio.

O recurso GLS permite que você crie bancos de dados usando os diacríticos, de sequência , e convenções monetárias e hora do idioma que você selecionar. Não existe nenhum parametro de configuração no ONCONFIG para o GLS, essas configurações são realizadas nas variaveis de ambiente do sistema.

Em um banco de dados, algumas das tarefas por ele realizado dependem das convenções de linguagem e cultura dos dados que eles manipulam. Por exemplo, o servidor de banco de dados deve classificar dados do Brasil diferentemente dos dados de caracteres coreanos. Uma aplicação Cliente deve exibir a moeda canadense diferentemente da moeda Tailandesa.

Se o servidor de banco de dados Informix ® ou produto cliente inclui o código para executar essas tarefas, cada um precisaria ser escrito especialmente para lidar com um conjuento diferentes de culturas especifica de dados.

Com suporte ao GLS, produtos IBM Informix não precisa especificar como processar informações especificas de cultura diretamente. Informações específicas de cultura reside em um local GLS. Quando um produto IBM Informix necessita de informações especificas de culturas, ele chama a biblioteca GLS,  que acessa o local GLS e retorna as informações para os produtos IBM Informix.

O recurso GLS é uma forma portátil de suporte de informação específicos de culturas. Embora muitos sistemas operacionais oferecem suporte para varios tipos de idiomas, esse suporte é geralmente para o proprio sistema operacional. Não existem ainda padrões para o formato de informações especificas de culturas e idiomas. Esta falta de conformidade significa que se você mover um aplicativo de um ambiente de uma determinada região para uma outra região, talvez seja necessario mudar o suporte de linguagem do sistema operacional.

O recurso GLS pode acessar informações especificas de cultura em um UNIX® e ou no Windows®. Produtos IBM Informix pode localizar as informações de localidade em qualquer plataforma para o qual são portados.

Nota para o Ambiente Windows®
Para que o GLS suporte um local não padrão, a versão do Windows® que voce esta usando tambem deve suportar essa localidade. Ou seja, voce não pode suportar um aplicativo japonês no Windows, a menos que a aplicação esta rodando na versão japonesa do Windows®.
Fim da Nota.

Para utilizar o recurso GLS, as tarefas que voce precisa para realizar depende se você é um administrador de sistemas, administrador de banco de dados, usuario final de um aplicativo, usuario final de um utilitario de servidor de banco de dados ou desenvolvedor de aplicações.

Função Tarefas
Administrador de sistema, administrador de banco de dados, e ou usuario final do aplicativo
  • Para locais não padrão, configure as variaveis de ambientes DB_LOCALE, CLIENT_LOCALE, e SERVER_LOCALE.
  • Para customizar os formatos par asuarios finais, configure as variaveis de ambientes GL_DATE, GL_DATETIME e DBMONEY. Para o Informix SQL/C você pode configurar a variavel DBTIME ao inves da variavel GL_DATETIME.

 

 
  • Para configurar um ambiente GLS para Informix ESQL / C, configure as variáveis ​​de ambiente  CC8BITLEVEL e ESQLMF.
  • Para executar uma configuração adicional para o ambiente GLS, definir as variaveis de ambiente DBLANG e GLS8BITFSYS.

 

sexta-feira, 13 de janeiro de 2012

Locale em Informix

Locale

A GLS ou descrição locais (Locale) é um conjunto de arquivos que contêm informações específicas para uma determinada língua e cultura:

  • O nome do conjunto de códigos que os dados do aplicativo usa;
  • A ordem de agrupamento a ser usado para dados de caracteres;
  • O formato em que diferentes tipos de dados aparece para usuários finais;

O locale padrão é a localidade que a instalação do Windows ® utiliza. Por exemplo, Instalações do Windows em Inglês dos EUA usam o locale en_us.1252.

Caracteres de Byte Único

Esta publicação representa caracteres de byte único como uma série de letras minúsculas. O formato para a representação de um caractere de byte único é:

a                                                                                                                                                                                                                               

Aqui a representa qualquer caractere de byte único, não para a letra "a" em si.

O formato para a representação de uma seqüência de caracteres de byte único é a seguinte:

a b c d e ……….z                                                                                                                                                                                                       

Aqui a representa o primeiro caracter e z representa o ultimo caractere da sring. Por exemplo, se a string informix consiste de oito caracteres de byte unico, o seguinte formato representa essa string de 8 caracteres abstratamente:

abcdefgh                                                                                                                                                                                                                 

Caracteres Multibyte

Não é a ideia dessa publicação tentar mostrar a aparencia real de carecteres multibyte no texto, exemplos ou diagramas. Em vez disso, a convenção a seguir mostra como caracteres multibyte são armazenados abstratamente:

A1……………An                                                                                                                                                                                                                                                                                                                   

De um a quatro letras maiusculas identicas, cada um seguido por um numero diferente sobrescrito, representa um caractere multibyte. Os sobrescritos mostram o byte n do caracter multibyte, onde n tem valores entre dois e quatro, por exemplo, os seguintes simbolos representam um caractere multibyte que consiste de dois bytes:

A1A2                                                                                                                                                                                                                                                                                                                                       

A notação a seguir representa um caractere multibyte que consite em quatro bytes (o comprimento máximo de um caractere multibyte):

A1A2A3A4                                                                                                                                                                                                                                                                                                                           

O proximo exemplo mostra uma sequencia de caracteres multibyte em uma instrução SQL:

CREATE DATABASE A1A2B1B2C1C2D1D2E1E2;                                                             

Esta instrução cria um banco de dados cujo nome é composto de cinco caracteres multibyte, cada um dos quais é de dois byte.

Caracteres de byte unico e multibyte na mesma string

Para um conjunto de código multibyte, uma determinada string pode ser composto por caracteres de byte único e multibyte. Para representar essa string mista, esta publicação simplesmente combina os formatos de caracteres multibyte e byte unico. O próximo exemplo representa uma string com quatro caracteres, onde o primeiro e o quarto caracter são byte unico, e o segundo e terceiro caracteres são multibyte que consistem de dois bytes cada um:

aA1A2B1B2b                                                                                       

Caracteres de espaço em branco na String

Espaço me branco é uma serie de um ou mais caracteres que são apresentados como espaço em branco, cada localidade GLS define quais caracteres são caracteres de espaço em branco.

Por exemplo, tanto o TAB (ASCII 9) e no espaço em branco (ASCII 32) pode ser definido como caracteres espaço em branco em uma localidade, mas certas combinação de tecla CTRL e outro caracter pode ser definido como caracteres de espaço em branco em uma localidade diferente.

A convenção para a representação de um espaço de byte unico branco nesta publicação é a letra “s”. A notação a seguir representa um espaço de byte unico branco:

s                                                                                                                                                                                                                                

No conjunto de codigo ASCII, um exemplo de um espçao em branco de um unico byte é o caractere em branco (ASCII 32). Para representar uma string que consiste de dois caracteres ASCII em branco, a publicação utiliza a seguinte notação:

 ss                                                                                                                                                                                                                             


A notação a seguir representa um caractere de espaço multibyte branco:
s1...sn                                                                                                         
Aqui S1 representa o primeiro byte do caractere espaço em branco, e sn representa o último byte do caractere espaço em branco, onde n pode variar entre dois e quatro. A notação a seguir representa 4-byte de um caractere espaço em branco:
s1s2s3s4                                                                                                        
Entendendo melhor Caracteres de espaços em branco
Combinações de caracteres com espaços em branco podem ocorrer em  strings entre aspas, em colunas CHAR que contêm menos caracteres do que o comprimento da coluna declarada, e em outros contextos. Por exemplo, se uma coluna CHAR(5) em um conjunto de códigos de byte único contém três caracteres, a string é preenchido com dois espaços em branco de modo que seu comprimento é igual ao comprimento da coluna:
abcss                                                                                            
O próximo exemplo representa uma string de cinco caracteres (tres caracteres de dados e dois caracteres em branco à direita) em um conjunto de código multibyte , onde cada um dos caracteres de dados e caracteres  de espaço em branco é composto de dois bytes:
A1A2B1B2C1C2s1s2s1s2                                                                                           
Em algumas localidades, uma string pode conter caracteres espaço em branco de bytes de códigos unico e multibyte. Por exemplo, considere a seguinte seqüência:
abcss1s2sss1s2                                                                                                 
A string tem três caracteres de byte único (abc), um caractere de byte único de espaço em branco (s), um caractere de espaço multibyte branco ( s1s2 ), dois caractere de byte único de espaço em branco (ss), e um character de espaço em branco multibyte (s1s2).