Um .dmg
é apenas um disco virtual ("imagem de disco") e, por si só, não tem nada a ver com a instalação.
Quando a imagem de disco contém apenas uma aplicação (normalmente haverá algum texto explicativo pedindo para você arrastá-la para a sua pasta Aplicativos), então todos os arquivos de código e de suporte estão contidos naquele arquivo. O aplicativo é responsável por fazer qualquer configuração no primeiro lançamento e responsável por fornecer um mecanismo de desinstalação se qualquer coisa for instalado posteriormente. Muitos desenvolvedores estão usando a estrutura Sparkle para encontrar e instalar atualizações.
Se a imagem do disco contiver um pacote ( .pkg
ou .mpkg
), esse é um instalador. A execução pode instalar arquivos em qualquer lugar do sistema e executar scripts de pré e pós-instalação, e não há mecanismo de desinstalação ou de atualização interno (o sistema mantém um log de pacotes instalados, portanto, se você executar um pacote de instalação posteriormente para uma versão mais recente do software, ele pode se comportar de maneira diferente do que se tivesse sido uma primeira instalação). Neste caso, também, o desenvolvedor é responsável por desinstalar e responder por atualizações. Desenvolvedores responsáveis instalarão em diretórios padrão ( /Applications
, /Library
e ~/Library
, /usr
, etc.)
Para softwares de linha de comando que você normalmente instala da origem, eu recomendaria um gerenciador de pacotes como MacPorts (minha preferência) ou Fink usando um pacote de instalação. Ambos os gerenciadores de pacotes configuram um diretório independente ( /opt
e /sw
, respectivamente) com todos os arquivos de suporte e código executável do software que instalam (e a maioria dos pacotes o respeita) e adicionam-se ao seu $PATH
. Uma grande vantagem de usar um gerenciador de pacotes é que ele rastreia o software instalado e oferece a capacidade de atualizá-lo ou desinstalá-lo.