Monday, January 24, 2011

SLAMPP LiveDVD Development Platform

This paper was delivered at Boise CodeCamp on March 26th and 27, 2010. I am a co-maintainer of the SLAMPP Distribution

What is SLAMPP?

SLAMPP turns a personal computer into an instant server which provides support for common protocols, such as: HTTP/HTTPS, FTP, POP, IMAP, SMTP, SSH, DHCP, Squid, etc.

Web developers can use SLAMPP to show their work to others. Just put your configured web projects on the CD/DVD and then liveclone's special scripts takes care of the rest, creating a new ISO which you can burn to a new DVD.



SLAMPP includes a number of developer tools including IDE's and Editors plus several Web Developer frameworks for creating websites.

SLAMPP also provides a complete desktop with OpenOffice 3.1, Gimp, Multimedia, and other applications to aid in the development and documentation of programming projects as well as general use.

SLAMPP uses linux kernel 2.6 which provides better support for hardware.

It can be installed onto the harddisk to for long term use and configurations.

SLAMPP includes several Integrated Development Environments, along with full libraries for web and linux development, various programming languages and databases, complete Open Office suite, multimedia and graphics applications, distributed revision control systems, firewalls, antivirus and content scanner.

Based on Zenwalk6/Slackware 12.2

Website: http://slampp.abangadek.com/info
Download: http://sourceforge.net/projects/live-slampp

Full Integrated Development Environments

Webserver Configuration

Apache 2.2.11
PHP 5.2.10
MySQL 5.0.82 w/phpMyAdmin
PostgreSQL 8.3.7 w/phpPgAdmin

SLAMPP Server PHP Info page: http://slampp.net/info.php


Web Development Environments

Supports a widerange of webserver applications and development environments including web.py 0.32, Django Python Framework 1.0.2, PRADO PHP Framework 3.1.5, Symfony Web PHP Framework 1.2.8, CodeIgniter 1.7.1, Ruby on Rails and content management systems such as NanoCMS v0.4 and Drupal (not installed but installs easily). Jave Development Environment includes Apache Tomcat along with Java Development Kit (JDK) 6u14, Java Runtime Environment (JRE) 6u14, and GlassFish Server. Other included webapplications include TinyWebGallery 1.7.8, Nagios, Cacti and net2ftp. FileNice webserver file browser enables you to browse the various folders in the Document Root.

nanoCMS:
- http://kalyanchakravarthy.net/?cat=7
- http://themestuff.com/tag/nanocms/
- NanoCMS Admin Page: http://slampp.net/info/data/nanoadmin.php
Login user: admin Password: slampp

Django Python Framework 1.0.2: http://www.djangoproject.com
- Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
- Latest Release is 1.1.1

Symfony: http://www.symfony-project.org/doc

CodeIgniter: http://codeigniter.com
- CodeIgniter is an open source web application framework for use in building dynamic web sites with PHP.
- "Its goal is to enable [developers] to develop projects much faster than...writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries.
- New release is available 1.7.2

Prado PHP Framework: http://www.pradosoft.com
- PRADO stands for PHP Rapid Application Development Object-oriented.

GlassFish Server: https://glassfish.dev.java.net

Coding Environments

Languages: PHP 5.2.10, Perl 5.10.0, Python 2.6.2, Ruby 1.8.7_p174, Lua 5.1.4
HTML: Bluefish 1.0.7,
IDE's: Netbeans 6.7, EasyEclipse for LAMP 1.2.2.2, Gambas 2.14, Lazarus 0.96.2 (Pascal), Glade 3.6.0
GTK+1.2.10, GTK+2.2.16.0, Qt-Base 3.3.8, Qt-Base 4.5.0
Compiler: gcc 4.3.3, glibc 2.7
Perl-5.10.0-i486
Perl-gtk-2.24.0-i486
Perl-pvfilter-0.2-i486
tk-8.5.7-i686
CLI Editors: Vim, Nano
GUI Editors: Geany 0.17, Mousepad
Extensive scripting and build environment

Version Control

CVS 1.11.23, Subversion 1.6.3, Git 1.6.6.3, Mercurial 1.2.1, tkcvs 8.0.3, RapidSVN 0.9.8

Command line use: (public code)
Mercurial: (downloads contents into folder django)
hg clone http://codinginertia.repositoryhosting.com/hg_public/codinginertia/django django
Subversion: (create and cd into download folder)
svn checkout http://codeprogression.googlecode.com/svn/trunk/ sample-projects/CodeProgression.BCC2010.zip

Other database environments
SQLite 3.6.14.2
FirebirdSQL 2.1.2

Browsers

Iceweasel 3.0.8 (Mozilla) loaded with extensions and plugins
Lynx

SLAMPP Fully Loaded:

Full Desktop with OpenOffice 3.1, Scribus, Gimp, Blender, Multimedia Support
Network Server with DNS/BIND, DHCP, FTP, Qmail, Courier-IMAP, Proxy, CUPS, Samba
Server Administration Tools with Webmin, Usermin,gadmin tools
Other network: SSH, OpenSSL, Wireshark (Ethereal), nmap, Snort, gFTP, ntop, Nessus, chkrootkit, rkhunter, honeyd, oinkmaster, TightVNC, rdesktop, NX Client 3.2.0.14, TN5250 Emulator, rsync 3.0.6, LinNeigborhood, Tor, Privoxy, TightVNC, openLDAP.

Creating/Remastering the ISO

I. Cloning a LiveDVD to preserve changes

Boot from the LiveDVD. Make sure you have available atleast 4GB space on a local or USB drive that can be mounted to build the new LiveDVD on. You cannot do it on the root volume of the LiveDVD.

Install/remove/configure everything you want to include in the new LiveDVD. Make sure everything is working well.

Open a terminal session as root and run liveclone. A GUI will open that is self explanatory in its operation.

When the process finishes (and it will take some time), burn the new LiveDVD from the iso that was created by liveclone.

Try your new LiveDVD.

II. Making a redistributable LiveDVD

There are some folders and scripts that are used in creating the SLAMPP LiveDVD that don't get recreated by liveclone in the "cloned" DVD.

On a drive where you have atleast 4GB of space, at the root of the volume in terminal shell:

At the root prompt (cd /)
mkdir -p source remaster
Mount the iso on /source
mount -o loop slampp-2.0.1-zw-dvd.iso source

Copy the source to the remaster
cp --preserve -Rf source/* remaster/

Verify that the following folders are present in /remaster/slampp-2.0-zw:

base
html
modules
optional
persist
rootcopy
tools

Also, these files:

autorun.inf
live_rcd.lzm
livecd.sgn
makeiso.bat
makeiso.sh
slampp.ico

cd remaster/slampp-2.0-zw
./make_iso.sh /tmp/slampp-2.0.1-zw-dvd.iso

Burn the new iso located in /tmp and test.

One other technique: Inside /remaster/slampp/base is a file slampp-2.0-zw.lzm A .lzm file is a slackware compressed file and this file contains the SLAMPP root volume. You can modify this by extracting the .lzm file using lzm2dir, then making any changes or adding/deleting files, and then put it back using dir2lzm at the original location. I recommend always backup the original .lzm file before replacing it with the one created by lzm2dir.

No comments: