Páginas

9 de mai. de 2007

Sobre o Dash

Muitos não sabem mas o shell padrão do ubuntu não é o famoso Bash,mas o Dash ( Debian Almquist shell (dash) ).O motivo é simplesmente um só: economia!Ele é menor e mais rápido,consome menos recursos,porém tem menos funcionalidade.Por isso existe muita discordância na comunidade quanto ao seu uso ser padrão no ubuntu.

No Debian.org na página que descreve a função de cada pacote o Dash está assim definido:

Package: dash
Description-md5: 383b9a353d116e42f6d70caf3767ca36
Description-pt_BR: O shell Almquist do Debian
"dash" é uma shell de acordo com POSIX muito menor que "bash". Nós
aproveitamos isto para fazer deste shell a shell dos disquetes de
instalação, onde espaço vale ouro.
.
Ele pode ser utilmente instalado como /bin/sh (porque ele executa scripts
de certa forma mais rápido que o "bash") ou como o shell padrão tanto do
superusuário ("root") quanto de um segundo usuário com um userid 0 (porque
ele depende em poucas bibliotecas e consequentemente é menos afetado por
um problema de atualização ou uma falha de disco). Ele também é útil para
checar se um script usa apenas sintaxe POSIX.
.
"bash" é um shell melhor para a maioria dos usuários, já que ele tem
algumas boas funcionalidades ausentes no "dash" e é uma parte
necessária no sistema.

Fonte:http://ddtp.debian.org/translatefiles/sid/main/i18n/Translation-pt_BR

No sistema : /bin/sh é um link para /bin/dash

No Referência Debian tem mais informação sobre Shell,incluindo os diversos tipos.

Explicação do site https://wiki.ubuntu.com/DashAsBinSh sobre o uso do Dash no Ubuntu:

Sumario:

"Change the /bin/sh symlink on Ubuntu systems to point to the dash shell instead of the current bash shell."

Tradução (livre):

Mudar o symlink de /bin/sh em sistemas de Ubuntu para apontar para o Shell Dash em vez do atual Shell Bash

Razão:
Our default shell is currently bash, which is slow and very large as it is intended as a user login shell. While this is good for users, it is not the best shell for running shell scripts; there are far smaller and faster shells that provide POSIX compliance such as dash.

By changing the /bin/sh symlink from bash to dash we can have the best of both worlds.

Tradução (livre):

"Nosso Shell por padrão é atualmente o Bash,que é lento e muito grande,enquanto se prentende isto como um Shell do início de uma sessão do usuário.Quando isto for bom para os usuários,não é o melhor Shell para rodarmos Shell-Script; há os Shell's mais distantes,menores e rápidos que fornecem a conformidade do padrão POSIX,tal como o Dash. Mudando o symlink de /bin/sh do Bash para o Dash nós podemos ter o melhor de ambos os mundos."

Finalmente,na wikipedia (en) tem uma pequena explicação sobre o Dash que nos dá uma idéia bem legal do que se trata e de sua utilidade,a partir daí compreende-se melhor porque os desenvolvedores do ubuntu adotaram-no.

"Debian Almquist shell
From Wikipedia, the free encyclopedia
Jump to: navigation, search

Debian Almquist shell (dash) is a POSIX-compliant Unix shell, much smaller than bash. It requires less disk space but is also less feature rich.

dash is a direct descendant of the NetBSD version of the Almquist Shell (ash). It was ported to Linux by Herbert Xu in early 1997. It was renamed to dash in 2002.

dash executes scripts faster than bash and depends on fewer libraries. It is believed to be more reliable in case of upgrade problems or disk failures.

dash may be used as:

  • shell on the installation floppy disks.
  • root user shell.
  • /bin/sh replacement.
  • a testing environment for shell scripts to verify their compatibility with POSIX syntax.

dash is a modern replacement for ash in the Debian project, and (as of the 6.10 release) is the default /bin/sh in Ubuntu. However, the transition in Ubuntu to making dash /bin/sh has broken numerous shell scripts that relied upon bash-specific functionality, also known as bashisms.

Sources


Traduzido (tradução livre) o texto diz mais ou menos isso:

É um shell POSIX-compliant do Unix, muito menor do que o bash. Requer menos espaço de disco mas é também de característica menos rica.
o Dash é um descendente direto da versão de NetBSD do Almquist Shell (ash).Foi portado para o Linux por Herbert Xu em meados de 1997 . Foi rebatizado para dash em 2002.
O Dash executa scripts mais rapidamente do que o Bash e depende de poucas bibliotecas.Acredita-se ser mais confiável em casos de problemas de upgrade e falhas de disco.

O Dash pode ser usado como:

  • shell na instalação por floppy disks.
  • root user shell.
  • recolocação /bin/sh
  • Um ambiente de teste para que os shell scripts verifiquem sua compatibilidade com sintaxe do POSIX.

O Dash é uma recolocação moderna para o Ash no projeto Debian, e (até à data da liberação do 6.10) é o padrão /bin/sh no Ubuntu.Entretanto, a transição no Ubuntu em fazer o Dash /bin/sh,quebrou numerosos shell scripts que confiaram na funcionalidade bash-específica,conhecidos também como bashisms.

Fonte : http://en.wikipedia.org/wiki/Debian_Almquist_shell


Para terminar aí vai uma dica retirada do PlanetaUbuntu.

Remova o ‘dash’

~$ sudo apt-get remove - -purge dash

Isso é necessário porque alguns make files de compilação usam o /bin/sh que por padrão no Feisty é o ‘dash’, quando deveria ser o ‘bash’. Apenas remover o ‘dash’ do seu sistema vai tornar o bash como padrão. Se você não quer remove-lo então use o comando ’sudo update-alternatives’ para fazer o /bin/sh apontar para /bin/bash. No momento que estou escrevendo este artigo foi impossivel usar update-alternatives para trocar o sh, provavelmente arestas a serem consertados neste release preliminar do Feisty.

fonte:http://hamacker.wordpress.com/tag/ubuntu/

Nenhum comentário:

Postar um comentário