Running GNOME Terminal From a Zone
By bleonard on Aug 29, 2011
As I've mentioned before, I VPN into the Oracle Intranet from within a zone. Once I establish the VPN connection, I'm no longer able to SSH into the zone, which is a slight drag if I'd like to open a new terminal window. The solution is to launch a new GNOME terminal window from within the zone. However, this wasn't without some minor hurdles to clear, so I'm documenting the process for future reference.
I'm assuming your zone already has a user account and the X authority file utility installed so you can launch X applications. If not, follow Steps 2 and 3 from the entry Running Firefox From a Zone.
Of course, GNOME Terminal needs to be installed:
bleonard@myzone:~$ sudo pkg install gnome-terminal Packages to install: 1 Create boot environment: No Services to restart: 2 DOWNLOAD PKGS FILES XFER (MB) Completed 1/1 80/80 2.1/2.1 PHASE ACTIONS Install Phase 160/160 PHASE ITEMS Package State Update Phase 1/1 Image State Update Phase 2/2
At this point, you'd like to think you could just launch gnome-terminal, but alas:
bleonard@myzone:~$ gnome-terminal ** ERROR:terminal-app.c:1450:terminal_app_init: assertion failed: (app->default_profile_id != NULL) Abort (core dumped)
It turns out you also need to install the SMF services responsible for updating the GNOME desktop caches (I've already filed an issue for this):
bleonard@myzone:~$ sudo pkg install desktop-cache Packages to install: 8 Create boot environment: No Services to restart: 5 DOWNLOAD PKGS FILES XFER (MB) Completed 8/8 3125/3125 13.5/13.5 PHASE ACTIONS Install Phase 3566/3566 PHASE ITEMS Package State Update Phase 8/8 Image State Update Phase 2/2
After installing the package, wait a few seconds while the cache is built. You can verify it's complete when the GNOME Gconf Cache Builder service state changes to online:
bleonard@myzone:~$ svcs -l gconf-cache fmri svc:/application/desktop-cache/gconf-cache:default name GNOME Gconf Cache Builder enabled true state online next_state none state_time August 29, 2011 04:50:45 PM EDT logfile /var/svc/log/application-desktop-cache-gconf-cache:default.log restarter svc:/system/svc/restarter:default dependency require_all/none svc:/system/filesystem/local (online)
After which, gnome-terminal should start successfully:
bleonard@myzone:~$ gnome-terminal &
If for some reason you still run into a problem, try refreshing the GNOME Gconf Cache Service:
bleonard@myzone:~$ sudo svcadm refresh gconf-cache