Página seguinte Página anterior Índice

91. Configuração de Software

Vamos personalizar os seguintes arquivos: /etc/profile /etc/bashrc ,.bashrc, .bash_profile, .inputrc, .less, .lessrc, .xinitrc, .fvwmrc, .fvwm2rc95, .Xmodmap, .Xdefaults, .jedrc., .abbrevs.sl, .joerc e .emacs . Novos usuários não devem ser acrescentados até que se tenha completada a configuração do sistema. Os arquivos dot serão colocados em /etc/skel.

91.1 bash(1)

Para se adaptar o comportamento do interpretador de comandos bash, estes são os principais arquivos a serem editados:

Exemplos destes arquivos são mostrados a seguir. Primeiro e mais importante: /etc/profile. É usado para configurar muitas características de uma máquina Linux, como se pode ver nas seguintes seções:


# /etc/profile
# Ambiente global do sistema e programas de inicialização
# Funções e apelidos são definidos em /etc/bashrc
#
# Este arquivo estabelece as seguintes características:
#
#   o caminho
#   o indicador da linha de comandos
#   algumas variáveis de ambiente
#   as cores do comando ls
#   o comando less
#
# Os usuários podem alterar estas configurações e/ou acrescentar outras nos 
# arquivos $HOME/.bash_perfil
#
# estabelecendo um caminho adequado

echo $PATH | grep X11R6 > /dev/null
if [ $? = 1 ] ; then   # adicionando entradas ao PATH
  PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
fi

# notificar o usuário: ambiente ou ausência de um nos acessos. Caso haja um 
# interpretador de comandos, então o indicador será azul;
# senão será magenta. O indicador de superusuário será vermelho.

USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44
else
  COLOUR=45
fi

if [ $USER = 'root' ] ; then
  COLOUR=41
fi

# utilizar um caractere de fuga real ao invés de ^[. Para fazer isto:
# emacs: ^Q ESC   vi: ^V ESC   joe: ` 0 2 7   jed: ` ESC
# Remover `;1' caso não se queira utilizar "negrito".
ESC=^[
PS1='$ESC[$COLOUR;37;1m$USER:$ESC[37;40;1m\w\$ '
PS2="Continue> "

# por favor, sem arquivos de erro de kernel

ulimit -c 0   

# configurando a umask

if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
  umask 002
else
  umask 022
fi

# algumas variáveis
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL EDITOR HOSTNAME HISTSIZE HISTFILESIZE

# comando ls em cores

eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -s -T 0 --color=tty'

# personalizar o less

LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
VISUAL=jed
LESSCHARSET=latin1
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET

for i in /etc/profile.d/*.sh ; do
  if [ -x $i ]; then
    . $i
  fi
done

Este é uma exemplo do arquivo /etc/bashrc:


# /etc/bashrc
# Sistema de funções amplas e nomes alternativos
# Itens ambientais entram em /etc/profile

alias which="type -path"
alias d="ls"
alias dir="d"

Este é um exemplo do arquivo .bashrc:


# $HOME/.bashrc
# Fonte de definições globais 

if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi

# isto é necessário para notificar o usuário que ele está em um 
# ambiente de trabalho sem acesso à execução de comandos

if [ "$GET_PS1" = "" ] ; then
  COLOUR=45

# colocar um caracter de saída real ao invés de ^[
  ESC=^[
  PS1='$ESC[$COLOUR;37m`whoami`:$ESC[37;40m\w\$ '
  export PS1
fi

# Nomes alternativos

alias cp='cp -i'
alias l=less
alias lyx='lyx -width 900 -height 700'
alias mv='mv -i'
alias rm='rm -i'
alias x=startx

# Algumas funções úteis

inst()        # Instalar um arquivo .tar.gz no diretório atual.
{ gzip -dc $1 | tar xvf - }

lz()          # Listar o conteúdo de um arquivo .zip.
{ unzip -l $* }

lgz()        # Listar o conteúdo de um arquivo .tar.gz.
{
  for file in $* ; do
    gzip -dc ${file} | tar tf -
  done
}

tgz()        # Criar um arquivo .tgz com zip
{
  name=$1 ; tar -cvf $1 ; shift
  tar -rf ${name} $*
  gzip -S .tgz ${name}
}

Este é um exemplo do arquivo .bash_profile:


# $HOME/.bash_profile
# Uso de variáveis específicas e programas de inicialização
# Este arquivo contém configurações definidas pelo usuário que alteram
# aquelas presentes em /etc/profile

# Obtendo os nomes alternativos e as funções

if [ -f ~/.bashrc ]; then
  GET_PS1="NO"  # não altera as cores do indicador de linha de comandos
  . ~/.bashrc
fi
    
# estabelecendo alguns diretórios `padrões'
# exemplos que devem ser adaptados ao sistema do usuário 

export CDPATH="$CDPATH:$HOME:$HOME/texto:$HOME/texto/geologia"

# arrumando a tecla de retorno do rxvt 2.45
if [ "$COLORTERM" != "" ] ; then
  stty erase ^?
  ESC=^[             # usa um caracter real de fuga ao invés de ^[
  echo -n "$ESC[36l"
fi

Este é um arquivo de exemplo do .inputrc:


# $HOME/.inputrc

# chaves de ligação
"\e[1~": início de linha
"\e[3~": apagar caracter
"\e[4~": fim de linha
# (F1 .. F5) são "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"

set bell-style visible          # sem som
set meta-flag On                # permite entradas de 8-bits (ou seja
                                # caracteres acentuados)
set convert-meta Off            # não separa caracteres de 8 bits
set output-meta On              # lista caracteres de 8 bits corretamente
set horizontal-scroll-mode On   # rola linhas de comandos longos
set show-all-if-ambiguous On    # após a tecla TAB ser pressionada 

Para fazer as teclas de retorno e apagar funcionarem corretamente em xterm e outros aplicativos X11, faz-se necessária a aplicação do seguinte roteiro:

rxvt é um pouco mais complicado, já que algumas das opções em tempo de compilação alteram o seu comportamento. Vide o .bash_profile acima.

Mais informações podem ser encontradas nas páginas de manual on-line de bash(1) e readline(3).

91.2 ls(1)

O ls pode mostrar uma lista de diretórios usando cores para realçar os diferentes tipos de arquivos. Para capacitar estas características, acrescente as seguintes linhas ao arquivo /etc/profile:

eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'

(Caso o arquivo /etc/DIR_COLORS não exista, deve ser removida a referência a ele na primeira linha). Isto estabelece a variável de ambiente LS_COLORS que contém a lista de cores configurada em /etc/DIR_COLORS. Nota: isto não funciona com versões do rxvt anteriores à 2.21. Ao invés disso pode ser usado o xterm . Parece que rxvt tem um problema, que não permite herdar o ambiente corretamente em algumas circunstâncias.

O ls da Caldera não tem cores, mas há um equivalente color-ls, que pode ser acrescentado ao arquivo /etc/bashrc:

alias ls="color-ls $LS_OPTIONS"

91.3 less(1)

Com este excelente paginador é possível folhear não apenas arquivos de texto puro, mas também arquivos compactados no formato gzip, arquivos zip e tar, páginas do manual e o que mais se tiver. Sua configuração envolve alguns passos:

91.4 emacs(1)

Não uso o emacs, por isso tenho somente um conselho para dar. Algumas distribuições do emacs não vêm pré-configuradas para cores e realce de sintaxe. Deve-se então inserir o seguinte no arquivo .emacs:

(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

Isto funciona somente no X11. Deixo para o usuário a tarefa de examinar a documentação do emacs para descobrir como adaptá-la às suas necessidades -- potencialmente isso pode levar meses de programação...

91.5 joe(1)

Algumas pessoas relataram que o editor joe funciona com cores em X11, mas não em terminais tty. Além disso, algumas teclas especiais não funcionam. Até onde eu saiba, ninguém descobriu a solução para o pequeno incômodo anterior.

Caso este seja um problema para o leitor, uma solução rápida e deselegante, é a seguinte:

~$ export TERM=vt100
~$ joe arquivo (edita o arquivo)
~$ export TERM=linux

91.6 jed(1)

Este é o meu editor favorito: ele faz o que eu preciso, é mais leve e mais fácil de configurar que o emacs e em minha opinião emula outros editores superiores. Muitos usuários em minha universidade querem jed para emular o EDT, o editor de sistemas VMS.

Os arquivos de configuração do jed são chamados .jedrc e /usr/lib/jed/lib/*; o anterior pode ser adaptado de jed.rc.

91.7 efax(1)

Este pacote é provavelmente o mais conveniente para o envio e recebimento de faxes. Deve-se adaptar o programa /usr/bin/fax nos seguintes parâmetros:

91.8 TeX e Amigos

Presumindo-se que se tenha acesso à uma distribuição do teTex, nestes casos:

91.9 PPP

Assumindo-se que o kernel tenha o suporte compilado a PPP + TCP/IP, a interface local de rede esteja habilitada, o pacote pppd esteja disponível e corretamente instalado e que o acesso como superusuário está disponível, pode-se seguir as instruções aqui mencionadas. Obviamente, o PSI - Provedor de Serviços Internet, deverá suportar conexões PPP.

Existem duas maneiras para configurar o PPP: a) configuração manual; b) um programa de configuração automática.

Qualquer opção escolhida, necessita das seguintes informações:

A configuração manual é um trabalho penoso, pois trata da edição de arquivos e da gravação de programas. Não é muito trabalhosa, mas é fácil cometer-se erros, sendo que iniciantes podem facilmente se intimidar. O COMO FAZER PPP está à disposição para sanar as dúvidas mais comuns. Alternativamente, existem ferramentas que pedem as informações acima e fazem todo o trabalho.

Certamente uma saída pode residir em se pedir suporte a quem já esteja conectado ou na utilização de uma das seguintes ferramentas:

91.10 Cliente POP

Para recuperar a correspondência de um servidor POP, pode-se usar um cliente POP como fetchpop ou fetchmail. O último é mais avançado e é provavelmente a única opção caso o servidor PPP do PSI não reconheça o comando "LAST". Eles estão disponíveis em ftp://metalab.unc.edu/pub/Linux/system/mail/pop.

Para se configurar estes clientes deve-se observar o seguinte:

91.11 Sistema X Window

Uma vez que o X Window esteja funcionando (placa de vídeo certa, etc.), existem infinitas possibilidades de configuração, dependentes do gerente de janelas que se esteja utilizando. De qualquer maneira, a tarefa se resume na edição de um ou mais arquivos ASCII no diretório pessoal. Quanto ao gerente de janelas:

Além disso, certifique-se que há um arquivo .xinitrc próprio. Por exemplo:

#!/bin/sh

# $HOME/.xinitrc

# estabelecendo algumas teclas corretamente

usermodmap=$HOME/.Xmodmap 
xmodmap $usermodmap

xset s noblank  # desliga o salvador de tela
xset s 300 2    # salvador de tela inicia depois de 5 minutos 
xsetroot -solid "medium blue" &
 
# o rxvt salva muita memória, mas versões anteriores a  2.21 têm problemas
# que afetam as teclas e a maneira pela qual o ambiente é herdado. Deve ser  
# atualizada ou substituída pelo xterm.

xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \
-title "Color xterm" -geometry 80x25+150+0 &

fvwm95-2
 

91.12 Fortran

Na minha experiência, caso se precise de Fortran, uma boa alternativa para g77 é o tradutor Fortran para C f2c e a interface yaf77.

Pode-se obter yaf77-X.Y.tgz a partir de ftp://metalab.unc.edu/pub/Linux/devel/lang/fortran .

91.13 Configurações dos Usuários

É aconselhável que novos usuários tenham alguns arquivos de configuração prontos quando eles forem criados no sistema. Devem ser colocados os seguintes arquivos no diretório /etc/skel: .bashrc .bash_profile .bash_logout .inputrc .less .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc .abbrevs.sl. joerc .emacs

Note-se que o .pinerc não pode ser completamente adaptado. Certifique-se que pelo menos os campos user-domain, smtp-server e nntp-server estejam propriamente configurados.

91.14 Atualização

Ao se atualizar uma máquina, lembre-se de salvar antes alguns arquivos adicionais. Alguns deles são: /etc/X11/XF86Config, /usr/bin/fax, ...


Página seguinte Página anterior Índice