Archive for the ‘FreeBSD’ Category.

How to make Apache handle. asp and .aspx links in FreeBSD or Linux? (Updated)

Ok, so what do you do when a site that was based on asp.net is converted to a Linux box and your product shipped with links to sites such as http://our.home.page/index.asp and many other .asp or aspx sites?

Should you use mono?
Yes, probably

See my mono post on Asp.Net here:

Asp.Net web services on FreeBSD and Apache using Mono

Should you migrate your code to php or ruby or another open source language?
Sure, maybe

If you choose not to go with mono at this point because it might be easy to re-write your code in php or ruby or any other open source language, especially if you are doing nothing more than echoing html code after performing simple calculations.

I haven’t tested it yet, but you may get a lot of the asp code automatically converted using this tool: asp2php

What about the fact that unchangeable links to my pages end with .asp or .aspx entensions?
It doesn’t matter what the file extension is, you can have that file extension handled by any scripting language. For example, to configure Apache to have php handle .asp or aspx file, you can follow the steps below.

If you have an index.asp file that should automatically be served by default, it is probably not in the list of files to serve by default, which is probably just index.htm and index.php. You can either rename index.asp to index.php or modify the httpd.conf to include the index.asp file. These steps assume you are changing the httpd.conf.

  1. Change to the apache configuration directory: /usr/local/etc/apache22/
  2. Edit the httpd.conf with ee.
    ee httpd.conf
  3. Search for “DirectoryIndex” to find the section where the directory index is configured.
  4. Add index.asp as the first item as shown:
    DirectoryIndex index.asp index.php index.html
  5. Change to the “Includes” directory which by default is here: /usr/local/etc/apache22/Includes
  6. Create a file that is named ending in .conf (For example, to show what the file does in the name, I used asp-as-php5.conf):
    # Handle .asp and .aspx with php
    AddType application/x-httpd-php .asp
    AddType application/x-httpd-php .aspx
  7. Restart apache. Now your .asp and .aspx files will be handled by php.

Copyright ® Rhyous.com – Linking to this page is allowed without permission and as many as ten lines of this page can be used along with this link. Any other use of this page is allowed only by permission of Rhyous.com.

FreeBSD 7.3 Released!

How to add a DataGridTemplateColumn using a button to a WPFToolkit DataGrid that is bound to a DataTable?

Ok, so here is my goal. I have a DataGrid that is going to be bound to a DataTable.

I want to add a DataGridTemplateColumn when the DataContext changes.

For each row, I have an value that is either normal, warning, or error. If normal, I don’t want a button on the column at all. If error or warning, I want a button.

So the DataTable looks something like this but in my larger app (this is a minimal example) the data is dynamic in that it can contain different numbers of rows, difference column names, etc. So a static View and static binding isn’t going to work.

Field Value Compare
a 1 1
b 2 3
c 3 5
d 4 4

So, the idea is to get the WPFToolkit’s DataGrid view to look like this.  If the numbers differ by 1, it is a warning.  If the numbers differ by 2 it is an error.

Field Value Compare Action
a 1 1 Normal
b 2 3
c 3 5
d 4 4 Normal

So how do I do this with a WPFToolKit DataGrid that is bound to a Table?

Hopefully, I will figure this out:
Windows 7 64 bit
Visual Studio 2008 SP1
.NET 3.5
WPToolKit

I don’t have it working yet…

Step 1 – Create a new WPF Application project in Visual Studio

Step 2 – Add WPFToolKit as a Reference

  1. Right-click on project and choose Add Reference.
  2. Under the first tab called .NET select WPFToolkit.

Step 3 – Create the View

  1. Open the Window1.xaml.
    <Window x:Class="DataGridAddButtonColumnTest.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpftk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
        Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
        <Grid>
            <wpftk:DataGrid ItemsSource="{Binding}" Name="mDataGrid" CanUserAddRows="False" IsReadOnly="True" DataContextChanged="mDataGrid_DataContextChanged"></wpftk:DataGrid>
        </Grid>
    </Window>
    
    

Step 4 – Create the Data

  1. Create a TestData class.
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    
    namespace DataGridAddButtonColumnTest
    {
        public class TestData
        {
            #region Member Variables
            DataTable mTable;
            #endregion
    
            #region Constructors
    
    		 /*
    		 * The default constructor
     		 */
            public TestData()
            {
                mTable = MakeSampleDataTable();
            }
    
            #endregion
    
            #region Properties
    
            public DataTable Table
            {
                get { return mTable; }
                set { mTable = value; }
            }
    
    
            #endregion
    
            #region Functions
            private DataTable MakeSampleDataTable()
            {
                DataTable table = new DataTable();
                table.Columns.Add("Field", typeof(string));
                table.Columns.Add("Value", typeof(int));
                table.Columns.Add("Compare", typeof(string));
                //table.Columns.Add("Action", typeof(string));
    
                table.Rows.Add("a", "1", "1");
                table.Rows.Add("b", "2", "3");
                table.Rows.Add("c", "3", "5");
                table.Rows.Add("d", "4", "1");
    
                // Or should I include the button data here or not?
                //DataTable table = new DataTable();
                //table.Columns.Add("Field", typeof(string));
                //table.Columns.Add("Value", typeof(int));
                //table.Columns.Add("Compare", typeof(string));
                //table.Columns.Add("Action", typeof(string));
    
                //table.Rows.Add("a", "1", "1", "Normal");
                //table.Rows.Add("b", "2", "3", "Warning");
                //table.Rows.Add("c", "3", "5", "Error");
                //table.Rows.Add("d", "4", "1", "Normal");
    
    
                return table;
            }
            #endregion
        }
    }
    [/source]
    </li>
    	<li>Create a TestDataModel Class
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Text;
    
    namespace DataGridAddButtonColumnTest
    {
        public class TestDataModel : INotifyPropertyChanged
        {
            #region Member Variables
            readonly TestData mTestData;
            public event PropertyChangedEventHandler PropertyChanged;
    
            #endregion
    
            #region Constructors
    
            /*
    		 * The default constructor
     		 */
            public TestDataModel(TestData inTestData)
            {
                mTestData = inTestData;
            }
    
            #endregion
    
            #region Properties
            public DataView View
            {
                get { return mTestData.Table.DefaultView; }
            }
    
            public TestData TestData
            {
                get { return mTestData; }
            }
    
            #endregion
    
            #region Functions
            #endregion
    
            #region Enums
            #endregion
    
            // Not sure if I even need to implement this for this test
            #region INotifyPropertyChanged Members
            protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
            {
    
                if (this.PropertyChanged != null)
    
                    this.PropertyChanged(this, e);
            }
    
            #endregion
        }
    }
    
  2. Add code to the Window1.xaml.cs file
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Controls.Primitives;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    using Microsoft.Windows.Controls;
    
    namespace DataGridAddButtonColumnTest
    {
        /// <summary>
        /// Interaction logic for Window1.xaml
        /// </summary>
        public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
            }
    
            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                TestData td = new TestData();
                TestDataModel tdm = new TestDataModel(td);
                mDataGrid.DataContext = tdm.View;
                CreateActionButtonColumn();
            }
    
            private void mDataGrid_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
            {
    
            }
    
            public void CreateActionButtonColumn()
            {
                Binding binding = new Binding("PropertyName") { Mode = BindingMode.TwoWay };
                DataGridTemplateColumn templateColumn = new DataGridTemplateColumn { CanUserReorder = false, Width = 85, CanUserSort = true };
                BindingOperations.SetBinding(templateColumn, DataGridColumn.HeaderProperty, binding);
                DataTemplate dataTemplate = new DataTemplate();
                FrameworkElementFactory tmpButton = new FrameworkElementFactory(typeof(Button));
                tmpButton.SetBinding(Button.NameProperty, binding);
                dataTemplate.VisualTree = tmpButton;
                templateColumn.CellTemplate = dataTemplate;
                mDataGrid.Columns.Add(templateColumn);
    
            }
    
        }
    }
    
    

Help! I don’t know how to finish this…

UPDATE 3/22/2010
I have an answer from http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6619249d-4353-4747-b3ad-d2748ac26d7b.

I will re-write this post with the correct details.

How to configure FreeBSD 8 to use a mini-PCI Intel 2200 AG wireless card on an IBM T40?

How to configure FreeBSD 8 to use an Intel 2200 AG wireless card on an IBM T40?

Usually I try to document every step, but I am not going to document how to install the mini-PCI card in your IBM T40, nor am I going to tell you how to download an ISO to overcome the 1802 BIOS error. But you got links…I hope the work in the future.

Step 1 – Install FreeBSD
I assume you are on a Laptop and want a desktop so here are my instructions for a desktop.
How to install and configure a FreeBSD 8 Desktop with Xorg and KDE?

You should now have your system in the same state that I have mine.

Step 2 – Verifying your device is installed
Ok, before we get started, lets at least make sure that the miniPCI Intel 2200 AG wireless card shows up.

  1. Us pciconf to look at loaded pci devices.
    $ pciconf -lv
  2. Locate the Intel 2200 BG mini-pci card. Mine shows up as follows:
    none3@pci0:2:2:0: class=0x028000 card=0x27018086 chip=0x42208086 rev=0x05 hdr=0x00
    vendor = ‘Intel Corporation’
    device = ‘driverIntel PRO/Wireless 2200BG (MPCI3B)’
    class = network

Step 3 – Setup/Install Intel Wireless Support

Ok, Intel requires you to accept a license agreement and you have to actually enter this acceptance in your /boot/loader.conf. Also you need to enable other wifi modules as well.

  1. Su to root.
    $ su

    Password:
    #

  2. Edit the /boot/loader.conf with your favorite editor (lets use easy editor or ee)
  3. # ee /boot/loader.conf
  4. Enter the following lines:
    # Intel 2200 BG mini-PCI
    legal.intel_iwn.license_ack=1
    if_iwn_load=”YES”
  5. Save and close /boot/loader.conf.

Note: If you want to see this work before you move one, feel free to reboot now.

I believe at this point you can connect to any wireless network that is not secured (not using WEP or WPA).

Request for Adobe Flash player to exist native on FreeBSD is #3 on the Flash Player popularity list, lets make it #1

If you go to Adobe’s bug database for flash player and look up the most popular bug/feature requests for Flash Player you will see a request for Flash Player to be supported natively on FreeBSD is the #3 issue based on votes.
Adobe Flash Player Bug and Issue Management System – Popular Issues

Only 339 users have voted for this. There has to be more than 339 users in the FreeBSD community that want this. There are almost 8,000 fans on Facebook. So what we need is for these fans to unite and take just a moment to vote.

Lets see if we can be the #1 issue, and by a lot.
PC-BSD especially needs this. They are also trying to promote this bug. There is a link on the right of their home page. PC-BSD is doing its best to give us flash support using Linux compatibility, but it just isn’t enough. I have tested a few sites that just act weird or don’t work.

How to vote

  1. Create an account with Adobe by first going here:
    http://bugs.adobe.com/jira/secure/Signup!default.jspa

  2. Fill out the form to create a user account.
  3. Once your user account is created, go to your email and wait for an email to confirm your account. Make sure to check your junk mail if you don’t see it.
  4. Click the link in the email to activate your account.
  5. click the OK button on the web page once activated and you are taken to the login page.
  6. Log in.
  7. Select Projects | Flash Player and then click Popular Issues or just go to this link:
    http://bugs.adobe.com/jira/browse/FP-1060

  8. On the left there is a section called voting where you can click vote: Click it.

You have now voted for this issue.

Thank you all for voting,

P.S. Does this post make me a non-political lobbyist?

Debian and Ubuntu users have the "Elitism" attitude or Being Technical is no excuse for being rude!

So I keep hearing complaints that FreeBSD users have a rudeness about them that some call “Elitism”.

Well, this is true, I have commented on forum posts when I have seen such. However, it is not the case that this is something that is strictly limited to FreeBSD users.

They past few days I was helping a user install Ubuntu on VMWare Server. Since I was the only one really helping the user he started making him comments directly to me.

Next thing I know, I was getting railed on by an Debian / Ubuntu guy.

First, he called me out directly and told me to “pay attention”:

Jared: Please, pay attention, that it should be special reason to use VMWare Workstation, because it’s not free.

What? I shouldn’t help this guy because his software is not free? This is obsurd.

Now, since the customer was asking how to do this with VMWare, I was quite puzzled, so I sent him an email explaining that containing this exact text:

When the person who started the discussions says that they are using VMWare you help them with their issue, you don’t rag on them for the version they are using.

You maybe should take a moment an re-read the post.

Yes, I was a little rude back. I could have responded better. This is a learning experience for next time.

Then he came back at me with a this:

Jared,

Actually you’re right. That’s why you also should re-read the initial posts and see that TS was talking about VMWare *server*. Also, as I understood, you are working in company that ignore risks of using illegal SW if you don’t care about it’s cost. Please, do not spread this approach to others.

So now he attacks my company and says I work for a company that ignores the risks of illegal software. Which is actually quite funny and ironic. I work for LANDesk and one of our main features is Software Licensing Monitoring, a feature that tracks your software usage vs. license count and makes sure that companies are not overusing licenses or stealing software.

Anyway, whether you are a FreeBSD user or a Debian user or technical in any way it doesn’t matter; Being technical is no excuse for being rude.

Speak nicer in forums and mailing lists. Stop flaming other people. Especially newbies. Don’t forget we were all newbies once.

How to troubleshoot Xorg on FreeBSD 8?

Ok, so I have been in Tech Support for most of my career and troubleshooting has become a skill I use without thinking about it.

Recently, I have been reading some posts on the FreeBSD forums about Xorg problems. I thought I would write a post about “How to troubleshoot Xorg.

Step 1 – Document the problem clearly

  1. Reproduce the issue and store any output errors or screenshot them (if possible) as needed.
  2. Reproduce the issue again but this time while doing so, document each step you took to reproduce the issue.

Note: You wouldn’t believe how many issues are solved during the process of documenting the steps to reproduce an issue.

Step 2 – Gather Hardware Details
Lets make sure we know what is in your system. Gather the output of this command to get the AGP, PCI, or PCI-Express devices in your system.

# pciconfig -lv

Step 3 – Gather Installed Software Details
We are going to run some commands here. The output of every command you run should be stored into a text file. If you are getting help from a forum, a mailing list or you are paying for support for a company, they are going to want as much information as possible.

Note: I assume you have sshd enabled and that you can both ssh to your machine and sftp to your machine. A windows ssh tools is PuTTY. A windows sftp tool is WinSCP.

  1. Get the basics about the installed FreeBSD system.# uname -a
  2. Make sure Xorg is installed and that any other required software or add-on software such as the Windows Manager (KDE, GNOME, Fluxbox) is installed.# pkg_info
  3. It is often good to just get the list of Xorg packages:# pkg_info |grep xorg
  4. Look in the package list to make sure that if you are using an NVidia or Intel driver that requires the installation of a binary package (as they are not open source) that you have installed the driver.

Step 4 – Gather Software Configuration Details

  1. Gather the Xorg configuration file. Now one does not always exists, but if it exists, it usually located at /etc/X11/xorg.conf
  2. Gather the /etc/rc.conf file so you can see what it is configured to enable.
  3. Gather the /boot/loader/loader.conf file so you can see what it is configured to enable.
  4. Gather the ~/.xinitrc or /home/username/.xinitrc file.

Step 5 – Gather logs and examine logs for errors

Gathering Logs

One process for making it easier to view logs and find the cause of errors. It is an obvious procedure to some.

  1. Backup all logs.
  2. Delete logs once backed up.
  3. Duplicate the issue.
  4. Gather the logs (both backed up and new logs).

The key is to limit the amount of data to go through. So by deleting the logs and duplicating the issue as fast as possible, your logs will be as small as possible and easier to go through.

  1. Gather the /var/log/Xorg.0.log file.
  2. You might want the /var/log/messages file.

Examine the logs for errors

Now that you have the smallest amount of data possible, it may be easier to search the logs for errors.

  1. Start out by greping or searching for words like fail, error, etc…
  2. If you didn’t find anything, then visually scan down the logs.

A nice way to watch a log file live as you duplicate the error is to use tail.

  1. Open two shells, maybe one directly on the system and one through ssh.
  2. In one shell, run this command to watch a specific log file, such as Xorg.0.log. (For this use the ssh shell if you have sshd enabled and opened on through ssh)# tail -f -n 50 /var/log/xorg.0.log
  3. Duplicate the issue in the other shell. (This would be the shell directory on the system.)
  4. Watch the dynamic log live and try to find the line where the error occurs.

Tip #1 – Enable sshd when testing

Sometimes running Xorg may result in a black screen and you can’t switch between ttys either using Alt+F# so you may be tempted to hard power off. Most the time if you have enabled sshd, you can ssh in and kill Xorg or reboot gracefully, saving you a hard power off.

Tip #2 – Try running Xorg with and without an xorg.conf

Supposedly you don’t need and xorg.conf always but there are times when you would want one. I have seen forum posts where the solution goes both ways. One user’s issue was resolved by not using an xorg.conf and letting Xorg just start and automatically handle everything. Another users issue was resolved by using an xorg.conf. So try it both ways.

Tip #3 – Use the FreeBSD forums correctly

If you have all of the above data and you still have an issue, if you go to Xorg section of the FreeBSD Forums, and make a post, you will be able to provide an educated, detailed question.

There is fine line between posting too much data or too little data and posting the perfect amount so a reader can have enough data to resolve your issue. I would say it is rare should post all configs and logs, but it also should be rare that you post a question alone without any details.

Ok, so this may not be complete. If you have anything to add please comment.

Writing troubleshooting guides for FreeBSD 8

I was thinking today, that though I am now a Systems Analyst / Developer at LANDesk, that doesn’t change the fact that I have been in Technical Support for 10+ years now and, no to so much brag as to state a fact, I have extensive troubleshooting skills and I am good at writing How to troubleshoot documents. Now having said that, I have not troubleshot FreeBSD for 10 years. While I have used FreeBSD for almost a decade, it often had no problems that required troubleshooting.

One of the first things you learn in support is that everything you troubleshoot has a troubleshooting process and once you have that troubleshooting process documented, you find you can expand on that document little by little. Each issue is solved more rapidly. Issues that are not solved by the process lead to an update of the process so the next time, a similar issue is solved by the process.

So today’s FreeBSD Friday post will be about Troubleshooting.

The March issue of BSDMag released. Remember this is a free online PDF publication.

The March issue of BSDMag released. Remember this is a free online PDF publication.

Get it here:

http://www.bsdmag.org

How to install VMWare Tools on PC-BSD 8?

Ok, so I wanted to see if there was much of a difference between installing VMWare-tools on FreeBSD 8 with Xorg and KDE as on PC-BSD 8. It was my guess that the steps would be next to exactly the same, but maybe there is something different.

See my previous article on this:
How to install VMWare-tools on FreeBSD 8?

Details: I am running VMWare Workstation 6.5 on Windows 7.

In VMWare, I clicked VM | Install VMWare tools.

The virtual media automounted in KDE.

I copied the vmware-freebsd-tools.tar.gz to the desktop.

I opened a shell, and su’ed to root.

The package for compat6x-amd64 was already installed.

I ran these commands to extract the vmware-freebsd-tools.tar.gz file.

cp /home/jared/Desktop/vmware-freebsd-tools.tar.gz /tmp
cd /tmp
tar -xzf vmware-freebsd-tools.tar.gz
cd vmware-tools-distrib

I ran the vmware tools installer.

./vmware-install.pl

I accepted all the defaults and there were no problems.

So I decided to do the Autostart a different way…and it worked too.

I right-clicked on the icon in the bottom left (normally is the K icon but instead it is the PC-BSD flame) and I choose Menu Editor.

I clicked New Submenu, named it VMWare and hit OK.
I selected the newly created Submenu.
I clicked New Item.
I added an item for /usr/local/bin/vmware-user.
I added an item for /usr/local/bin/vmware-user-wrapper.
I added an item for /usr/local/bin/vmware-toolbox (and under Advanced, I changed this to run as root)
I saved and exited.
I went to System Settings.
I clicked the Advanced tab.
I double-clicked Autostart.
I clicked Add program.
I added the vmware-user-wrapper item that I just added to the Menu.
I rebooted.

Mouse auto-grab, Copy and paste, auto-fit guest, all appear to work well.


Copyright ® Rhyous.com – Linking to this article is allowed without permission and as many as ten lines of this article can be used along with this link. Any other use of this article is allowed only by permission of Rhyous.com.

PC-BSD and FreeBSD are Two of the Fastest Growing Open Source Operating Systems Last Year while Ubuntu-based Operatings system lead growth

So PC-BSD and FreeBSD are getting a lot more attention. They are growing fast. Reports created based on the data from DistroWatch show that PC-BSD and FreeBSD are two of the fastest growing operating systems last year. Of course, despite my bias towards FreeBSD, as it is my favorite distribution, the numbers clearly show that Ubuntu/Debian-based platforms lead the growth.

Ok, so DistroWatch.com counts the hits per day (HPD) to a distro’s home page. Lets compare the hits per day over the past twelve months to the hits per day over the past 6, 3, 1 month intervals to see who is experience the most growth in hits per day as well as who has the highest percentage growth.

Growth in hits per day (HPD) between the 12 month and 1 month charts

Is one month a valid sample size? Of course not, that is why we are doing three month and six months as well. But lets look at it anyway.

PC-OS appears to have the lead here. PC-OS is based on Ubuntu (which itself is Debian-based). Other Ubuntu/Debian-based platforms showing growth are Debian itself, MEPIS, Mint, and Ultimate.

The only other base platform to have more than one distro show up in this list is FreeBSD. As you can see, PC-BSD is second in growth on both HPD and percentage, and FreeBSD is fifth in HPD growth and third in percent growth.

Growth in hits per day (HPD) between the 12 month and 3 month charts

Three months is definitely a larger sample size. Three months means we don’t have as much data skewed by release cycles which cause higher growth temporarily that will be offset by a decline the long months between release cycles.

Again we see similar trends in the three month reports.

Debian itself , MEPIS, Mint, and Ultimate and are all Debian/Ubuntu-based distros.

Again, FreeBSD and PC-BSD are on both the list. PC-BSD is second in HPD growth and leads all distributions in percentage growth.

Growth in hits per day (HPD) between the 12 month and 6 month charts

Ok, so the twelve to six month comparison is the largest sample size can get. Perhaps I should contact DistroWatch.com and see if I can get the raw data for multiple years past, but alas, I only pull the data from the tables they have currently available.

So now we see very similar data again. Seeing similar data a third time using this largest sample size means it is more likely accurate.

Fedora ties Ultimate for first, but the tie breaker has to go to Ubuntu/Debian-based plaftorms as they again lead Mint, Ubuntu, and Ultimate all on the list.

FreeBSD is on both HPD and percentage reports, while PC-BSD only shows up on the percentage report. However, again, FreeBSD is the only base open source operating system after Ubuntu/Debian-based to have two distributions show up between these two lists. For those interested, PC-BSD was fifteenth but only the top eight distros are displayed.


Note: For information on how these reports are created, see this post:
Using QlikView and DistroWatch to report on the most popular open source distributions (BSD, Linux, Unix)


Copyright ® Rhyous.com – Linking to this article is allowed without permission and as many as ten lines of this article can be used along with this link. Any other use of this article is allowed only by permission of Rhyous.com.

PC-BSD 8 Released

PC-BSD 8 released. http://www.pcbsd.org/

Quote from site:

The PC-BSD Team is pleased to announce the availability of PC-BSD 8.0 (Hubble Edition), running FreeBSD 8.0-RELEASE-P2, and KDE 4.3.5

Using QlikView and DistroWatch to report on the most popular open source distributions (BSD, Linux, Unix)

Ok, so I am into FreeBSD and open source software, but I have recently had to do a QlikView implementation for my company LANDesk. QlikView has a feature where you can pull data from the web and report on it. So I needed to learn how to use the web-based reporting, so I decided to do a report from www.distrowatch.com.

Report Goals
There are few things that interests me from the data at DistroWatch:

  • Which base platforms are the most used?
  • Which platforms should software companies focus on supporting?
  • Where does BSD sit in the rankings.

How the report was made
So on the main DistroWatch page, there is a report that will give you the average hits per day (hpd) that a Distro’s web site gets. At the bottom there is a link to full popularity page of just these reports:
http://distrowatch.com/stats.php?section=popularity

So at first glance, you see Ubuntu is the best and Fedora is second and so on. I wanted to take the statistics a bit further. I wanted to know what main base distribution was the most used. What I mean by base distro is this: Ubuntu is #1. But Ubuntu is not a base distribution, instead it is based on Debian. Mint is #3 and is also based on Debian. Debian itself is #6 and it is a base distribution. Fedora is a base distribution.

QlikView can connect to this web page and consume this data. It was also able to loop through and click go to the link for each distribution where it was able to pull the “Based on” results. I did a few little tweaks to clean it up.

So I used QlikView to match each Distribution to its base distribution and built my report. I gathered the cumulative hits per day (hpd) of each base distro by summing the hpd from itself and its child distros. The results are staggering.

Result of the Report
I am going to show you a screen shot of the report, but I am only going to show the top 10 base distributions because otherwise it is to hard to view the report.

# 1 – Debian
Well, I have to say that I new that Debian (13818 hpd) was popular because of Ubuntu, but I didn’t know how far ahead it was compared to other base distributions. I expected Red Hat to be a lot closer but its just not. Lets look at the top ten Debian platforms by hits. In QlikView this is easy, I can simply click on the Debian pillar in the report.

So not only is Debian’s cumulative hits per day first, but it is first by a long ways. The cumulative hits per day of distros based on Debian is more than three times larger than any other base distribution’s cumulative hits. It is pulling away from the pack and nobody is going to catch up any time soon.

What I don’t know is are these new users or are other distributions losing members to Debian or Debian-based distros?

You might be grumbling to yourself and saying some incorrect statement like: Well, Ubuntu doesn’t have Enterprise support like Red Hat. But like I said, that is an incorrect statement. See their support page:
http://www.ubuntu.com/support

# 2 – Red Hat
Now, lets look at the top ten distros under Red Hat.

Ok, can I tell you that I was surprised at these results. I realize that Fedora was huge, I mean it is second on the distro list under Ubuntu, but I had missed the fact that CentOS was getting more than twice the hits Red Hat itself gets. The rest are hardly worth mentioning.

Historically mong Enterprise environments Red Hat is the most known distro, but when you look at these stats, you have to wonder if Ubuntu has taken over. The numbers for Fedora are fine, but for Red Hat they are not really that good. In fact, I keep hearing about companies using CentOS instead of Red Hat and as you can see, CentOS is getting a lot more exposure than Red Hat.

I will make this statement. Based on this data, if you are a software company considering whether to support Debian or Red Hat first, based on this data you have to choose Debian. If you were to make up some fuzzy logic for Red Hat (which due to its enterprise presence may or may not actually be valid) and weight the distributions based on other factors and somehow found a way to say Red Hat and its distro’s cumulative hits per day were worth three for every one, it would still be less than the cumulative hits per day Debian gets.

# 3 and #4 – Mandriva and Slackware
Ok, back to the report. Something that shocked me from the first chart and I had to analyze it further. Slackware? I had no idea that it was third. However, is it really third? It has a lot of very small distros based on it and Slackware itself gets 590 hpd and most the distros get less than 100 hpd. Mandriva is fourth but arguable could be third over Slackware. In fact, I have to call Mandriva third over Slackware. Sometimes you have to look at the data and make a judgment like this. Sorry Slackware, I am not trying to be biased (otherwise I would be talking up FreeBSD). I have no bias to any Linux distribution. I just say this based on the fact that Mandriva (1048 hpd) and the based-on-Mandriva version PCLinuxOS (773 hpd) both get more hits by a long way than Slackware’s top distros. The only reason Slackware got more hpd was because it has a lot of distros that were really small, while there were very few small distros based on Mandriva. The difference in the amount of small base distros is most likely due to the fact that Slackware is one of the oldest Linux distros, if not the oldest remaining distro, so naturally it has more distros based on it.

# 5 – Gentoo
Gentoo’s cumulative 1804 hpd was fourth. I have to apologize to Sabayon (760 hpd) as I had never heard of it until now. Gentoo itself only gets 428 hpd.

# 6 – BSD
What is next. Well, finally BSD shows up at number 6 with 1743 hpd. For those of you that are reading this and only know about Linux, BSD is NOT Linux. It does not run on the Linux kernel and is not likely to use many GNU tools. I hope I don’t drip with too much bias as FreeBSD is my favorite open source distribution.

Lets pull up the chart of BSD distros. There are 15 distributions listed under BSD, which is probably more than most people would believe since BSD often claims that it is not as broken up as Linux, but it has had its share of forks.

FreeBSD (553 hpd) is the main distribution. Of the Linux distributions, only Debian has more software packages available than FreeBSD.

PC-BSD (355 hpd) is to FreeBSD as Ubuntu is to Debian. For being such a new distribution PC-BSD is doing rather well. It is pretty comparable in ease of use to Ubuntu, Fedora, and OpenSUSE. Yes, PC-BSD is fully featured, running a nice windows environment with everything you could want, including a working Flash Player, the ability to configure your wireless card, and more. I recommend that if you are looking for a new desktop distribution, you at least install PC-BSD and give it a try. Ok, so my bias does show a little here.

# 7 – SUSE
So I was very surprised that SUSE wasn’t on this list until #7. Well, OpenSUSE is doing its part getting 1327 hpd. Remember, OpenSUSE is #4 if you just go by distro and not cumulative base distros. I think in time SUSE could be more popular. SUSE is newer than some of the other base distros and so it only has four distros listed. Novell’s SUSE Linux Enterprise (121 hpd) is the second most popular SUSE distro, however, it just not getting any were near the hits I expected it to be getting.

The others
And then there are the rest of the top ten: #8 Arch, #9 Puppy, and #10 Solaris (Or is that Oracle now?). Sorry if your distro was left out, this report is in the control of those who visit the distro’s web pages.

How accurate is this data?
On DistroWatch’s popularity page, it says:

The Page Hit Ranking statistics have attracted plenty of attention and feedback. Originally, each distribution-specific page was pure HTML with a third-party counter at the bottom to monitor interest of visitors. Later the pages were transformed into plain text files with PHP generating all the HTML code, but the original counter remained unchanged. In May 2004 the site switched from publicly viewable third-party counters to internal counters. This was prompted by a continuous abuse of the counters by a handful of undisciplined individuals who had confused DistroWatch with a voting station. The counters are no longer displayed on the individual distributions pages, but all visits (on the main site, as well as on mirrors) are logged. Only one hit per IP address per day is counted.

There are other factors to consider, such as the fact that some of the distributions are Live CD distros and not really platforms meant to be installed. It would be interesting to exclude them and only include installable distros but for lack of time, I didn’t.

I did nothing to verify the accuracy of the data at DistroWatch and any errors you see are not likely mine, as all the data was pulled from DistroWatch, please report any error to them and once they fix these errors, the QlikView report’s data can be reloaded.

Also, this data includes all hits from all areas: Consumer, Enterprise, Education, etc. Unfortunately there is no way I know of to tell where the hits came from. If there is a distribution that is 100% education hits, there would be no way to know that. Obviously if your target is Enterprise, you are left wondering which open source distros are really the most used in Enterprise environments. Unfortunately this report doesn’t answer that question. This is not a report of installed platforms, it is a report of cumulative hits per day. It is what it is.


Copyright ® Rhyous.com – Linking to this article is allowed without permission and as many as ten lines of this article can be used along with this link. Any other use of this article is allowed only by permission of Rhyous.com.

My experience installing FreeBSD 8 using the PC-BSD 8 RC2 installer

Ok, so I was interested in the fact that FreeBSD 8 could now be installed using the PC-BSD 8 installer.

So lets see how easy it is. Remember, this a review of installing FreeBSD 8 with the PC-BSD 8 installer. It is not a review of installing PC-BSD 8.

  1. I downloaded the DVD ISO (and since I am using VMWare I didn’t even have to burn it, I just created a new virtual machine and pointed at the ISO).
  2. I started the install at 3:06 PM.
  3. I found everything simple and easy, it was a click next wizard. I only made changes in selecting my keyboard, changing from installing PC-BSD to install FreeBSD, and configuration the user information.
  4. I did not install any optional components.
  5. I finished installing and booted to FreeBSD 8 by 3:12 PM.

Total time: 6 minutes plus some seconds (I didn’t look at the exact second things started.)

I went through the install quite a few times less than an hour, just testing different settings.

What was great

  • Ok, It was easy. Way easier than Sysinstall.
  • It auto-partitioned for me.
  • It had my keyboard available.
  • Custom partitioning was easy. There is an edit option if you make one with the wrong settings or if you just want to change the defaults slightly.
  • I was able to select zfs partitions. Sysinstall can’t do this yet (well at least not with release yet, maybe stable or current can).
  • It wiped previous disk partitions for me when I reinstalled over the top and chose Fresh Install.

What was questionable

  • Do we really want to have 10 seconds at the text-based PC-BSD splash screen for an install disk?
  • I had a hard time finding Mount Time in the Timezone Settings. It was America/Denver:Mountain Time and I was looking for America/Mountain Time. Probably my fault. But I prefer the world map image that allows you to click where you are above the list, which to me is much better than only the long list.
  • I must have missed the opportunity to name my system. I went through the install twice and couldn’t find a place, not even an advanced section. So it appears you will have to rename the system post install. To rename it afterwards you have to edit the /etc/rc.conf and /etc/hosts and then use the hostname command (or reboot).
  • I am left wondering what distributions installed? Obviously these required distributions are installed:
    • base
    • kernel | Generic

    I am pretty sure these two additional distributions are included as well: (which is nice because I recommend these two distributions).

    • games – This is what gives you those awesome tips every time you log in.
    • man – This is the man (manual) pages for all the
    • However, I don’t know if another distribution was selected.

  • I didn’t see anywhere to configure my IP Address information if I planned to have a static IP, not even an advanced section. Well, I actually found that if I choose to install from the network, I could setup my IP Address, but it when I did this, it didn’t work at all. It failed to give me an IP Address and yes I entered the correct information. I am a expert at IP and Networking and I did it multiple times and rebooted and tried through multiple installs. And I still couldn’t name my system.
  • Not because it didn’t work, I also didn’t like the IP Address configuration fields. The width was weird. I get annoyed when I am forced to type 255.255.255.0 when /24 would work. Both methods should be allowed.
  • There are tabs on the left but I couldn’t click on them. That would have been nice. To do a minimal install of FreeBSD, I only need to make a change on Keyboard and Users so this could have even been faster if I could have clicked just straight to those (which I wouldn’t do the first time, but after doing this a lot, an expert would want to skip).
  • When customizing the partitions, I would have liked to have the ability to move partitions up and down if I ordered them incorrectly.
  • When I installed making everything ZFS partitions (except swap), the install failed. Maybe I forgot something important, or it is not yet fully supported to use ZFS on all partitions. Either way, if it doesn’t work, it would be nice to be informed before hand.
  • I was left wondering, if I choose FreeBSD, and add components such as Firefox, am I getting FreeBSD packages or PBIs or nothing? Well, I tried it and sure enough, it appears to have installed the PBIs, but since Xorg wasn’t there, nothing really worked. So when installing FreeBSD instead of PC-BSD, don’t expect any of the options to work.

Were there enterprise features?
Well, when it comes to installing, the enterprise features are the ability to script the install and provide a distinct computer name and other distinct settings when doing so.

The one place where open source and FreeBSD in particular fails to come anywhere close to competing is in the enterprise features surrounding the operating system. Yes FreeBSD is enterprise ready, but it’s installer is not even close. It doesn’t matter if your OS is enterprise ready or not if all the features around the OS are not enterprise ready, such as the installer and its ability to be scripted and reused easily. Even when using an image, Microsoft has Sysprep. Yes, you can script something with *nix, but a scripting developer should not be needed for OS Deployment. No platform is easier to deploy scripted than Microsoft’s operating systems and open source platforms should take a look at what they are doing and find a better and easier way to do it. I have performed scripted installations of FreeBSD on numerous occasions and I am always frustrated with its poor feature set.

Updated: Feb 23, 2010: Please read the comment by Kris Moore. Can I tell you I like it even more after this post.

I never saw anywhere to create or use an installation script. This is a key feature for enterprise customers. If you cannot do a scripted install, you are not an enterprise solution. Maybe there is a different way to do scripted installs of FreeBSD using the PC-BSD installer that is documented somewhere else. I keep waiting for some distro’s installer to get smart and ask at the end of an regular install if the install settings should be saved as a script.

There are many types of focuses for a desktop: email and docs, graphics or CAD, home user, media center, developer, etc… I have yet to find a distro that gives me the option to install differently for different focuses that is not Microsoft and does not cost money. Microsoft doesn’t do a good job, having Home, Professional, Enterprise, Ultimate, Media Center, they are closer, but missed the boat too. I want a list of scripts. Script A will install everything a developer needs. Script B will install everything a Graphic Artist needs. Script C will install everything a technical writer needs…etc.

Conclusion
This is an awesome job by the PC-BSD team. You may look at my notes above and think that there was more negative than positive and be surprised by this assessment.

I can quickly get a FreeBSD system up and running as I like without using the annoying Sysinstall tool which asks me dozens of things I don’t want. Just look at my post for installing FreeBSD (How do I install FreeBSD?) where I list 41 steps (and some of those have sub-steps) just to get a minimal install. PC-BSD has taken the Ubuntu approach where the install is simple and customizations that experts need can be accomplished post installation. I may in the near future be changing my How do I install FreeBSD? post to use the PC-BSD installer.

This is a big deal for FreeBSD, in my opinion. I am not saying there isn’t a long road ahead. But lets face it, FreeBSD has refused to update the install in far too long and NO!, Sysinstall is not good enough and hasn’t been good enough and will continue to fall short in the future. So yes there is a long road ahead, but while FreeBSD has been avoiding that road, PC-BSD is now at least driving down it.

iXsystems announces PC-BSD 8.0-RC2

Hey all,

iXsystems has released PC-BSD 8.0-RC2. This looks to be

On the home page, it says: “The PC-BSD Team is pleased to announce the availability of PC-BSD 8.0-RC2 (Hubble Edition), running FreeBSD 8.0-RELEASE-P2, and KDE 4.3.5.”

If you want to see an overview of the changes they have made, you can view them:
http://www.pcbsd.org/content/view/147/11/

They boast an interesting feature which I will probably have to review sometime soon:

  • Brand new System Installer, allows the install of PC-BSD or FreeBSD