Darling: Execute Aplicações do Mac OS X em Linux !

Mas tu és um daqueles que conhece tecnologia. Vai perguntar a uma míuda qualquer que mal saiba mexer em computadores se gostava de ter um Mac e porquê.
Tens imensa gente que compra Mac por ser Mac.

Isto, o problema é que nem precisa de ser uma miuda qualquer, já que nas faculdades (mesmo de engenharia) vês raparigas e rapazes com Macs e muitos deles só porque sim! Eu não tenho nada contra isso, se podem ter, muito bem e ainda bem para eles, mas depois dizem que o Windows ou o Linux é isto e aquilo quando não sabem enumerar as vantagens/desvantagens do MacOS...

Voltando ao assunto da thread, "mais" aplicações (as que vem do OS X) para Linux é sempre bom!! Mas até estar ao nível do Wine ainda vai levar um belo tempo, penso eu...

Cumps
 
O site do Darling contêm até ao momento cinco aplicações testadas :D, do qual o mais interessante seria o compilador LLVM-GCC ou o programa Unarchiver que é apenas redundante. (Já temos programas nativos no Desktop Linux que são similar, como o Gestor de Arquivos)
 
Seria muito interessante atingir um nível de compatibilidade tão bom ou melhor do que o Wine. É que até deve ser mais fácil visto que Linux é *nix-like e OS X também. Depois claro que o maior problema é a reimplementação das bibliotecas proprietárias do OS X como o Cocoa.
 
A evoluçao deste programa tem sido vagarosa, embora benefecie doutros programas e bibliotecas que sao dependentes do Darling.
O Darling em si implementa um carregador de programas OS X, mas a esmagadora maioria das bibliotecas do Mac OS X foram implementadas elo projecto GNU Step que tem uma equipa bem maior que o Darling.
Mas a falta de coordenaçao entre estes projectos tem impedido uma maior divulgaçao, visto que o GNU Step podia implementar o Cocoa API com maior eficiencia (por ter grandes conhecimentos) e coordenado com o Darling que focaria na mais na emulaçao do userland OpenBSD e IOKit. Em virtude disso, o Darling e´ obrigado a implementar os buracos do GNU Step a respeito das classes do Cocoa API que sao necessarios.
Por outro lado, a (reduzida) equipa do Darling viu-se obrigada ainda a implementar o Carbon API para que varias aplicaçoes funcionem, o que atrapalha os planos para o lançamento de um beta testavel para o Darling.
Apesar destes problemas, e´ possivel correr alguns programas simples do Mac OS X em Carbon e Cocoa API, do qual o seu funcionamento dependera´ da implementaçao das mesmas API.
Embora a colaboraçao seja reduzida, alguns dos potenciais voluntarios chegar a exigir ou a seguir planos de Doninzel que nao fariam muito sentido num software em estado Alpha :(: o suporte a programas PPC, enquanto mal suporta os programas x86!
(Um deles sugeriu que para este fim, bastaria implementar o emulador JIT presente no PearPC, visto que o qemu-ppc e´ pessimo para emular um G3 ou um G4, mas isso deveria ficar numa fase mais adiantada do projecto Darling).
De acordo com a lista escassa de programas testados, programas como o Unarchiver e´ parcialmente funcional, mas um jogo como o World of Warcraft exige imensas bibliotecas em Carbon API que nao estao implementadas. :rolleyes:
 
O projecto deu mais uns passos e publicou as instruçoes actualizadas para instalar o software.
As distribuiçoes testadas sao o Ubuntu 32-bit e o Gentoo/Arch de 64-bit.
Basta seguir as instruçoes indicadas no site do projecto para as efectuar.

No caso do Ubuntu e´ recomendado testar no modo 32-bit ou 64-bit evitando por agora a compilaçao cruzada entre arquitecturas, dado o surgimento de problemas de dependencias.
A ordem de instalaçao e´ relativamente simples:
1. Instala-se as dependencias de programaçao, incluindo o emulador BSD e o git.
2. Instala-se a partir do git, as ultimas versoes do GNU-Step.
2.1 Mas o CoreBase do GNU-Step deve ser instalado a partir do reportorio Darling por este conter patches especiais que ainda nao existem na versao git oficial.
3. Por fim instala-se a partir do git a ultima versao do Darling, e compila-se com o GNU-Make.
4. Se preferir pode instalar o Java e a biblioteca jgis do GNU-Step.

Quando terminar a maratona de compilaçao, deve correr ainda no Terminal o utilitario ldconfig para instalar GNU-Step Environment e o emulador Darling.

Para correr qualquer programa do OS X deve-se usar o comando:
dyld <osx-prog> <arguments>
Ou se usar um ambiente de 64-bits:
dyld64 ou dyld32.
(O autor ainda planeia a opçao dyldppc assim que arranjar algum emulador Power PC que se adapte neste ambiente):002:
 
O projecto Darling avançou um bocadinho e definiu os primeiros milestones, embora continue a ser um programa ainda em estado alpha.
O Darling incluiu agora um fork do GNU-Step, os runtimes do proprio Darling, um driver FUSE para montar DMG, e uma implementaçao do instalador de pacotes PKG (uma herança do BSD).
Por fim, ja´ existe um PPA para sistemas Ubuntu para poder instalar o programa directamente em apenas meia duzia de comandos.
:)

Este PPA instala o Darling-gnustep e o Darling em si, para alem de alguns utilitarios.
A versao inicial foi o Darling v.0.0.1:joker:, e e´ baseado no Git oficial datado de 25 de Agosto de 2013... :002:

Para instalar o Darling 0.1, basta abrir uma janela de linha de comandos e introduzir o seguinte comando:
sudo add-apt-repository ppa:thopiekar/darling

Feito isso, toca a actualizar o sistema:
sudo apt-get update
sudo apt-get upgrade

Por fim, a instalaçao e´ feita com:
sudo apt-get install darling

E depois e´ so´ começar a testar programas Cocoa, Darwin e afins que existam algures...:-D
 
Vai ser bonito é o processo que a Apple vai fazer em cima disto.. Eles vão arranjar qualquer coisa para meter uns extras ao bolso

Se eles não querem saber dos Hackintoshes (desde que não vendam PC's nas lojas com o OSX), como é que vão se importar com uma coisa que é 100% legal?

Portar o Cocoa e as Frameworks todas é que... boa sorte... têm muito trabalhinho pela frente, mais que no Windows...

O problema só será se os utilizadores começarem a "cortar caminho" e a utilizarem os binários distribuídos com o OSX em vez de arranjarem uns equivalentes, aí sim, já se torna ilegal e imoral.


@Arucard1983, não sei onde foste buscar essa, mas o GNUStep está muito longe do Cocoa atual, que até lançaram um crowd funding para os apoiar... esses "truques" que falaste, só funciona se só utilizares as interfaces disponibilizadas no GNUStep...
 
Experimentando um programa que ainda não funciona no Darling (The Unarchiver), pode ver a diferença do log entre o este programa e o Wine:

$ sudo sysctl -w vm.mmap_min_addr="0x1000"

$ dyld The\ Unarchiver.app/

O output...

2013-09-22 17:04:42.516 The Unarchiver[4058] File NSBundle.m: 880. In +[NSBundle(Private) _addFrameworkFromClass:] Could not find framework UniversalDetector in any standard location
dyld: Cannot execute binary file: Symbol not found: _kLSItemQuarantineProperties

Mas o mais curioso é que o Darling cria logo uma pasta "Library" dentro da pasta de utilizador, mas não a pasta "Applications", que é normalmente o local donde os programas do Mac OS X são instalados... :005:
 
Desenterrando o tópico...

Após um ano de trabalho no projecto Darling (que está associado ao GNUStep), ganhou um site oficial cujo nome não deixa de ser similar ao Wine...:rolleyes:
http://www.darlinghq.org/

De acordo com o LubosD (o autor do projecto), o loader (Darling) em si está adequadamente funcional (mas falta um PPA oficial, pois a versão presente no Ubuntu não contêm alguns utilitários :confused: como o DMG mount), e os programas compatíveis dependem da implementação do GNUStep (já houve uma campanha para financiar o GNUStep de modo a ser compatível com o Cocoa API presente no Mac OS X 10.6, mas só obteve metade do pretendido.)
Na prática, é a falta de frameworks que torna o uso do Darling limitado, pois não é difícil arranjar um pequeno programa que não funcione.
(E acaba por compensar a compilação a partir do código-fonte do Darling e do GNUStep para instalar o maior número de frameworks possíveis).

No entanto, a presença do site "oficial" já contêm maior documentação sobre o funcionamento do Mach-O loader, e da lista de funções a implementar. Falta é uma lista de aplicações testadas mais abrangente, e talvez um fórum, para que tenha maior participação para o desenvolvimento do software. (E talvez um teste no AutoCAD ou Maya para servir de motivação para implementar o maior número de frameworks).

Traduzindo a lista de TODO críticas seria:

Melhor implementação do Mach API (não significa implementar/clonar o kernel Mach no Linux!)
Criar programas que usem syscalls Mach/BSD directamente para verificar se o libbsd e o libmach funcionam, e diagnosticar erros.
Implementação do Core Audio, priorizando os frameworks AudioToolbox e AudioUnit, pois pelo menos os programas do OS X que usem o áudio (mpg123) necessitam destas duas bibliotecas...
Suporte directo de dispositivos de entrada no IOKit :rolleyes:
Implementação do Core Video e suas dependências do OpenGL (jogos)
Extender a implementação do Core Services (File Manager é um exemplo crítico...)
Outros bugs indicados no GitHub

Também lançou a possibilidade de integrar o Qt como alternativa ao GNUStep-gui...
 
Após um longo ano de estudo e experiências, LubosD considerou o GNUStep-gui ineficiente para o bom funcionamento do Darling e optou por usar o toolkit Qt para implementar a framework (essencial) Appkit. Ele espera que desta vez, os programas mais simples do OS X possam funcionar (incluindo os de linha de comando), pois até agora somente alguns tech-demos usando o GNU-Step corriam com o Darling.
(No entanto, devemos alertar que é requerido com 90% de certeza que os eventuais contribuidores para o projecto devem usar uma versão de 64-bit do Linux, pois a maioria do software para o OS X já é de 64-bit.)
 
O projecto do Darling teve que ser reformatado para puder ser minimamente viável, pois uma das falhas comeditas no início deste projecto era tentar emular as diferentes bibliotecas do sistema usando as funções do libc do Linux, o que revelou ser ineficaz e propenso a falhas. Após mais de um ano de implementação, o grosso modo do desenvolvimento foi basicamente a implementação da bilioteca libsystem que é precisamente o equivalente ao libc. De resto, o site do projecto ganhou por fim uma conta partilhada para que queira contribuir possa ajudar no seu desenvolvimento.
https://github.com/darlinghq
 
Após alguns meses de trabalho, o Darling ganhou a primeira (?) versão minimamente funcional (?)... :002:

O Darling agora contêm...
- Um módulo de kernel que emula o kernel Mach
- Um sistema de chroot similar ao Wine, designado DPREFIX, similar ao WINEPREFIX: A pasta /home é montada de forma similar ao Mac OS X.
- Um conjunto de utilitários de linha de comando similares ao Mac OS X, incluindo suporte para imagens DMG e pacotes PKG :004:
- Um fork do GNUStep para o suporte ao Cocoa, que na prática está a evoluir numa implementação própria, ainda não muito funcional (Se é que funciona) :D
- O sistema recomendado para testes passou a ser o Debian.

1. Instalação.
- Suporte para programas de 64-bits do OS X:
$ sudo apt-get install cmake clang bison flex linux-headers-amd64 xz-utils libfuse-dev libxml2-dev libicu-dev libssl-dev libbz2-dev zlib1g-dev libudev-dev git libpulse-dev libasound2-dev libavresample-dev libavformat-dev libavcodec-dev
- E para programas de 32-bit (Em Linux de 64-bit)
$ sudo apt-get install libc6-dev-i386 libudev-dev:i386 lib32stdc++-4.9-dev libpulse-dev:i386 libasound2-dev:i386 libavresample-dev:i386 libavformat-dev:i386 libavcodec-dev:i386

2. Transferência (Invoca todos os módulos anexos!)
$ git clone https://github.com/darlinghq/darling.git
$ cd darling
$ git submodule init
$ git submodule update

3. Actualização
$ git pull
$ git submodule init
$ git submodule update

4. Compilação das bibliotecas base
$ cd darling
$ mkdir -p build/x86-64
$ cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86_64.cmake -DFRAMEWORK_COREAUDIO=On
$ make
$ sudo make install

5. Compilação do módulo de kernel
$ cd ../../src/lkm
$ make
$ sudo make install

6. Compilação das biliotecas de 32-bit
$ cd darling
$ mkdir -p build/i386
$ cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86.cmake -DFRAMEWORK_COREAUDIO=On
$ make
$ sudo make install

7. Instalação
$ sudo modprobe darling-mach
$ sudo chmod a+rw /dev/mach
$ darling shell echo Hello world
(A última parte instala os pacotes, e mostra o Hello World)

Para entrar na shell do Darling, basta invocar:
$ darling shell
E muda para a shell compatível com o Mac OS X. :001:
A localização padrão do DPREFIX (sem surpresa!) encontra-se em ~/.darling

- Para (tentar) instalar software a partir de um pacote PKG: (Exemplo do site: Midnight Commander 4.8.7)
$ darling shell
# installer -pkg mc-4.8.7-0.pkg -target /

- Alternativamente, pode instalar programas a partir de imagens DMG. O exemplo do site foi o compilador clang do XCode 7.2, do qual embora não seja 100% funcional, pode usar o compilador directamente. (Pode igualmente usar o OSXCross para instalar um cross-compiler nativo para Linux que compile para o Mac OS X: https://github.com/tpoechtrager/osxcross)
$ darling shell
# hdiutil attach Xcode_7.2.dmg
# cp -r /Volumes/Xcode_7.2/Xcode.app /Applications
# export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
# echo 'void main() { puts("Hello world"); }' > helloworld.c
# /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang helloworld.c -o helloworld
# ./helloworld

E por fim, temos um "Mac OS X" dentro do sistema Linux. Para programas Windows temos o Wine.
Para programas Android dentro do sistema Linux, já existe um projecto ao estilo "Wine": shashlik
https://github.com/shashlik
 
Por fim acabei por fazer uma instalação nova do Darling, usando directamente o código-fonte... :002:

Pelo menos na máquina Ubuntu que normalmente uso (Um Intel i7), compilar o Darling só leva uns cinco minutos! :002:

Mas existem mais dependências do que as indicadas pelo site... Apesar das aplicações Carbon/Cocoa não serem oficialmente suportadas (Salvo alguns tech-demos para testes), pede os pacotes dev do toolkit Qt5, pois o fork do GNUStep do Darling aparenta estar a caminhar para uma transição para o Qt5 :002:.
Isto significa que o fork próprio do GNUStep fique apenas para o Core Runtime, e as API Cocoa e Carnon sejam re-escritas como wrappers para o Qt5, de forma a esquivar das dependências do X11, Wayland ou Mir (Se não o DirectFB, que só é hoje usado em sistemas embebidos, regra geral quando só existe uma única aplicação gráfica lançada automaticamente pelo kernel Linux).

Além disso ainda penei com o módulo de kernel que deve ser associado simbolicamente com este comando...
$ sudo ln -s /lib/modules/4.2.0-27-generic/extra/darling-mach.ko /lib/modules/`uname -r`
(Trocando cada vez que sai um novo kernel! :rolleyes:)


Dito e feito, quando entro no chroot virtual do Darling (Um DPREFIX), invoca o binário Mach-O do bash (Já compila nativamente para Mach-O, uma série de comandos de terminal decentes, incluindo o hdiutil para montar discos DMG! :Winkani:).

Também ir aos sites de pacotes GNU (MacFink, Rudix, e similares) e instalar é fácil se o pacote estiver no formato pkg. Instalei uma série de pacotes destinados para o El Capitan ou Yosemite que fosse exclusivamente de linha de comando e todos funcionaram... :o

Ainda que a emulação do OS X do Darling fique na versão Mountain Lion, pois os comandos mostram:
$ uname -a
Darwin hellsing 12.0.0 Darwin Kernel Version 12.0.0 x86_64

Agora para instalar os compiladores gcc e clang por vias de terceiros (Arranjar o XCode sem licença da Apple é ilegal), existe uma maneira legal...
Basta ir ao site oficial do clang (Que é de certa forma compatível com as opções do gcc) e transferir o seguinte ficheiro binário (Ver se a versão é para Mac OS X) em...
http://llvm.org/releases/download.html

E fazer o untar para os sítios certos... Coisa que ainda não consegui corrigir adequadamente... :002:
(O compilador clang funcionou sem espinhas, mas não acerto o PATH para os header files...)
Sem ter o clang a funcionar, muitas das funcionalidades do MacPorts, Fink (mas do Rudix não é crítico, por usar o formato de pacotes binários PKG) simplesmente não vão funcionar... :(

Embora não suporte ainda aplicações Cocoa, o progresso já é esmagador... Programas de Terminal funcionam sem espinhas, nem spam de erros como acontece no Wine com o MSYS2 (Que só corre com o Wine Staging com hacks activos). Na verdade, os binários Mach-O de 64-bit funcionam tão bem como os nativos Linux! :n1qshok:
(É um sistema Mach-BSD emulado sobre o Linux, dois sistemas UNIX aparentados)

Também o DPREFIX são não muito diferentes do chroot de um sistema Linux noutro, pois temos as directorias /usr, /bin e /home como habitualmente. Um /system-root para o / nativo do Linux.
Mas vemos o /Applications, /System/Library e /Users característicos do Mac OS X.

Portanto, o meu sistema Linux já corre directamente e nativamente programas do Linux, Windows (Wine Staging) e Mac OS X (Darling), embora neste último sirva mais como ferramenta de cross-compiling, até que termine o framework Appkit que permita correr programas GUI.
 
Apesar de tudo, para quem queira compilar em sistemas Linux, para o Mac OS X fica bem melhor servido com o osx-cross:
https://github.com/tpoechtrager/osxcross

Do qual necessita de arranjar, seja qual for o método, o XCode 7 e depois usar o script para criar os compiladores cruzados. :rolleyes:
(Mas pode usar o utilitário darling-dmg para montar o ficheiro do XCode 7 directamente no sistema Linux).
 
Há duas aplicações para OS X que gostava de correr em Linux. O ImageOptim e o Skitch. As duas aplicações são gráficas e consegue-se fazer o mesmo em Linux, mas dá muito mais trabalho. O bom destas duas aplicações é a simplicidade.
 
Neste momento, o Darling alcançou o primeiro estágio beta, dado que a sua estrutura básica foi implementada.
Por agora, é operado pelo Terminal, usando o programa darling, que cria um DPREFIX, similar ao WINEPREFIX do wine, contendo um género de rootless chroot, e inicia uma série de programas que dão suporte ao emulador.
Lamentavelmente, o suporte a aplicações gráficas não são oficialmente suportadas, embora seja presentemente (para além do CoreCrypto, que é tão crítico :rolleyes: como o AppKit) a ser implementado.

O Darling, actualmente, ao ser inicializado, cria um Virtual Container, que por sua vez carrega um módulo de kernel para a emulação das syscalls Mach e BSD, e depois passa o controlo para as daemons intrínsecas do Darling, como o launchd, imitando o arranque o Mac OS X. Por regra, é apresentado uma shell Bash, embora seja um executável Mach-O ou híbrido ELF a correr sobre o emulador.

Digitando uname -a dentro do Bash do Darling devolve:
nosferatu@hellsing:~$ darling shell
Loaded the kernel module
Bootstrapping the container with launchd...
Darling [/home/nosferatu]$ uname -a
Darwin hellsing 16.0.0 Darwin Kernel Version 16.0.0 x86_64
Darling [/home/nosferatu]$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.12
BuildVersion: Darling
Darling [/home/nosferatu]$

Embora a sua inicialização já seja simples, a sua instalação ainda exige a compilação directa, o que no meu caso não foi muito difícil.

Pelo menos, já se consegue usar o Rudix de forma simples, usando as instruções do site, e instalar os programas de forma normal.
 
Um resumo das instruções de compilação e uso do Darling...:rolleyes:

Para instalar o Darling deve ter o Clang 3.8, ou superior, e ter uma distro Linux x86-64 de 64-bits. Programas de 32-bit são suportados, mas correr em sistemas Linux de 32-bit não é suportado, devido ao modo pouco convencional que o kernel do Mac OS X alocava a memória. Isto pode ser explicado na página: https://wiki.darlinghq.org/documentation:commpage
(Além disso, a Apple já assume que 99% dos Macs e softwares são de 64-bits)

1º Instale as dependências (Ubuntu):
$ sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libudev-dev pkg-config libc6-dev:i386 linux-headers-generic gcc-multilib libcap2-bin libcairo2-dev libgl1-mesa-dev libtiff5-dev libfreetype6-dev libfreetype6-dev:i386

(Debian):
$ sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libudev-dev pkg-config libc6-dev-i386 linux-headers-amd64 libcap2-bin git libgcc-5-dev:i386 libcairo2-dev libgl1-mesa-dev libtiff5-dev libfreetype6-dev libfreetype6-dev:i386

2º clone o git oficial numa directoria à sua escolha...
git clone --recursive https://github.com/darlinghq/darling.git

3º Compilação, que vai demorar um bom bocado !
$ cd darling
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../Toolchain.cmake
$ make
$ sudo make install

4º Instalação do módulo do kernel, que por fim já funciona direito!
$ make lkm
$ sudo make lkm_install

5º Se tive problemas na instalação após a compilação (versões alfa do Darling), apague a seguinte directoria antes de continuar a instalação:
$ sudo rm -rf /usr/local/libexec/darling

Para usar o ambiente Darling, basta invocar o comando no Terminal:
$ darling shell

Que carrega os ficheiros do emulador, cria o DPREFIX caso não exista (o valor padrão é ~/.darling) que contêm os ficheiros do fake-chroot do Mac OS X, e depois carrega uma série de binários Mach-O nativos (compilados durante a instalação, usando o Clang nativo) como o launchd, e a versão Mac OS X do bash 3.2, que é o ambiente virtual do Darling.

Podemos ver que a versão emulada do Mac OS X é a versão 10.12 (Sierra), ou Darwin 16.0:
# uname -a
Darwin hellsing 16.0.0 Darwin Kernel Version 16.0.0 x86_64

Também é possível correr binários ELF Linux nativos dentro do emulador (!):
# /Volumes/SystemRoot/bin/uname -a
Linux hellsing 4.10.0-32-generic #36-Ubuntu SMP Tue Aug 8 12:10:06 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Por agora é seguro usar o Rudix para instalar pacotes binários, para isso basta aplicar a sequência de comandos:
# curl -s https://raw.githubusercontent.com/rudix-mac/rpm/2016.12.13/rudix.py | sudo python - install rudix

Resultando...
Código:
Downloading rudix-2016.12.13-0.pkg...
######################################################################## 100,0%
installer: Package name is Rudix Package Manager 2016.12.13
installer: Installing selected choice rudix-install
installer: Installing package org.rudix.pkg.rudix version 2016.12.13-0 (100 KB)
installer: Extracting files
installer: Installation complete

Para instalar o p7zip para Mac OS X. basta aplicar o comando:
# sudo rudix install p7zip

Outros utilitários como o compressor RAR para Mac OS X, pode ser transferido do site:
http://www.rarlab.com/rar/rarosx-5.5.0.tar.gz
E descompactado para a directoria /usr/local/bin dentro do DPREFIX, ficando igualmente disponível.

Por agora, o suporte para programas com GUI não são suportados (Estão ocupados com várias frameworks), ou são ainda stubs (O Metal API compila, mas não é usável, exigindo uma layer de compatibilidade entre o Vulkan e o Metal, que falta implementar), mas sem isso, o interesse neste projecto fica um bocado aquém das espectativas. De facto, em muitos programas é necessário o Carbon, noutros o Security do Cocoa somente para funcionar!
De qualquer forma, o projecto já inclui o TextEdit como programa de teste, mas ainda não se revelou a funcionar...
 
Continuando o guia...

O Darling contêm alguns utilitários para a gestão de programas:
installer e uninstaller para instalar ou remover programas em pacotes PKG.

Se tiver um pacote deste género, basta aplicar o comando:
$ installer -pkg mc-4.8.7-0.pkg -target /

Para o remover, utilize o uninstaller, do qual é conveniente usar a opção -list para saber o nome do pacote antes de remover qualquer coisa! (Não está presente no Mac OS X original :002:)

Se tiver ficheiros DMG (Que ainda não têm grande interesse por causa do facto dos programas com GUI ainda não funcionarem... ), pode usar o utilitário hdiutil, que só suporta duas opções: montar e desmontar imagens... :rolleyes:
$ hdiutil attach SomeApp.dmg
(E retoma o path do mount point, como: /Volumes/SomeApp)

Depois use os comandos cp, para copiar o ficheiro desde a origem para a directoria /Applications.
$ cp -r /Volumes/SomeApp/SomeApp.app /Applications/

- O resto dos comandos são quase iguais com os sistemas Linux, pois são os mesmos :D
Temos vim, vi, telnet, ssh, man, ...
Mas não têm o ftp... :joker:
Relativamente aos compiladores, não estão presentes, e pedem a instalação do XCode :(, que funciona (parte dele), mas pode violar os termos da licença... (O Clang pode ser obtido legalmente a partir do site http://releases.llvm.org/download.html, mas depois terá que descompactar tudo à unha!)
 
Back
Topo