Novo proprietário de Mac aqui, mas usuário de Linux de longa data. Alguém pode me descrever as diferenças entre instalar um software, como o Subversion, a partir de uma imagem .dmg, em vez de compilar e instalar a partir do código-fonte na linha de comando? O software acaba no mesmo local? Que outras diferenças existem, como procedimentos de desinstalação? Quais você consideraria os prós/contras de uma abordagem em relação à outra?
Responder1
A .dmg
é apenas um disco virtual ("imagem de disco") e por si só não tem nada a ver com instalação.
Quando a imagem do disco contém apenas um aplicativo (normalmente haverá algum texto explicativo solicitando que você o arraste para a pasta Aplicativos), então todo o código e arquivos de suporte estarão contidos nesse arquivo. O aplicativo é responsável por fazer qualquer configuração na primeira inicialização e por fornecer um mecanismo de desinstalação, se houver.éinstalado posteriormente. Muitos desenvolvedores estão usando oBrilharframework para localizar e instalar atualizações.
Se a imagem do disco contiver um pacote ( .pkg
ou .mpkg
), isso é um instalador. Executá-lo pode instalar arquivos em qualquer lugar do sistema e executar scripts de pré e pós-instalação, e não há nenhum mecanismo integrado de desinstalação ou atualização (o sistema mantém um registro dos pacotes instalados, portanto, se você executar posteriormente um pacote de instalação para uma versão mais recente do software, ele pode se comportar de maneira diferente do que se tivesse sido uma primeira instalação). Também neste caso o desenvolvedor é responsável pela desinstalação e pelas atualizações. Os desenvolvedores responsáveis instalarão em diretórios padrão ( /Applications
, /Library
e ~/Library
, /usr
, etc.)
Para software de linha de comando que você normalmente instala a partir do código-fonte, recomendo um gerenciador de pacotes comoMacPorts(minha preferência) ouFinkem vez de usar 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 para o software que instalam (e a maioria dos pacotes o respeita) e se adicionam ao seu $PATH
. Uma grande vantagem de usar um gerenciador de pacotes é que ele monitora o software instalado e permite atualizá-lo ou desinstalá-lo.
Responder2
A instalação a partir de um .dmg normalmente é apenas arrastar e soltar em /Applications. A desinstalação é um ponto delicado na experiência do Mac, na minha opinião. Você pode excluir o arquivo de Aplicativos, mas apenas o que está encapsulado no wrapper .app desaparecerá. Quaisquer arquivos de configuração adicionais não desaparecem.
Outro caminho de instalação que você deve considerar éMacPortse/ouFink. Eles são um pouco semelhantes ao apt-get ou yum no mundo Linux. Eles fornecem um utilitário de linha de comando para obter, compilar e instalar software comum. Geralmente é tão simples quanto:
$ sudo port install svn
(exemplo macport)
Responder3
Isto é um pouco complicado, porque dentro do DMG pode haver uma solução simples de arrastar e soltar, ou um.PKG, que pode instalar coisas em qualquer local.Os .pkg normalmente deixam recibos (geralmente em/Library/Receipts), embora o OS X não ofereça uma maneira fácil de gerenciar esses recibos.
Pacifist é um aplicativo útil que examina arquivos .pkg (que muitos aplicativos de linha de comando usam para locais de instalação personalizados) antes da instalação, para que você possa entender exatamente onde as coisas podem ser instaladas. Você pode então determinar se sua versão autocompilada será instalada no mesmo local ou não e se entrará em conflito com as versões do sistema:
Especificamente, você precisará certificar-se de que, caso eles sejam instalados em locais diferentes, seu caminho reflita a versão desejada que você deseja usar. Eu suspeito que o subversion não deve ser problemático com múltiplas versões instaladas... Para Ruby, eu uso um nome ruby19 para o executável ruby para evitar qualquer problema de caminho com código incompatível.
Existe um plugin quicklook menos poderoso, mas gratuito para arquivos .pkg que faz o trabalho básico de mostrar onde as coisas serão instaladas: