mirror of https://github.com/tLDP/LDP
updated
This commit is contained in:
parent
3ba2c43a28
commit
70a4ef4b56
|
@ -42,7 +42,7 @@ C++ Programming HOW-TO
|
|||
<author>Al Dev (Alavoor Vasudevan)
|
||||
<htmlurl url="mailto:alavoor@yahoo.com"
|
||||
name="alavoor@yahoo.com">
|
||||
<date>v40.0, 14 June 2001
|
||||
<date>v40.1, 01 July 2001
|
||||
<abstract>
|
||||
This document provides a comprehensive list of C++ URL
|
||||
pointers, links to C++ online textbooks, and programming tips on C++.
|
||||
|
@ -1560,6 +1560,10 @@ Visit the following sites for Java like API for C++
|
|||
The following IDE tools (Integrated Development Environment) are available for
|
||||
C++:
|
||||
<itemize>
|
||||
<item> The "top rated" Dev-C++ is an full-featured Integrated Development Environment (IDE)
|
||||
for both Win32 and Linux. It uses GCC, Mingw or Cygwin as compiler and libraries set.
|
||||
It is at <url url="http://www.bloodshed.net/devcpp.html">
|
||||
and at <url name="mirror-site" url="http://sourceforge.net/projects/dev-cpp">
|
||||
<item> KDE <url name="Kdevelop" url="http://www.kdevelop.org">
|
||||
<item> Blatura site <url name="C++ Tools" url="http://home.xnet.com/~blatura/linapp6.html#tools">
|
||||
<item> Amulet <url name="Amulet" url="http://www.cs.cmu.edu/afs/cs.cmu.edu/project/amulet/www">
|
||||
|
|
|
@ -44,7 +44,7 @@ Revision Control System
|
|||
<author>Al Dev (Alavoor Vasudevan)
|
||||
<htmlurl url="mailto:alavoor@yahoo.com"
|
||||
name="alavoor@yahoo.com">
|
||||
<date>v21.0, 14 June 2001
|
||||
<date>v21.2, 02 July 2001
|
||||
<abstract>
|
||||
This document is a "practical guide" to very quickly setup CVS/RCS source code
|
||||
control system. This document has custom shell scripts which are wrappers
|
||||
|
@ -71,8 +71,8 @@ flavors of Unix liks Solaris, HPUX, AIX, SCO, Sinix, BSD, SCO, etc.. and BeOS.
|
|||
-->
|
||||
<sect>Introduction
|
||||
<p>
|
||||
Source code control system is a MUST to manage
|
||||
the changes occuring to software project during development. Developers need a complete history of changes
|
||||
A source code control system is a MUST to manage
|
||||
the changes occurring to software project during development. Developers need a complete history of changes
|
||||
to backtrack to previous versions in case of any problems.
|
||||
Since source code is the most vital component of any software project and
|
||||
software development takes a huge amount of time and money, it is very important to spend some
|
||||
|
@ -80,7 +80,7 @@ time in <it><bf>safe-guarding</bf></it> the source code by using source code con
|
|||
<p>
|
||||
CVS (Concurrent Version Control System) is a powerful tool which allows
|
||||
concurrent development of software by multiple users. It uses RCS
|
||||
underneath and has application layer interface as a wrapper on top RCS.
|
||||
underneath and has an application layer interface as a wrapper on top of RCS.
|
||||
|
||||
CVS can record the history of your files (usually,
|
||||
but not always, source code). CVS only stores the differences
|
||||
|
@ -1243,6 +1243,7 @@ print "Please enter description (will be used for"
|
|||
print -n "all the files checked in) : "
|
||||
read description
|
||||
|
||||
# Option prune does not work, use -maxdepth 0
|
||||
#find * -prune -type f |
|
||||
|
||||
# The number of args is zero or more....
|
||||
|
@ -1252,7 +1253,9 @@ else
|
|||
listoffiles="$@"
|
||||
fi
|
||||
|
||||
find $listoffiles -prune -type f |
|
||||
# Option prune does not work, use -maxdepth 0
|
||||
#find $listoffiles -prune -type f |
|
||||
find $listoffiles -maxdepth 0 -type f |
|
||||
while read ii
|
||||
do
|
||||
#echo $ii
|
||||
|
@ -1929,7 +1932,8 @@ fi
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
@ -2169,7 +2173,8 @@ mkdir -p "$CVSROOT/$subdir/Locks" 2>/dev/null
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
@ -2473,7 +2478,8 @@ fi
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
@ -2639,10 +2645,12 @@ fi
|
|||
#echo "all args : " $@
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
tmpbb=` find * -prune -type d `
|
||||
#tmpbb=` find * -prune -type d `
|
||||
tmpbb=` find * -maxdepth 0 -type d `
|
||||
elif [ $# -eq 1 ]; then
|
||||
if [ "$1" = "." ]; then
|
||||
tmpbb=` find * -prune -type d `
|
||||
#tmpbb=` find * -prune -type d `
|
||||
tmpbb=` find * -maxdepth 0 -type d `
|
||||
else
|
||||
if [ -d $1 -a ! -d $CVSROOT/$subdir/$1 ]; then
|
||||
print "\nThe directory $subdir/$1 does not exist in $CVSROOT"
|
||||
|
@ -2679,7 +2687,9 @@ fi
|
|||
|
||||
# Get all the files in the current directory
|
||||
listfiles=`ls $tmpbb `
|
||||
find * -prune -type f |
|
||||
# Option prune does not work use maxdepth
|
||||
#find * -prune -type f |
|
||||
find * -maxdepth 0 -type f |
|
||||
while read ii
|
||||
do
|
||||
for jj in $listfiles ; do
|
||||
|
@ -2771,7 +2781,8 @@ fi
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
@ -2914,7 +2925,8 @@ fi
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
@ -3048,7 +3060,8 @@ fi
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
@ -3162,7 +3175,8 @@ fi
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
@ -3316,7 +3330,8 @@ fi
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
@ -3455,7 +3470,8 @@ subdir=` echo $cur_dir | cut -b $len-2000 `
|
|||
|
||||
# CVS directory in your local directory is required for all commands..
|
||||
if [ ! -d "$homedir/$subdir/CVS" ]; then
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
#tmpaa=` (cd "$CVSROOT/$subdir"; find * -prune -type f -print | head -1 ) `
|
||||
tmpaa=` (cd "$CVSROOT/$subdir"; find * -maxdepth 0 -type f -print | head -1 ) `
|
||||
tmpbb=`basename $tmpaa | cut -d',' -f1 `
|
||||
if [ "$tmpaa" = "" -o ! -f "$CVSROOT/$subdir/$tmpbb,v" ]; then
|
||||
print "\nThe directory $homedir/$subdir/CVS does not exist"
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
" name="
|
||||
bri@cs.uchicago.edu
|
||||
">
|
||||
<date>v2.8, 14 June 2001
|
||||
<date>v2.9, 04 July 2001
|
||||
|
||||
<abstract>
|
||||
This is a detailed guide to kernel configuration, compilation, upgrades,
|
||||
|
@ -144,8 +144,6 @@ The latest version of this section is at <url url="http://www.aldev.8m.com"> and
|
|||
|
||||
These sites have <bf>lots of linux goodies</bf> and tips.
|
||||
|
||||
A copy of the above web-site is reproduced here -
|
||||
|
||||
Kernel re-compile is required in order to make the kernel very lean
|
||||
and which will result in FASTER operating system . It is also
|
||||
required to support any new devices.
|
||||
|
@ -155,7 +153,7 @@ tested on Redhat Linux, but it should work for other distributions with
|
|||
very minor changes.
|
||||
|
||||
<enum>
|
||||
<item> Note: You can have many kernel images on your system. By following the steps below
|
||||
<item> <bf>Note:</bf> You can have many kernel images on your system. By following the steps below
|
||||
you do not overwrite or damage your existing kernel. These steps are <bf>very safe</bf>
|
||||
and your current kernel will be intact and will not be touched.
|
||||
<p>
|
||||
|
@ -172,28 +170,32 @@ bash# rpm -i bin86*.rpm
|
|||
(The bin86*.rpm and 'as86' is required only for <bf>OLDER Linux</bf> systems like redhat 5.x.
|
||||
Get Intel assembler 'as86' command from
|
||||
dev86*.rpm on cdrom or from
|
||||
<url url="http://rpmfind.net/linux/RPM/mandrake/7.1/Mandrake/RPMS/bin86-0.4-12mdk.i586.html">
|
||||
, <url url="http://rpmfind.net/linux/RPM/kondara/jirai/i586/bin86-0.4-8k.i586.html">
|
||||
<url name="bin86-mandrake" url="http://rpmfind.net/linux/RPM/mandrake/7.1/Mandrake/RPMS/bin86-0.4-12mdk.i586.html">
|
||||
, <url name="bin86-kondara" url="http://rpmfind.net/linux/RPM/kondara/jirai/i586/bin86-0.4-8k.i586.html">
|
||||
).
|
||||
<p>
|
||||
|
||||
<item> Start X-windows with 'startx'.
|
||||
<item>
|
||||
<itemize>
|
||||
<item> Start X-windows with 'startx'. If you are not able to start X-window then
|
||||
see next step below.
|
||||
<code>
|
||||
bash# man startx
|
||||
bash# startx
|
||||
bash# cd /usr/src/linux
|
||||
bash# make xconfig
|
||||
bash# man startx
|
||||
bash# startx
|
||||
bash# cd /usr/src/linux
|
||||
bash# make xconfig
|
||||
</code>
|
||||
The <bf>"make xconfig"</bf> brings up a user friendly GUI interface! <bf>DO NOT</bf>
|
||||
use 'make config' which is a command-line option (
|
||||
use this <bf>ONLY if you CANNOT</bf> bring up X-window).
|
||||
A better alternative to command-line 'make config' is <bf>'make menuconfig'</bf> which
|
||||
brings up a user-friendly ncurses text-based menu interface.
|
||||
Some persons like 'make menuconfig' over 'make xconfig'. My personal preference -
|
||||
whenever I cannot bring up the X-window, I use 'make menuconfig'.
|
||||
You can load the
|
||||
configuration file from <it>/usr/src/linux/.config</it> (dot config file. Note the dot
|
||||
before config).
|
||||
<item> If you are not able to start X-window above then try -
|
||||
<code>
|
||||
bash# make menuconfig
|
||||
If the above command fails then try -
|
||||
bash# make config
|
||||
</code>
|
||||
</itemize>
|
||||
The <bf>"make xconfig" or "make menuconfig"</bf> brings up a user friendly GUI interface.
|
||||
You can load the
|
||||
configuration file from <it>/usr/src/linux/.config</it> (dot config file. Note the dot
|
||||
before config).
|
||||
<p>
|
||||
|
||||
<item> Within 'make xconfig' you must do these to avoid problems -
|
||||
|
@ -207,6 +209,7 @@ With this option you can load/unload the device drivers
|
|||
dynamically on running linux system on the fly.
|
||||
See these man pages
|
||||
<code>
|
||||
bash# rpm -i /mnt/cdrom/Redhat/RPMS/modutils*.rpm
|
||||
bash# man lsmod
|
||||
bash# man insmod
|
||||
bash# man rmmod
|
||||
|
@ -285,13 +288,113 @@ select your old kernel, boot and re-try all over again. Your old kernel
|
|||
<bf>is still INTACT and SAFE</bf> at say <it>/boot/vmlinuz-2.0.34-0.6</it>
|
||||
<p>
|
||||
|
||||
<item> Loadable Modules:
|
||||
<item> If your new kernel 'myker' boots and works properly, you can create the
|
||||
boot disk. Insert a blank floppy into floppy drive and -
|
||||
<code>
|
||||
bash# cd /usr/src/linux
|
||||
bash# make bzdisk
|
||||
See also mkbootdisk -
|
||||
bash# rpm -i mkbootdisk*.rpm
|
||||
bash# man mkbootdisk
|
||||
</code>
|
||||
<p>
|
||||
|
||||
<item> <bf>LOADABLE MODULES: </bf>
|
||||
This step is required <bf>ONLY if</bf> you had enabled Loadable module support in
|
||||
step 3 above.
|
||||
Loadable module are located in /lib/modules. You MUST do this step if you enabled or
|
||||
disabled any modules, otherwise you will get 'unresolved symbols' errors during
|
||||
or after kernel boot.
|
||||
Check for insmod command which is extensively used for loading the modules.
|
||||
<code>
|
||||
bash# cd /usr/src/linux
|
||||
bash# make modules
|
||||
bash# make modules_install
|
||||
bash# man insmod
|
||||
bash# insmod
|
||||
bash# rpm -i /mnt/cdrom/Redhat/RPMS/modutils*.rpm
|
||||
</code>
|
||||
This will copy the modules to /lib/modules directory.
|
||||
</enum>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect1> Troublshoot Common Mistakes
|
||||
<p>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect2> No init found
|
||||
<p>
|
||||
The following mistake is commited very frequently by new users.
|
||||
|
||||
If your new kernel does not boot and you get -
|
||||
<code>
|
||||
Warning: unable to open an initial console
|
||||
Kernel panic: no init found. Try passing init= option to kernel
|
||||
</code>
|
||||
The problem is that you <bf>did not</bf> set the "root=" parameter properly
|
||||
in the /etc/lilo.conf. In my case, I used root=/dev/hda1 which is
|
||||
having the root partition "/". You must properly point the root device in your
|
||||
lilo.conf, it can be like /dev/hdb2 or /dev/hda7.
|
||||
|
||||
The kernel looks for the init command which is located in /sbin/init.
|
||||
And /sbin directory lives on the root partition.
|
||||
For details see -
|
||||
<code>
|
||||
bash# man init
|
||||
</code>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect2> Kernel does not load module - Unresolved symbol error messages
|
||||
<p>
|
||||
When you boot kernel and system tries to load any modules and
|
||||
you get "Unresolved symbol : __some_function_name" then it means
|
||||
that you did not clean compile the modules and kernel. It is mandatory that
|
||||
you should do <bf>make clean</bf> and make the modules. Do this -
|
||||
<code>
|
||||
bash# cd /usr/src/linux
|
||||
bash# make dep
|
||||
bash# make clean
|
||||
bash# nohup make bzImage &
|
||||
bash# tail -f nohup.out (.... to monitor the progress)
|
||||
bash# make modules
|
||||
bash# make modules_install
|
||||
</code>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect2> Kernel fails to load a module
|
||||
<p>
|
||||
If the kernel fails to load a module (say loadable module for network card
|
||||
or other devices), then you may want to try to build the driver for device
|
||||
right into the kernel. Sometimes <it><bf>loadable module will NOT
|
||||
work</bf></it> and the driver
|
||||
needs to be built right inside the kernel. For example - some network cards do not
|
||||
support loadable module feature - you MUST build the driver of the network card
|
||||
right into linux kernel. Hence, in 'make xconfig' you MUST not select loadable
|
||||
module for this device.
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect2> Loadable modules
|
||||
<p>
|
||||
You can install default loadable modules with -
|
||||
|
||||
The step given below may not be required but is needed <bf>ONLY FOR EMERGENCIES</bf> where
|
||||
your /lib/modules files are damaged. If you already have
|
||||
|
@ -320,53 +423,44 @@ bash# rpm -i /mnt/cdrom/contrib/kernel-modules*.rpm
|
|||
....(For old linux systems which do not have insmod pre-installed)
|
||||
</code>
|
||||
<p>
|
||||
|
||||
<item> This step is required <bf>ONLY if you had downloaded a new
|
||||
version</bf> of linux kernel source.
|
||||
Loadable module are located in /lib/modules.
|
||||
<code>
|
||||
bash# cd /usr/src/linux
|
||||
bash# make modules
|
||||
bash# make modules_install
|
||||
</code>
|
||||
<p>
|
||||
|
||||
<item> If your new kernel 'myker' boots and works properly, you can create the
|
||||
boot disk. Insert a blank floppy into floppy drive and -
|
||||
<code>
|
||||
bash# cd /usr/src/linux
|
||||
bash# make bzdisk
|
||||
See also mkbootdisk -
|
||||
bash# rpm -i mkbootdisk*.rpm
|
||||
bash# man mkbootdisk
|
||||
</code>
|
||||
</enum>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect1> Troublshoot Common Mistakes
|
||||
<sect1> Post Kernel Building <label id="postkernel">
|
||||
<p>
|
||||
The following mistake is commited very frequently by new users.
|
||||
After successful build and booting of linux kernel you may want to do these
|
||||
additional steps to make some of your devices to work.
|
||||
(The steps below were tested on Redhat linux but should work with others too)
|
||||
|
||||
If your new kernel does not boot and you get -
|
||||
<bf>Sound card configuration: </bf>
|
||||
<itemize>
|
||||
<item> Connect your external speakers to the sound card's audio port.
|
||||
<item> Connect your CDROM audio wire to sound card's audio 4-pin socket. (Otherwise
|
||||
your cdrom drive will not play music from your music cd)
|
||||
<item> Refer to HOWTO docs on 'Sound' at <url url="http://www.linuxdoc.org">
|
||||
</itemize>
|
||||
<code>
|
||||
Warning: unable to open an initial console
|
||||
Kernel panic: no init found. Try passing init= option to kernel
|
||||
bash$ su - root
|
||||
bash# man sndconfig
|
||||
bash# /usr/sbin/sndconfig
|
||||
</code>
|
||||
The problem is that you <bf>did not</bf> set the "root=" parameter properly
|
||||
in the /etc/lilo.conf. In my case, I used root=/dev/hda1 which is
|
||||
having the root partition "/". You must properly point the root device in your
|
||||
lilo.conf, it can be like /dev/hdb2 or /dev/hda7.
|
||||
Then start X-window 'KDE desktop' with 'startx' command.
|
||||
Click on 'K Start->ControlCenter->SoundServer->General->Test Sound'. This should
|
||||
play the test sound. Then click on 'K Start->MultiMedia->SoundMixer->SoundVolumeSlider'
|
||||
and adjust the sound volume.
|
||||
|
||||
The kernel looks for the init command which is located in /sbin/init.
|
||||
And /sbin directory lives on the root partition.
|
||||
For details see -
|
||||
<code>
|
||||
bash# man init
|
||||
</code>
|
||||
<bf>Network card configuration: </bf>
|
||||
<itemize>
|
||||
<item> Use /sbin/linuxconf
|
||||
<item> Or use KDE control panel
|
||||
<item> Refer to HOWTO docs on 'Networking' at <url url="http://www.linuxdoc.org">
|
||||
</itemize>
|
||||
|
||||
<bf>Configuration of other devices: </bf>
|
||||
Refer to HOWTO docs relating to your devices at <url url="http://www.linuxdoc.org">
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
|
|
|
@ -45,7 +45,7 @@ PHP HOW-TO
|
|||
" name="
|
||||
alavoor@yahoo.com
|
||||
">
|
||||
<date>v25.1, 19 June 2001
|
||||
<date>v25.3, 03 July 2001
|
||||
<abstract>
|
||||
This document tells you howto develop PHP programs and also to migrate all the
|
||||
Windows 95 GUI applications to powerful PHP + HTML + DHTML + XML + Java applets + Javascript.
|
||||
|
@ -313,16 +313,25 @@ HTML objects. Get these from
|
|||
See also the Top downloaded classes from
|
||||
<url name="Top PHP classes" url="http://phpclasses.upperdesign.com/browse.html/top">
|
||||
And visit <url url="http://www.phpclasses.com">.
|
||||
And see Form classes, template classes at
|
||||
the site <url name="corporate Intranet/Internet" url="http://www.aldev.8m.com/index.html#target5">
|
||||
|
||||
<p>
|
||||
<item> Third, design and create your own PHP classes by inheriting from the
|
||||
generic
|
||||
<url name="PHP classes" url="http://phpclasses.upperdesign.com">
|
||||
or <url url="http://www.phpclasses.com">.
|
||||
<p>
|
||||
<item> Fourth, use IDE tools from <ref id="PHP IDE">
|
||||
<item> Fourth, use the template classes to seperate the presentation from business logic,
|
||||
see <url url="http://www.phpclasses.com">.
|
||||
<p>
|
||||
<item> Fifth, use IDE tools from <ref id="PHP IDE">
|
||||
<p>
|
||||
<item> Most of your PHP code should be in classes for easy code maintainence and re-usability.
|
||||
</itemize>
|
||||
|
||||
See also
|
||||
<url name="Aldev's PHP classes" url="http://phpclasses.upperdesign.com/browse.html/author/35463">
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
|
@ -679,6 +688,89 @@ and <url name="mirror" url="http://www.miro.com.au">
|
|||
|
||||
|
||||
|
||||
<chapt> Object Oriented Features - public, private, protected <label id = "oop">
|
||||
-->
|
||||
<sect> Object Oriented Features - public, private, protected <label id = "oop">
|
||||
<p>
|
||||
PHP scripting language provides object oriented features through the
|
||||
<bf>class</bf> keyword.
|
||||
Features like public, private and protected will be supported in the future
|
||||
release (they are in TODO list). In the meantime, you can
|
||||
use the following coding conventions to
|
||||
distinguish between private, public and protected variables:
|
||||
<enum>
|
||||
<item> All private variables and functions always start with underscore <bf>"_"</bf>
|
||||
followed by lowercase letters
|
||||
like <bf>var $_myvar;</bf>
|
||||
<p>
|
||||
<item> All Protected variables and functions always start with <bf>"_T"</bf> followed
|
||||
by lowercase letters
|
||||
like <bf>var $_Tmyvar;</bf>
|
||||
<p>
|
||||
<item> All Public variables and functions do not start with underscore "_"
|
||||
like <bf>var $myvar;</bf>
|
||||
<p>
|
||||
<item> All variables and functions always start with lowercase letter (no uppercase)
|
||||
like <bf>var $_myvar;</bf> and NOT like <bf>var $_Myvar;</bf>
|
||||
</enum>
|
||||
|
||||
<code>
|
||||
class someabc {
|
||||
var $_conn; // Private variable
|
||||
var $_Tmyvar; // Protected variable
|
||||
var $connMYCONNECTION; // Public variable
|
||||
var $connToDb; // Public variable
|
||||
var $myvar3; // Public variable
|
||||
var $myvarTHISTEST; // Public variable
|
||||
|
||||
function _foofunction() {} // Private function
|
||||
function _Tfoofunction() {} // Protected function
|
||||
function foofunction() {} // Public function
|
||||
}
|
||||
</code>
|
||||
|
||||
The private, protected declarations provide the encapsulation and data-hiding.
|
||||
But you must consider the following disadvantages of encapsulation:
|
||||
<itemize>
|
||||
<item> Encapsulation usually requires more code, hence it
|
||||
sacrifices performance especially for scripting languages like PHP
|
||||
<p>
|
||||
<item> Encapsulation requires lots of Set/Get methods for private/protected properties.
|
||||
<p>
|
||||
<item> Since encapsulation unneccessarily increases the code size, it is
|
||||
not recommended for scripting language like PHP.
|
||||
<p>
|
||||
<item> You can enforce a good degree of encapsulation by using the coding
|
||||
convention suggested in this section.
|
||||
</itemize>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
|
||||
|
||||
|
||||
<chapt> HTML Editor <label id = "htmleditor">
|
||||
-->
|
||||
<sect> HTML Editor <label id = "htmleditor">
|
||||
<p>
|
||||
HTML editors for PHP on Windows 95/NT/2000 are:
|
||||
<itemize>
|
||||
<item> 1st Page 2000 - Rated 1st (the best HTML editor) <url url="http://www.evrsoft.com">
|
||||
<item> Cool Page - Rated 2nd <url url="http://www.coolpage.com">
|
||||
<item> Coffeecup - Rated 3rd <url url="http://www.coffeecup.com/editor">
|
||||
<item> Arachnophilia - Rated 4th <url url="http://www.arachnoid.com/arachnophilia/index.html">
|
||||
</itemize>
|
||||
The best HTML editor is <bf>1st Page 2000</bf>, and it is a excellent HTML editor.
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
|
||||
|
||||
|
||||
<chapt> IDE tools for PHP <label id = "PHP IDE">
|
||||
-->
|
||||
<sect> IDE tools for PHP <label id = "PHP IDE">
|
||||
|
@ -738,7 +830,15 @@ and see also <ref id="ptags" name="ptags of PHP">
|
|||
<p>
|
||||
PHP IDE/editor on MS Windows platform are :
|
||||
<itemize>
|
||||
<item> Soyal, a excellent PHP editor (MS Windows) <url url="http://soysal.free.fr/PHPEd">
|
||||
<item> Rated 1st (the best PHP tool on MS Windows) :
|
||||
PHPTriad is a complete PHP development and server environment for
|
||||
Windows. It installs PHP, Apache, MySQL, and PHPMyAdmin, both installing and setting up
|
||||
the environment. PHPTriad is at
|
||||
<url url="http://www.phpgeek.com/phptriad.php">
|
||||
and at <url name="mirrorsite" url="http://sourceforge.net/projects/phptriad">
|
||||
<item> Rated 2nd : PHP Coder <url url="http://www.php-ide.com">
|
||||
<item> Rated 3rd: PHPEd (Soyal), an excellent PHP editor (MS Windows) <url url="http://soysal.free.fr/PHPEd">
|
||||
<p>
|
||||
<item> IDE for PHP editor (MS Windows): <url url="http://www.phpedit.com">
|
||||
<item> Color editor gvim for PHP (Win and linux)
|
||||
at <url url="http://metalab.unc.edu/LDP/HOWTO/Vim-HOWTO.html">
|
||||
|
@ -1205,6 +1305,22 @@ C:\> c:\Program Files\php\bin\php filename.php
|
|||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect1>Standalone MS Windows GUI applications using PHP<label id = "winapp">
|
||||
<p>
|
||||
Since PHP is general purpose scripting language and is like a <it>"glue"</it>
|
||||
language, you can use it develop standalone MS Windows GUI applications.
|
||||
PHP can be very easily combined with MS Windows C++ GUI classes to create
|
||||
GUI applications. And developing applications with PHP is extremely fast
|
||||
as it is a scripting language and it's runtime performance is also excellent
|
||||
as compared with other scripting languages like Perl, Visual Basic and Python.
|
||||
|
||||
PHP can also be used for developing standalone GUI applications for Linux/Unixes.
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1290,8 +1406,8 @@ limitations -
|
|||
is eliminated in PHP scripting language.
|
||||
<item> PHP applications are very stable and do not depend on the browser
|
||||
technologies unlike Javascript applications which depend on browsers.
|
||||
PHP will give you the freedom to select any server platform and browser does
|
||||
not know that the HTML page is generated by PHP!!
|
||||
PHP will give you the freedom to select any server platform. The browser does
|
||||
not know that the HTML page is generated by PHP !!
|
||||
<item> PHP has excellent database conectivity to all SQL database servers.
|
||||
<item> PHP has partial support for Object oriented features
|
||||
<item> PHP has C++, Perl, Javascript like syntax features and has programs like
|
||||
|
|
|
@ -46,7 +46,7 @@ Vi Improved with syntax color highlighting
|
|||
"name="
|
||||
alavoor@yahoo.com
|
||||
">
|
||||
<date>v17.0, 14 June 2001
|
||||
<date>v17.1, 28 June 2001
|
||||
<abstract>
|
||||
This document is a guide to quickly setting up the Vim color editor on Linux or Unix systems. The information here will improve the productivity of programmers because the
|
||||
Vim editor supports syntax color highlighting and bold fonts, improving the
|
||||
|
@ -679,6 +679,9 @@ set autoindent
|
|||
"
|
||||
" You may want to turn off the beep sounds (if you want quite) with visual bell
|
||||
" set vb
|
||||
|
||||
" Source in your custom filetypes as given below -
|
||||
" so $HOME/vim/myfiletypes.vim
|
||||
</CODE>
|
||||
It is <bf>very strongly</bf> recommended that you set the <it>tabstop</it> to 4 and
|
||||
<it>shiftwidth</it> to 4.
|
||||
|
@ -751,6 +754,9 @@ set ignorecase
|
|||
" You may want to turn off the beep sounds (if you want quite) with visual bell
|
||||
" set vb
|
||||
|
||||
" Source in your custom filetypes as given below -
|
||||
" so $HOME/vim/myfiletypes.vim
|
||||
|
||||
" Make command line two lines high
|
||||
set ch=2
|
||||
|
||||
|
@ -856,39 +862,63 @@ This section below is obtained from gvim session by typing 'help syntax' -
|
|||
bash$ gvim some_test
|
||||
:help syntax
|
||||
</code>
|
||||
Click on Menu Window=>Close_Others to close other Window. And then do CTRL+] on 'Syntax Loading Procedure' menu which will take you there.
|
||||
Click on the menu Window=>Close_Others to close other Window. And then do CTRL+] on 'Syntax Loading Procedure' menu which will take you there.
|
||||
(Use CTRL+T to rewind and go back).
|
||||
|
||||
If a file type that you want to use is not detected yet, there are two ways to
|
||||
add it. It's better not modify the <it>$VIMRUNTIME/filetype.vim</it> file. It will be
|
||||
overwritten when installing a new version of Vim.
|
||||
Create a file in $HOME/vim/myfiletypes.vim and put these line in it -
|
||||
If a file type you want to use is not detected, then there are two ways to
|
||||
add it.
|
||||
<bf>Method 1: </bf> You can modify the <it>$VIMRUNTIME/filetype.vim</it> file,
|
||||
but this is not recommended as it will be overwritten when you
|
||||
install a new version of Vim.
|
||||
|
||||
<bf> Method 2: </bf> Create a file in $HOME/vim/myfiletypes.vim and put
|
||||
these lines in it -
|
||||
<code>
|
||||
"
|
||||
*************************************************************
|
||||
" Filename : $HOME/vim/myfiletypes.vim
|
||||
" myfiletypefile
|
||||
" See the document by typing :help autocmd within vim session
|
||||
" see also the doc at /usr/share/vim/doc/autocmd.txt
|
||||
" This file will setup the autocommands for new filetypes
|
||||
" using the existing syntax-filetypes.
|
||||
" For example when you open foo.prc it will use syntax of plsql
|
||||
" Basically does :set filetype=prc inside vim
|
||||
" Add a line in $HOME/.gvimrc as below:
|
||||
" so $HOME/vim/myfiletypes.vim
|
||||
"
|
||||
*************************************************************
|
||||
|
||||
augroup filetype
|
||||
au! BufRead,BufNewFile *.mine set filetype=mine
|
||||
au! BufRead,BufNewFile *.xyz set filetype=drawing
|
||||
au! BufRead,BufNewFile *.prc set filetype=plsql
|
||||
au!
|
||||
au! BufRead,BufNewFile *.phc set filetype=php
|
||||
au! BufRead,BufNewFile *.mine set filetype=mine
|
||||
au! BufRead,BufNewFile *.xyz set filetype=drawing
|
||||
au! BufRead,BufNewFile *.prc set filetype=plsql
|
||||
augroup END
|
||||
</code>
|
||||
|
||||
Then add a line in your $HOME/.vimrc and $HOME/.gvimrc file to set the "myfiletypefile" variable to
|
||||
the name of this file. (<bf>CAUTION:</bf> You MUST put this in both vimrc and gvimrc files
|
||||
Then add a line in your $HOME/.vimrc and $HOME/.gvimrc file to source
|
||||
in the file "myfiletypes.vim".
|
||||
(<bf>CAUTION:</bf> You MUST put this in both vimrc and gvimrc files
|
||||
in order for this to work) Example:
|
||||
<code>
|
||||
let myfiletypefile = "~/vim/myfiletypes.vim"
|
||||
so $HOME/vim/myfiletypes.vim
|
||||
</code>
|
||||
|
||||
<bf>NOTE:</bf> Make sure that you set "myfiletypefile" before switching on file type
|
||||
<bf>NOTE:</bf> Make sure that you set "so myfiletypes.vim" before switching on file type
|
||||
detection. This is must be before any ":filetype on" or ":syntax on"
|
||||
command.
|
||||
|
||||
Your file will then be sourced after the default FileType autocommands have
|
||||
See the documentation on autocommand at -
|
||||
<itemize>
|
||||
<item><bf>:help autocmd</bf> (within a vim editing session)
|
||||
<item>See also the doc at /usr/share/vim/doc/autocmd.txt
|
||||
</itemize>
|
||||
|
||||
Your file will then be sourced in after the default FileType autocommands have
|
||||
been installed. This allows you to overrule any of the defaults, by using
|
||||
":au!" to remove any existing FileType autocommands for the same pattern.
|
||||
Only the autocommand to source the scripts.vim file is given later. This
|
||||
makes sure that your autocommands in "myfiletypefile" are used before
|
||||
makes sure that your autocommands in "myfiletypes.vim" are used before
|
||||
checking the contents of the file.
|
||||
<!--
|
||||
*******************************************
|
||||
|
|
Loading…
Reference in New Issue