Χρήση των CGAL/CGAL-Python στο εργαστήριο Linux
Οι βιβλιοθήκες CGAL/CGAL-Python έχουν εγκατασταθεί στο εργαστήριο Linux και είναι προσβάσιμες από τα μηχανήματα linux{01-12}. Μπορείτε λοιπόν να κάνετε login με τον κωδικό σας και να τις χρησιμοποιήσετε. Για την μεταγλώττιση προγράμαμτος c++ που χρησιμοποιεί τη CGAL αλλά και για τη χρήση της CGAL-Python είναι απαραίτητο να ορίσετε την ακόλουθη μεταβλητή περιβάλοντος (στο bash shell):
export CGAL_MAKEFILE=/home/users/compgeom/lib/cgal/321/make/makefile_i686_Linux-2.6_g++-4.0.3
Για να χρησιμοποιήσετε τα bindings για Python, εκτός της παραπάνω μεταβλητής περιβάλοντος, χρειάζεται να ορίζετε στο πρόγραμμά σας το path για τη βιβλιοθήκη της CGAL-Python. Έτσι λοιπόν πριν κανείς γράψει:
import CGAL
ή κάτι ανάλογο, π.χ.:from CGAL.Kernel import Point_2
θα πρέπει να έχει ορίσει το που θα βρει η Python τη βιβλιοθήκη:import sys
sys.path.append("/home/users/compgeom/lib/cgal_package")
Ακολουθεί ένα πλήρες πρόγραμμα Python που χρησιμοποιεί την CGAL-Python. Αν το αντιγράψετε και το τρέξετε χρησιμοποιόντας τον κωδικό σας θα πρέπει να πάρετε σαν έξοδο όλες τις ακμές μιας τριγωνοποίησης Delaunay με 20 τυχαία σημεία:
import sys
sys.path.append("/home/users/compgeom/lib/cgal_package")
from CGAL.Triangulations_2 import Delaunay_triangulation_2
from CGAL.Kernel import Point_2
from random import *
dt = Delaunay_triangulation_2()
for i in range(20):
dt.insert(Point_2(random(),random()))
for e in dt.edges:
print dt.segment(e)
Χρήση των CGAL/CGAL-Python στο Virtual Machine
Θα σας δωθεί μια minimal εγκατάσταση Debian Etch που περιέχει εγκατεστημένες τις βιβλιοθήκες CGAL/CGAL-Python. Η εγκατάσταση έχει γίνει σε ένα virtual machine που δημιουργήθηκε με το λογισμικό VMware-server έκδοση 1.0.3 (μάλλον θα πρέπει να το εγκαταστήσετε, βρείτε τα αρχεία εγκατάστασης στον υποκατάλογο vmware-server του dvd). Μπορείτε να βρείτε τα αρχεία του virtual machine στο dvd που σας δώθηκε στον υποκατάλογο "Debian Etch". Οι παρακάτω οδηγίες ισχύουν αν χρησιμοποιείτε Windows, όπως και αν χρησιμοποιείτε Linux, για να τρέξετε το λογισμικό VMware-server.
Αρχικά πρέπει να αντιγράψετε όλο τον κατάλογο "Debian Etch" κάπου στον σκληρό σας δίσκο. Για να ξεκινήσει το virtual machine μέσα από το περιβάλλον του VMware-server θα πρέπει να επιλέξετε File, Open, Browse, να οδηγήσετε το πλαίσιο διαλόγου στο σημείο όπου αντιγράψατε τον κατάλογο "Debian Etch", να ανοίξετε αυτό τον κατάλογο και να επιλέξετε το αρχείο "Debian Etch.vmx".
Στη συνέχεια επιλέγετε "Power on this virtual machine" και στην ερώτηση που θα σας κάνει επιλέξτε "Create". Το virtual machine θα ξεκινήσει και μετά από λίγη ώρα θα σας εμφανίσει ένα login screen, όπου περιμένει user name και password. Δώστε και στα δύο "cgalpython". Στη συνέχεια θα ξεκινήσει ένας minimal window manager που το μενού του εμφανίζεται με δεξί κλίκ πάνω στην γκρί επιφάνεια. Αν σας ενοχλεί η γκρί επιφάνεια δώστε μέσα από ένα xterm:
xsetroot -solid black
Επιλέξτε από το μενού του window manager "Terminal Emulator" (xterm) για να ξεκινήσει ένα bash shell όπου είναι ήδη ορισμένη η μεταβλητή CGAL_MAKEFILE. Μπορείτε να μετακινηθείτε στον υποκατάλογο src και να βρείτε τα demo της CGAL και να πειραματιστείτε κάνοντας compile (αρκεί στον κατάλογο του demo που θα επιλέξετε να δώσετε make).
Για να γράψετε κάποιο πρόγραμμα υπάρχει εγκατεστημένος ο editor scite. Μέσα από ένα xterm δώστε
scite test.py
για να ξεκινήσετε να γράφετε ένα πρόγραμμα python. Όλα τα προγράμματα python που θα χρησιμοποιούν CGAL-Python, μέσα στο virtual machine, θα πρέπει να ξεκινούν με τις ακόλουθες δύο γραμμές:import sys
sys.path.append("/home/cgalpython/src/cgal-python-0.9.1/cgal_package")
Αν θελήσετε να κλείσετε το virtual machine δώστε
su -
halt
Οδηγίες εγκατάστασης για Linux (Debian/Ubuntu)
Στις παρακάτω οδηγίες υποθέτω ότι θέλετε να εγκαταστήσετε τη βιβλιοθήκη CGAL και τα bindings για την Python σε λειτουργικό σύστημα Debian ή Ubuntu. Κάνω την παραδοχή ότι χρησιμοποιείτε πρόσφατες εκδόσεις των διανομών, δηλαδή την 6.06 (ή πιο πρόσφατη) για Ubuntu και την 3 (ή πιο πρόσφατη) για Debian. Συνιστώ την έκδοση 6.10 για το Ubuntu και την 4 ("Etch") για το Debian (γιατί έχω τσεκάρει τις παρακάτω οδηγίες σε αυτές τις εκδόσεις και είμαι σχεδόν σίγουρος ότι θα έχουν αποτέλεσμα).
Για να μπορέσετε να εκτελέσετε τις εντολές που εγκαθιστούν πακέτα του λειτουργικού συστήματος, πρέπει ο λογαριασμός με τον οποίο κάνατε login να ανήκει στους "sudoers". Αυτό μάλλον ισχύει αν χρησιμοποιείτε μια εγκατάσταση linux που κάνατε εσείς οι ίδιοι στο μηχάνημά σας. Αν χρησιμοποιείτε κάποιο άλλο μηχάνημα, πρέπει μάλλον να ζητήσετε από το διαχειριστή του να προσθέσει το λογαρισμό σας στους "sudoers" ή να κάνει εκείνος τις διάφορες εγκαταστάσεις πακέτων.
Εγκατάσταση της CGAL (έκδοση 3.2.1)
Βεβαιωθείτε ότι υπάρχουν εγκατεστημένα όλα τα απαραίτητα πακέτα για τη μεταγλώττιση c και c++ προγραμμάτων (είναι πολύ πιθανό να είναι ήδη εγκατεστημένα):
sudo aptitude install build-essential
Οι απαραίτητες για τη CGAL βιβλιοθήκες, εγκαθίστανται με την παρακάτω εντολή (κάντε copy/paste με το mouse γιατί πρέπει να γραφτεί όλη σε μια μόνο γραμμή):
sudo aptitude install libboost-dev libboost-graph-dev libboost-program-options-dev libcore++-dev libgmp3-dev libmpfr-dev libqt3-compat-headers libqt3-mt-dev zlib1g-dev
Κατεβάστε την έκδοση 3.2.1 της CGAL:
mkdir downloads
cd downloads
wget ftp://ftp.mpi-sb.mpg.de/pub/outgoing/CGAL/CGAL-3.2.1.tar.gz
Αποσυμπιέστε σε κάποιο κατάλογο:
mkdir ~/src
cd ~/src
tar xvf ~/downloads/CGAL-3.2.1.tar.gz
Ορίστε το directory της βιβλιοθήκης QT:
export QTDIR=/usr/share/qt3
Για να ξεκινήσει η εγκατάσταση της CGAL:
cd ~/src/CGAL-3.2.1
./install_cgal -i
Από το μενού της εγκατάστασης επιλέξτε "Test (and save) setup" και το πρόγραμμα εγκατάστασης θα ξεκινήσει ένα αυτόματο έλεγχο του συστήματος και στο τέλος θα πρέπει να εμφανίσει κάτι σαν:
...
Support for: BOOST, BOOST_PROGRAM_OPTIONS, X11, GMP, GMPXX, MPFR, CORE, ZLIB, and QT.
...
Compiler is NOT supported by CGAL.
The setup has been tested ok.
...
Αγνοήστε το μύνημα που αναφέρει ότι ο μεταγλωττιστής δεν υποστηρίζεται από τη CGAL και συνεχίστε επιλέγοντας "Build CGAL Libraries". Μετά από κάποια ώρα και αν όλα πάνε καλά το πρόγραμμα εγκατάστασης θα πρέπει να εμφανίσει:
...
Generating Makefile ... done
Building libCGAL static ... done
Building libCGAL shared ... done
Building libCGALQt static ... done
...
Η μεταγλώτιση της βιβλιοθήκης τελείωσε οπότε μπορείτε να επιλέξετε "Back to OS". Για να γίνει σωστά οποιαδήποτε μεταγλώττιση προγράμματος που χρησιμοποιεί τη CGAL θα πρέπει να θέσουμε τη μεταβλητή περιβάλλοντος CGAL_MAKEFILE. Η παρακάτω εντολή κάνει αυτόν τον ορισμό αυτόματο (υποθέτω ότι το shell σας είναι το bash και ότι το username σας cgalpython, τροποποιήστε ανάλογα):
echo export CGAL_MAKEFILE=/home/cgalpython/src/CGAL-3.2.1/make/makefile_i386_Linux-2.6_g++4.1.2 >> ~/.bashrc
Για να ελέγξετε την εγκατάσταση προσπαθήστε να μεταγλωττίσετε κάποιο demo, π.χ.:
cd src/CGAL-3.2.1/demo/Convex_hull_2
make
./convex_hull_2
Εγκατάσταση της CGAL-Python
Εγκαταστήστε την απαραίτητη βιβλιοθήκη για την python:
sudo aptitude install libboost-python-dev
Κατεβάστε τη CGAL-Python:
cd ~/downloads
wget --no-check-certificate https://gforge.inria.fr/frs/download.php/945/cgal-python-0.9.1.tar.gz
cd ~/src
tar xvf ~/downloads/cgal-python-0.9.1.tar.gz
cd ~/src/cgal-python-0.9.1
export CPATH=/usr/include/python2.4:/usr/include/boost
Είστε έτοιμοι για τη μεταγλώττιση των bindings της CGAL για την python:make
Αν όλα πάνε καλά και δεν έχουμε μυνήματα λάθους δίνουμε:make package
Για να ελέγξουμε ότι η βιβλιοθήκη είναι εντάξει δίνουμε:
cd cgal_package
python
import CGAL
Πρέπει να επιστρέψουμε στο prompt της Python χωρίς κάποιο μύνημα λάθους.