Archives de juin 2009
How to work in a Linux VM on a Mac (or Unix familly) ?
Last week, I spend most of my time on a openSUSE VM (I use parallels for information) in order to do some distro specific job on ooo-build (OpenOffice). It was not the best experience I had on Linux, keyboard layout sucks, especially on copy/paste (CMD-C CMD-V do not have relevant replacement solution on Linux) and also the copy/paste generally sucks as I am addicted to JumpCut (clipboard buffering). Then I re-thought about it and found better ways to handle work on a VM and avoid being home sick !! Let me share with you some tips :
- Use remotely !
That’s maybe the main tip, as all others tips are detailed application of these tip. If some of you use to server admin, just treat you virtual machine as just another server. - Do not use a term in the VM use ssh instead .
That’s a start. Why use a terminal in you VM instead of the terminal you are used to ? - Use Xforwarding as much as possible, Macs come with X11.
ssh -X can save you sometime. For example, once connected to my VM, ssh -X user@myvm, I can run soffice with display on the Mac side. - Create shorcuts for ssh connection in ~/.ssh/config
Here is a extract from my ~/.ssh/config :
Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
Host suse
HostName 10.211.55.7
User someUser
You can use it whenever ssh is involed : ssh suse or scp myfile suse:~/someDir
You can also mix that with public key identification instead of the ControlMaster. - Be lazy, create an alias in ~/bash_profile
~/bash_profile is source at the start of a term session, if the file is not present, create it.
alias suse=’ssh suse -X’;export suse - You need something more persistant than a ssh session ? Use screen
screen (man screen), is a terminal emulation allowing you to create session and then detach from it, reatach later on.
basic usage is :
screen -S ascreenname
key binding : ctrl-a ctrl-d # (detach)
screen -r -d ascreename # (retach)
that’s really usefull when you want to create a persistant session or plan to suspend you virtual machine. - You need to access regularly your file from the Mac in your VM ? (vis et versa) Use sshFs
More information about Ssh FileSytem : http://en.wikipedia.org/wiki/SSHFS - Use your favorite text editor.
Mine is BBedit, then I can do things from command line like
bbedit sftp://suse/
I am pretty sure you favorite text editor can do those trick as well. Else check TextWrangler. - Always use your favorite text editor.
I was talking with Thorsten about strange but awesome behaviors of MacOS applications lately, I just learn that MacOS apps using the Cocoa Framework is “able to glean the current display context when run from the shell”.By using this capability, and a custom script, we can use BBedit directly from the virtual machine.
- Let add some lines to the Mac ~/.ssh/config:
Host suseroot
HostName 10.211.55.7
User root
That’s way more friendly if bbedit can edit file on the VM as root. - Let add some lines to the VM ~/.ssh/config:
Host suseroot
HostName 10.211.55.2
User myMacUser
You should also add a config file in /root/.ssh/config if you want to use it from the root account on the VM. - Last step, let create a executable file /usr/bin/bbedit (chmod a+x /usr/bin/bbedit) with this content:
#!/bin/bash
d=`dirname "$1"`
if [[ ! ${d:0:1} == "/" ]]; then d=$PWD/$d; fi;ssh mac 'bbedit -w sftp://suseroot/'$d/`basename "$1"`
Now you can use bbedit as an editor on the VM directly, example : bbedit someFile.
You can even use bbedit (/usr/bin/bbedit) as the standard EDITOR for your virtual machine, thanks to the -w option, example :
export EDITOR=/usr/bin/bbedit
crontab -e - Let add some lines to the Mac ~/.ssh/config:
[that's some amount of awesomeness, maybe update your blog?
]
That’s all (now I really think that’s all), If you see something else, feel free to post some comments.
How to install the SDK and compile the C++ examples on MacOS Intel
This post is a MacOS oriented Hello-world based of this wiki page http://wiki.services.openoffice.org/wiki/SDKInstallation. You can have it in French also http://wiki.services.openoffice.org/wiki/FR/Documentation/Installation_du_SDK.

Good news, to start extending OpenOffice using UNO , like create components or extensions, you don’t necessary need to go trough a full build of the source code (I will talk later about the process) which take once start 6h30 on my MacBook Pro. Today, let’s be lazy.
- Requirements
- first you will need Xcode, that’s a standard dependency when you want to start working with C++ on a Mac, you can get it here : http://developer.apple.com/technology/xcode.html.
- A not so old version of OpenOffice. Idealy a 3.1 : http://openoffice.cict.fr/stable/3.1.0/OOo_3.1.0_MacOSXIntel_install_en-US.dmg. It’s better if OpenOffice is installed in /Applications.
- MacPort, or Fink, two packages manager for MacOS. By the way I think MacPort is better, but I got both. You need one of those to install missing programs if there is some, but you have to customize your path : http://guide.macports.org/#installing.shell.
NB : If you encounter some problem with missing program, dependencies, fell free to ask for help in comments.
- Get the SDK
http://openoffice.cict.fr/stable/3.1.0/OOo-SDK_3.1.0_MacOSXIntel_install_en-US.dmg and you can drag and drop anywhere, that does not matter. - Test the SDK
Open a terminal (Terminal.app or Iterm.app), look for the OpenOffice.org3.1_SDK folder :
cd <....>/OpenOffice.org3.1_SDK
#-- And set the environment. Follow the instruction, nothing special here, just some settings.
./setsdkenv_unix
#-- You will need to execute this command each time you want to work with the SDK.
#-- Now go to examples :
cd examples/cpp/DocumentLoader
#-- and build
make
#-- A few set of instruction will be displayed at the end of the build, Let's follow them. First start OpenOffice
soffice "-accept=socket,host=localhost,port=2083;urp;StarOffice.ServiceManager" &
#-- and execute :
make DocumentLoader.runIf everything went fine, you should see a new document, with the content of OpenOffice.org3.1_SDK/examples/cpp/DocumentLoader/test.odt.
Just enjoy, you can now extend OpenOffice with the SDK. For more information, continue your reading on this page : http://wiki.services.openoffice.org/wiki/SDKInstallation.
