Finally I got my release 1.0 done, these are the things that I work on for this release:

* I incorporated Regular Expressions for get the information of the package name.
* To find out the source of a package, I’m consulting the local database, if the file is not in the local database then I using yumloader .
* The program is retrieving a txt file to the user, detailing about the packages included in the .iso, this file will detail this kind of situations:
for example you asked for this package:
And the program is retrieving this one to you instead:
Because the source of ruby-gtksourceview is ruby-gnome2, so this file would for information purposes.

* I’m checking if two files came from the same source, the source is just downloaded once.
* Some other small changes in the code.

although I have some issues like the text file has some content at the end of the program execution, but when is included into the iso image the content is lost partially (need to dig into it).
Another issue is when I’m working with this particular package: ruby-gtksourceview-0.18.0-1.fc10 during the execution several lines like this appear:
sh: ruby: command not found
I don’t think is related to the program, although can be, I’m not sure.

I need to incorporate a way to read any kind of CD/DVD’s, for now my code reads just Live CD’s, that is part of the improves for coming releases, among with validations in several points.

For take a look in my project click here.

I appreciate suggestions and comments.

NIS (Network Information Service), setting up a NIS Server and client:

Install the next packages:




Setting up NIS Server:

Set the domainname in the master server by the command domainname, example:

#domainname nad810.org

Until this moment in /var/yp/ directory, there is two elements:

  1. bindings directory (which is empty) and
  2. nicknames file, which has this content:
  • passwd passwd.byname
  • group group.byname
  • networks networks.byaddr
  • hosts hosts.byname
  • protocols protocols.bynumber
  • services services.byname
  • aliases mail.aliases
  • ethers ethers.byname

Modify the Makefile to support:

    • Minimum UID 5000

    • Minimum GID 5000

    • Enable slave servers

    • Merge user password and group password

    • map files for passwd, group, hosts, rpc, and services

Run the command ypinit -m

* perhaps is neccesary to give the entire path for ypinit command and run it like this:

#/usr/lib/yp/ypinit -m

You will be prompt by this command to notify the names of any NIS servers. (important don’t get confuse in between server’s host name and domain name). So when the name of the server is in the list press Ctrl + D for finish.

Edit the files:

  • securenets

    In this file we specified which clients are valid for the server respond to. If nothing is specified in this file, the access is given to everyone. For security reasons is recommended specify the IP address or the networks allowed to use NIS.

    Note: In my case I have this file in /usr/share/doc/ypserv-2.19/securenets, and I configured it to allow any host in the network

  • /etc/ypserv.conf

    This file is the configuration file for the ypserv daemon. It also may be used to control the behavior of the rpc.ypxfrd daemon if is being used.

    I decided leave the file without any change.

If there is any slave server:

# /etc/rc.d/init.d/ypxfrd start

Start the NIS server:

# /etc/rc.d/init.d/ypserv start

Initialize the rpc.yppasswdd daemon if you want to handle NIS passwords:

# /etc/rc.d/init.d/yppasswdd start

Initialize the maps files:

# /etc/rc.d/init.d/ypbind start

Now is necessary edit /etc/nsswitch.conf, this file tells the system where to look for database files.

I added “nis” to this entries in that file:

passwd files nis

shadow files nis

group: files nis

hosts: files dns nis

Setup a NIS client

Set the same domain name that the NIS server:

#domainname nad810.org

Edit the /etc/yp.conf file and add:

ypserver <NIS server IP> (or any other option explained in the file)

This file is used to control the behaviour of the client daemon. You are allowed to specify domains and/or servers in this file.

After that:

#service ypbind start


# /etc/rc.d/init.d/ypbind start

Setting NFS:

In the Server:

Modify the file /etc/exports/ adding this line:


Where is my network.

In the Client:

Install autofs package

Edit the /etc/auto.master file and add this entry:

/home /etc/auto.home –timeout 600

Edit the /etc/auto.home file adding this entry:

* -fstype=nfs,soft,intr

Edit the /etc/exports file adding:

/home *(rw, sync)

Restart the autofs service:

service autofs start

If you want to keep after reboot do:

service autofs start

Linux Terminal Server Project (LTSP) “is a free and open source add-on package for Linux that allows many people to simultaneously use the same computer. Applications run on the server with a terminal known as a thin client (also known as an X terminal) handling input and output. Generally, terminals are low-powered, lack a hard disk and are quieter than desktop computers because they do not have any moving parts.” (Wikipedia).

How it works?

When configured for network booting (PXE is not the only way, there is some more like Etherboot or NetBoot) the client first requests an IP address from the LTSP Server (which has a DHCP server running).

Once the IP has been gotten, the Linux kernel is transfer to the client by TFTP protocol, which is another server running in the LTSP server.

Then, the client mounts its root filesystem, by the NFS server running in the LTSP Server. After that loads Linux and starts the X window system. The client connects to the XDMCP login manager on the LTSP server.

I installed ltsp version 5.1, so in this version (and any newer that 5) the client first builds an SSH tunnel to the LTSP server’s X environment, through which it will start the LDM login manager (on the LTSP server). From this point forward, all programs are started on the LTSP server, but displayed and operated from the client.


To try this package I used my Laptop which have Fedora 10, following the steps that the guys from “K12Linux” (LTSP for Fedora) recommend in their Install Guide.

So, I installed the ltsp-server package:

# yum install ltsp-server

And since I want to test the client in the same machine but I can’t use KVM (my Laptop does not support virtualization very well) I don’t need to install ltsp-lvclient, instead of that, I will use a virtual machine on VirtualBox.

– This entry should have to be added to /etc/exports file:

/opt/ltsp *(ro,async,no_root_squash)

That will mount the files within ‘/opt/ltsp’ (server) into the client root filesystem with read-only permissions.

– We need a interface for handle the LTSP as well, we can use the ifup command for that:

# ifup ltspbr0

– This will bring this new interface up, run ifconfig command and the new interface will be there:


if you want to have it even after rebooting, need to have networking running (chkconfig network on)

– We need to turn on and start (by using ‘chkconfig servicename on’ and ‘service servicename start’) the next services:






And then, put the next servers on:





– Now the next step will take time (believe me, better do something else meanwhile….), execute this command to build the client:

# ltsp-build-client

When that be finish, you will see the next message:


In my case I had some troubles with my machine so I had to do it twice, if that  happen to you, you have to erase the content of /opt/ltsp/ file before try to build the client again, otherwise it won’t let you do it.

Now is time to test it, open you VirtualBox (I assume that you have already one machine on it). Select the machine’s settings (because we need to specify that the interface used by our vm is ltspbr0) and in the Network tab change the interface like this:

Specifying the interface for Virtual the machine.

Specifying the interface for Virtual the machine.

Then, start the machine and press F12 to enable PXE (stand for Preboot eXecution Environment, also know as “pixie”). Through that we won’t let the system start the boot process from the local hard drive, but from the network interface.

If everything goes right, the authentication screen will appear:


So you can authenticate with any valid user name in your machine.

I found this project useful since I have an extra machine at home, kind of old, but which can be useful for this purpose, so if I’m using my desktop computer, somebody else could use the old pc to connect as client of it and both work at the same time, nice…!, don’t you think?

Finally I got it…. ! I was scared about the fact that I had to read a Live CD and get the list of packages that it includes, but thanks to God is working.

Very long night, but with good results…

This is my code:  CorrespondingSource0.9

I tested it with a Fedora 10 Live CD, what it does is find the file system, mount it (for all the ones who knows how is a Live CD and all that mess with the images: yeah, was fun!), then access the rpm database of the CD and give a list of all the packages that are including in the disk.

I plan to merge this with the code that I already have done and hopefully be able to add more features to this project.

One more step…

For my project I had to make first a Bash Script (that I posted some ago) and now I had to translate it into Python; the task of this script is download a package from cvs and get the source code in a ISO image.

(I’m a Python newbie so, welcome any suggestion).

To see the script click HERE

For a suggestion of one of my teachers (Danny Abesdris) I decide to try Komodo Editor 5, he showed us this tool and I liked it, as a programmer I’m always attracted by having available features like call tips, autocomplete, syntax colouring and syntax checking because in easier to learn in that way.

Komodo Editor has other capabilities like multi-language file support (Perl, PHP, Python, CSS, HTML, JavaScript, XML… etc),  Vi emulation among some others things (that I guess will be able to discover very soon).

So, I downloaded it from:  http://www.activestate.com/komodo_edit/

I got the tarball, unzipped it, run the install.sh script… but I got this message:

chcon: unrecognized option ‘–quiet’
Try `chcon –help’ for more information.
chcon: unrecognized option ‘–quiet’
Try `chcon –help’ for more information.
chcon: unrecognized option ‘–quiet’
Try `chcon –help’ for more information.
chcon: unrecognized option ‘–quiet’
Try `chcon –help’ for more information.
install: error: could not set SELinux security context for ‘/home/Patty/Komodo-Edit-5/lib/python/lib/libpython2.6.so’: ‘texrel_shlib_t’, ‘textrel_shlib_t’, ‘shlib_t’, ‘s0’ contexts failed

To fix the problem it necessary  just make a small change in the file: selinuxlib.py (which is in the installation package directory, inside of “support” directory) in this line:

cmd = ‘chcon -t %s –quiet “%s”‘ % (context, path)

to make it like this:

cmd = ‘chcon -t %s “%s”‘ % (context, path)

and it will works without any problems.

So if somebody want to try it and get same trouble, just need to try this.

* Display the longest and shortest usernames on the system (usernames are in the first field in /etc/passwd).


* Loop through the files in your home directory, and for each readable file, ask whether the file should be printed, mailed to you, or ignored (P/M/I) and then take the appropriate action.


*Count the number of files in the user’s home directory which are not readable.