2008 Jun 06 - Fri
Wt, Some Build Modifications
Back on
2007/10/03, I wrote about installing Wt (a C++ library and application server for
developing and deploying web applications) on a Debian server. I've revised things a little
bit since thing while building Wt v2.1.3.
In this case, I build with the newly released version of the Boost libraries: 1.35.
ASIO is now included in Boost, so some build steps can be removed.
Prerequisites are little changed but for a different library for gd:
apt-get install gcc
apt-get install zlib1g
apt-get install zlib1g-dev
apt-get install libbz2-dev
apt-get install libgd2-noxpm-dev
apt-get install cmake
apt-get install libfcgi-dev
apt-get install libapache2-mod-fastcgi
apt-get install libssl-dev
The web site and repository for Wt have changed, so CVS commands will be a bit different:
cvs -d :pserver:anonymous@cvs.webtoolkit.eu/opt/cvs login
cvs -z3 -d :pserver:anonymous@cvs.webtoolkit.eu/opt/cvs co wt
I've changed the cmake/build a little bit so the results go into /usr/local/wt/include
and /usr/local/wt/lib:
cmake -D DEPLOYROOT=/var/www/wt -D WEBUSER=www-data -D WEBGROUP=www-data \
-D BOOST_DIR=/usr/local \
-D BOOST_COMPILER=gcc42 \
-D BOOST_VERSION=1_35 \
-D BOOST_INCLUDE_DIR=/usr/local/include/boost \
-D BOOST_LIB_DIR=/usr/local \
-D BOOST_DT_LIB_MT=/usr/local/lib \
-D BOOST_DT_LIB=/usr/local/lib \
-D BOOST_FS_LIB=/usr/local/lib \
-D BOOST_FS_LIB_MT=/usr/local/lib \
-D BOOST_PO_LIB_MT=/usr/local/lib \
-D BOOST_REGEX_LIB_MT=/usr/local/lib \
-D BOOST_SIGNALS_LIB_MT=/usr/local/lib \
-D BOOST_THREAD_LIB=/usr/local/lib \
-D BOOST_ASIO_INCLUDE_DIR=/usr/local/include/boost \
-D SHARED_LIBS=ON \
-D CONNECTOR_FCGI=OFF \
-D CONNECTOR_HTTP=ON \
-D EXAMPLES_CONNECTOR=wthttp \
-D WTHTTP_CONFIGURATION=/etc/wt/wthttpd \
-D CONFIGURATION=/etc/wt/wt_config.xml \
-D CMAKE_INSTALL_PREFIX=/usr/local/wt \
.
During make install, an error regarding CMakeFiles arises. The secret, that I know, is
to remove the line which includes CmakeFiles in src/Ext/cmake_install.cmake, and restart
'make install'. The install should complete normally.
The library directory /usr/local/wt/lib will need to be added to /etc/ld.so.conf, and
then run ldconfig to update things.
Remember to review the
Ext widgets deployment page as there are some additional files to be downloaded and
installed from Ext JS.
2008 Jun 04 - Wed
PostgreSQL Upgrade 8.2 to 8.3
Back in Febrary, I wrote a longish article on how to upgrade PostgreSQL. That article is
outdated. An upgrade can now take place with two lines:
pg_upgradecluster -v 8.3 8.2 main
pg_dropcluster 8.2 main
The first copies the older version 8.2 files to the new 8.3 files directory. It does any
modifications necessary. The second line then removes the old stuff.
2008 Jun 03 - Tue
OpenSSH Issues
In light of the not so recent news regarding the vulnerability of openSSH in Debian, many
systems have had to be patched and inter-machine keys changed.
Via
Steven Rosenberg's Site I learn that a simple 'apt-get update && apt-get dist-upgrade'
will update the necessary files on my system. Also in the blog entry is a reference to
DRONEBL which is another black list site
dealing with root compromised sites. A commenter posts the following interesting remarks
about further protecting a server:
If you aren't running fail2ban or denyhosts, you should. Both will detect brute force
attempts and deny connections from the attacker for a time. If you feel uncomfortable
automatically banning hosts for failed logins, you can weakly configure whichever you choose
to allow 20 or more failed attempts before banning. There's no reason any authenticated
service should tolerate brute force attempts, in my humble opinion.
Finally, there are services, such as the DroneBL dnsbl, which have honeypot servers set
up to detect brute force attempts and add them to a blacklist. You can use the "aclexec"
directive in hosts.deny to query this blacklists before allowing clients to connect, to
prevent connections from known brute force attackers. See http://headcandy.org/rojo/ for a
suitable script to call via aclexec (view the source for the checkdnsbl script for usage
instructions), and see the man page for hosts_options for more info.
Running 'ssh-vulnkey -a' showed that there were a couple keys that needed to be
deleted and/or redone.
Debian has a
WIKI with good information
regarding the problem, affected programs, and utilities to help determine where the problems
are.
If weak keys have been copied to other non-Debian hosts, the keys need to be removed
from those hosts as well.
2008 Apr 24 - Thu
Installing Sun Java on Debian Lenny
Back in October last year, I mentioned how to get Sun Java installed in
preparation for Eclipse. The rules have changed a bit.
You still need to put 'non-free' at the end of teh deb and deb-src lines in
/etc/apt/sources.list. The secret to get the new flavour, which happens to be 1.6, is
'apt-get install sun-java6-jre' or 'apt-get install sun-java5-jre'.
Also, by default, Debian installs some other runtimes that seem to not work very well
with eclipse. So to select the proper one, which was installed with the command in the
previous paragraph, use 'update-alternatives --config java'.
On opening Eclipse/CDT, you may get an 'error opening the view', or some similar error
regarding opening a view. The configuration above
will make that error message go away.
Installing VMWare Workstation 6 on Debian Lenny
The description that helped the best, actually, the only one at which I looked, is
located at eitch's blog.
It goes like this:
- cd /usr/lib/vmware/modules/source
- cp vmmon.tar vmmon.tar.orig
- sudo tar xvf vmmon.tar
- cd vmmon-only/include/
- sudo vi vcpuset.h
- change line 74 from: #include .asm/bitops.h. to: #include .linux/bitops.h.
- cd ../..
- rm vmmon.tar
- sudo tar cvf vmmon.tar vmmon-only/
- sudo rm -rf vmmon-only/
- sudo vmware-config.pl
In addition, with Debian lenny, the gcc-4.2 compiler is installed. It looks like gcc-4.1
is also installed. If both are installed, the vmware-config.pl script asks for a cpp
compiler. At the prompt, supply gcc-4.1. If the compiler isn't resident, then use
'apt-get install gcc-4.1' to get it.
The installation works with the latest kernel available at the time. As headers are
required for the custom vmware build, the following worked for the kernel and headers:
'install linux-headers-2.6.24-1-686 linux-image-2.6.24-1-686'.
KDE on Debian
It used to be difficult to get KDE onto a Debian installation. Everything defaulted to
Gnome. In a way, it still does. If you do a standard desktop installation, Gnome is what
comes up. One could use apt-get to install KDE, but that would be the hardway, and would
leave Gnome residue hanging around.
The cleaner way to install KDE on Debian is to use 'install desktop=kde' at the initial
boot: prompt during the installation process. While on that note, 'install desktop=xfce'
maybe another alternative.
2008 Feb 19 - Tue
Installing Asterisk
Here are a few installation updates to my other
installation article. Here are some revised subversion retrieval
commands:
svn checkout http://svn.digium.com/svn/zaptel/branches/1.4 zaptel
svn checkout http://svn.digium.com/svn/libpri/trunk libpri
svn checkout http://svn.digium.com/svn/asterisk/trunk asterisk
The make results indicate that the trunk version of zaptel is unstable, so a 1.4 is the
most recent stable version available.
make, make install, make samples, doxygen, make progdocs
Some additional, older notes can be found at
AsteriskGuru.
Upgrading PostgreSQL 7.x to 8.x
Upgrading a PostgreSQL server version 7.x to version 8.x was relatively painless. It
helped that there wasn't a significant amount of data to move, or blob objects to move.
For a Debian server on which I recently ran 'apt-get dist-upgrade', the Debian crew made
PostgreSQL 8.2 run along side version 7.4. The /etc/postgresql/8.2/main/postgresql.conf
file showed the server port as being 5433, by default. Since the service wasn't turned on,
I set it for 5432, and changed the listen_addresses for '*'.
Relevant lines from the pg_hba.conf files will have to coped from the
/etc/postgresql/7.x/main/ directory to the matching file in the 8.x directory. Some say
that running pgadmin3 will provide messages indicating exactly which paramters need to be
copied over. I havn't tried that.
The commands following are used after 'su - postgres' (logging in as the postgreSQL user
account. There are a number of ways of performing backups and restores. The following
sequence of steps takes a little longer, but I wield a bit more control over what gets done
when.
With 7.4 running and 8.2 off, I did a 'pg_dumpall --schema-only > db.dump'. The top of
the file shows a number of 'create role' lines for regenerating users.
Do a 'pg_dump databasename > databasename.db.dump' for each database (where you
substitute the real name for databasename) to extract the schema and data. A 'psql -l' will
list the databases available.
Use '/etc/init.d/postgresql-7.4 stop' to stop the existing service. Use 'apt-get remove
xxx' to remove the various old version packages. 'apt-file -l list postg' will provide an
indication of what can be removed (I'm sure there is a better way though).
Use '/etc/init.d/postgresql-8.2 start' to start the more recent version of PostgreSQL.
Use 'psql template1' to connect to the server. Run the 'create role' lines that you see
from the pg_dumpall command run earlier. '\q' to exit.
Use 'createdb -T template0 --owner=ownername databasename' to create each of the
databases.
Use 'psql databasename < databasename.db.dump to restore the data.
Data and schema are now ready to be used as if nothing happened.
2008 Jan 25 - Fri
Debian with Java and Eclipse/CDT
After downloading Eclipse/CDT (Eclipse for C++ Developers), and trying to run it I
encountered an error about it finding Java RunTime 1.4.2, and it finding that inadequate.
I proceeded to 'apt-get install sun-java6-jre' successfully. Eclipse still didn't start.
I found that if one runs 'update-alternatives --config java', one can select the proper Java
Run Time with which to be running.
2008 Jan 10 - Thu
Additional Configuration Notes for Wt, a C++ Web Toolkit
I need to append some additional notes to my 2007/10/03 Wt Configuration Guide article.
As mentioned in the Wt
Ext Widget deployment notes, the Wt toolkit makes use of libraries from Ext JS. There are notes at the bottom of the Wt page itemizing the files needed from the
JS Ext 1.1 .zip file.
As a side note, all things Ajax can be referenced one way or another starting at the
ajaxian web site. Maybe not quite the truth.
More all things Ajax at AjaxPatterns... if you want to
get under the hood.
|