Part One: Installation
I'm a hard-core Un*x head and Delphi developer, so the first whiffs of "Delphi on Linux" caused a visceral reaction that has not waned yet. My company pre-ordered Kylix Server back in February. Today (12 March 2001) the nice FedEx lady delivered the package.The box includes:
- Kylix Server disk
- Companion Tools disk
- Evaluation version of SuSE v7.0
- Object hierarchy poster
- Registration card & adverts
- Quick Start manual
- Object Pascal Language Guide manual
- Developer's Guide manual
- Athlon 850MHz
- 512MB RAM
- 2x20GB hard drives configured with soft RAID-1
- RedHat 7.0 with updates
Looking at the object hierarchy poster, a few things catch my eye.
- Extra classes having to do with web development. There are a number of Apache-related classes. (Good. That's why we forked out an extra $700.)
- Some useful-looking classes such as TQueue, TStack, and TStringHash that descend from TOrderedList. (I just implemented a string hash last week. I'm curious how it compares.) Staring at the Delphi 5 poster on the wall again, I can't see these basic computer science constructs. If they're there, I'm just blind. They're trivial to implment, but it's nice to have the building blocks included in the CLX.
- There is not a TWinControl, but a TWidgetControl.
- TFrameControl descends from TWidgetControl. A lot of things shoot off from this. Radio groups, icon view, label, list box, memo, list view, tree view, form, frame, scroll box. Other changes like that.
There is a README file, which one expects to find under Un*x. It basically says to read the PREINSTALL and INSTALL files in order to get stuff running. Fair enough.
PRESINSTALL:
- Big disclaimer at the top: "Certain bugs in common Linux software can cause problems for Kylix or Kylix-developed applications. This document describes some of these bugs, and procedures for detecting and fixing them."
- A list of software used to validate your Linux installation. A note of explaination is due here for Win32 people. Unix is designed to be completely configurable. This can really unnerve people who are used to "one size fits all" Microsoft mentality. It'll probably cause you to gripe and moan at time, as we all do, but as you start to understand the beauty of it, you might start to gripe and moan about Windows as much as I do. ;-)
- Reading through the pre-install requirements, it lists which versions of which libraries are needed. (This is all standard install information for Un*x. Borland has done a nice job adhering fulfilling basic expectations.) Under Windows, you're automatically "upgraded", which sometimes can wreak havoc. Under Un*x a program's documentation will politely inform you what versions you need so you can double-check before hand. Some Win32 people call this "primitive." Un*x heads call it "polite" around mixed company. Privately it's called "don't screw around with my #^@&*# system!"
jamesk@sherizod:~ :-) cd /mnt/cdrom/borpretest/ jamesk@sherizod:/mnt/cdrom :-) ./testsystem Borland Kylix System Compatibility Test Checking loader....OK Checking kernel >= 2.2....OK Checking libc >= 2.1.2....OK Checking libjpeg >= 6.2.0....OK Looks GOOD !!! This system should be able to run Borland Kylix!Hey, I like that message. ;)
INSTALL
Reading the INSTALL file:
- It explains the difference between installing as root and a normal user. (Root is NT Administrator on steroids. Yes, you can totally hose your system beyond repair!) Reading through this, for the average developer there is no reason to not install as root -- unless you don't have root access to your own development workstation.
- Your distribution need not be based on RPM, which is a nice touch.
jamesk@sherizod:/mnt/cdrom :-) sudo ./setup.sh BORLAND KYLIX Checking dependencies... Kernel version >= 2.2.0....OK Glibc version >= 2.1.2....OK X11 Server....OK Libjpeg version >= 6.2.0....OKAnd the license agreement comes up.
Next is the "Global Options" dialog. It includes a drop-down list for
the install path, which defaults to /home/jamesk/kylix
The drop-down list shows standard alternatives:
- /usr/local/kylix
- /usr/kylix
- /opt/kylix
Everything else looks good. Estimated size for the full install is 165MB.
Click on "Begin Install" and... It's loading up the RPMs... and done quite
painlessly. There is a big "IMPORTANT" note that I need to restart X in
order to get the GNOME/KDE menu items to appear. (No biggie. Log out/log
in for the lazy person in my chair.) The "IMPORTANT" note also says
to always start via the menu or from the command line via "startkylix".
Ha! Installation done with no hiccoughs.
OK. The moment of truth... Select Kylix fromt he menu, and... CPU pegged for a second but nothing. That's disappointing.
From the command line:
jamesk@sherizod:~ :-) startkylix
wineserver: mkdir /home/jamesk/.borland/wineserver-sherizod:0 : Permission
denied
VERY strange indeed.
jamesk@sherizod:~ :-) ls -lah .borland/
total 44k
drwxr-xr-x 2 root root
4.0k Mar 12 13:02 ./
drwx------ 42 jamesk jamesk
4.0k Mar 12 13:06 ../
-rw-r--r-- 1 root root
1.5k Mar 12 13:02 .borlandrc
-rw-r--r-- 1 root root
814 Feb 27 19:03 dbxconnections
-rw-r--r-- 1 root root
1.4k Feb 27 19:03 dbxdrivers
-rw-r--r-- 1 root root
1.4k Mar 12 13:02 delphi60dci
-rw-r--r-- 1 root root
9.8k Mar 12 13:02 delphi60dmt
-rw-r--r-- 1 root root
3.0k Mar 12 13:02 delphi60dro
-rw-r--r-- 1 root root
1.2k Mar 12 13:02 delphi60rc
Whoops! I see what happened. My bad. I ran the install program using sudo. sudo can allow a person not logged in as root to execute a program with root privileges. sudo ran the install program as root, but it used my logged-in account to install ~/.borland for me. That was very nice for the install to attempt to initialize ~/.borland for me. I can't fault Borland for this. I didn't follow their explicit directions which stated that I should log in as root. I get bitten by this on occation when I use sudo for installation.
Like I said, this was my bad.
jamesk@sherizod:~ :-) sudo chown -R jamesk.jamesk .borland/
That should fix it. WOW! It's Delphi! ...er... Kylix!
I drop a button on the form, cause the button to set the Caption to 'Hello', hit F9, and everything works smooth as silk.
THANK YOU, BORLAND!!!
Now for some real work.

