Tag Archives: slackware

Slackware 14.1: an interview

I’ve been quite slack ( yip queue the puns ) on reviewing Slackware 14.1 but time has been short and to tell you the truth, after upgrading, there’s not a whole lot different from an existing user’s point of view ( except for that usual Slackware “it just works” air of operation ). That being said, there is a whole heap of functionality in Slackware 14.1 that deserves mention.

First some version numbers to see where SW 14.1 is at. Kernel 3.10.17 is bang up to date and features support for most current hardware. The huge and generic kernels continue to be supplied leaving it up to the user as to which they prefer ( generic requires an initrd be built ). Xfce 4.10.1 and KDE 4.10.5 are featured for desktop environments, both being fairly up to date ( at the time of 14.1’s release ). There’s also a whole lot of gadgetry underneath dealing with the automatic detection of hardware devices without the user resorting to ninja tricks.

A complete development environment including glibc 2.17 and gcc 4.8.2 is on offer along with a host of other development tools like LLVM and Clang. Then we have server standards like Apache 2.4.6 ( along with php-fpm support, my favourite new toy ), php 5.4.20, Perl 5.18.1, Python 2.7.5 and many others. As usual, Slackware’s package list is as complete for server use as you will find anywhere else. 14.1 is also the first Slackware to support a complete UEFI environment including install and booting. For desktop use, there’s a good helping of mainstream apps from Firefox to Amarok ( and including some GTK+-based apps ) however you’ll probably end up using one of the 3rd party repositories ( like www.slackbuilds.org ) to fill in the gaps or compile those apps not included. Security options are covered in detail with OpenSSL, OpenVPN, OpenSSH and GnuPG.

At just over 2GB in size, the installation image is about average for Linux distros but it does include a huge amount of apps and options. I’ve started playing with BTRFS recently and Slackware provides a good environment for this, having a fairly up-to-date btrfs-tools package and install-time support. Of course, Slackware includes support for a number of other filesystems, including all ext versions, xfs and reiserfs. Glusterfs or Ceph would be a nice addition though … PXE and USB installers are available for cases where traditional installation methods are not an option ( and they are quick ).

Slackware ( and derivatives ) remains one of the few Linux distros that allows for a complete RAID1 boot implementation ( something that has saved me on numerous occasions ). I know that there are some options for RHEL-based and other distros but they do seem a bit complex or don’t mirror the /boot slice.

The installation itself remains straightforward but sparse, using an ncurses-based graphics interface. Some of the hand-holding found in other distros is not evident here – you need to partition your disk(s) before installation and make package selections during installation that may seem a little archaic.  After, there are some tools like slackpkg, sbopkg ( 3rd party ) and slapt-get ( 3rd party ) that assist in keeping your installation up-to-date and provide app repositories.

If you want flash ( not flashplayer ) and desktop-style ease of use, then other distros are probably better suited. But if you need a rock-solid server OS or desktop OS you’re willing to tinker with, then Slackware suits the bill.

Update: I completely forgot about one of the most important changes in 14.1 – the switch from mysql to mariadb. There’s a lot of wrangling going on about which is better technically but at this early stage of dev, there’s not much diff between mariadb and mysql. Bigger changes are expected in the newer releases and a gradual move away from 100% compatibility.

Slackware 14.0: An Interview

Wow, Slackware 14.0 is finally here! To say this has been a huge upgrade cycle is putting it mildly. Nearly a year and a half I think? And 5 release candidates. That’s not of course to say there’s anything wrong with that – 13.37 has been serving us just fine since April last year. A testament to the quality of Slackware releases. And anyone who likes to live on the bleeding edge can always follow -current, the development stream.

And so to 14.0. What’s new? Well almost everything. From core system libraries to applications, there have been a lot of changes. But in saying that, 14 retains an uncanny resemblance to its earlier siblings. And continuity in my mind ( and I think Patrick’s ), is the key to Slackware’s success.

I recently worked on a Slackware 9 machine ( not one of mine … ) that had been humming along quite nicely for many years. Unfortunately it had never been upgraded, however, the similarity to a current Slackware installation was striking and pretty much everything was where I expected it to be. There’s something to be said for continuity.

Core

Slackware is now running with Linux Kernel 3.2.29. Pat mentioned in August that he had tried 3.4.9 ( 3.4 series is now regarded as a Long Term Support release ), but had an issue with some oops so he decided to stick with 3.2.x. There has been a  lot of to and fro with regard to udev in this development cycle. Not just how udev is used within Slackware but its interaction with other subsystems. Pat said “Well, udev in this devel cycle has certainly been interesting!” – a change in how udevd starts gave both Pat and Robby a bit of a run around, but you can’t get those 2 down and it was soon sorted out. Udev also works correctly with initrd’s now.

Udisks and Udisks2 are present and updated allowing mostly seamless use of peripherals by normal ( non-root ) users.

As per usual, Slackware includes 2 kernels: huge and generic. Huge includes most drivers built-in whereas Generic includes most drivers as modules – in that case you’ll need to build an initrd to use generic. There is documentation in /README.initrd on the disk on how to do this. And there is also support for compressed modules.

In addition to the standard kernels, there are sample config files for Kernels 3.4, 3.5 and 3.6 in testing if you want to be testing. There is a ‘new’ package for partitioning, gptfdisk  ( used to be known as gdisk ) – the partitioning utility is cgdisk which can be used to partition GPT format disks. This is included in the base initrd for boot-time installation support of large disks ( 2TB and up ).

In its basic form, Slackware comes in 32- or 64-bit formats. The 64-bit version does not natively support 32-bit apps however AlienBob maintains Multilib packages and instructions on using these, allowing one to run native 32-bit apps ( eg. Adobe Reader ) under the 64-bit version of Slackware.

If you are upgrading to 14.0, then the newer CUPS release may require you to update your printer drivers.

Networking and Security

In a surprise move ( at least to me ), 14.0 includes NetworkManager, a GUI configuration tool used to configure any number of networking interfaces including wired and wireless. The basic network scripts are still available and have been enhanced with bridge support ( useful for non-NAT’d networking in KVM ).

There are a massive number of networking tools included with iftop and iftraf being amongst my favorites. Everything is at its latest release ( or close to it ) including the bridge utilities, ISC DHCP ( client and server ) and BIND, dnsmasq for DNS forwarding and DHCP ( in case you don’t want to run full-blown BIND ), ethtool for checking ( and setting ) network interface configurations, wireless utilities and supporting firmware, samba for file-sharing and NTP for time services. Roaring Penguin’s pppoe client is also available for quick and easy pppoe configuration and operation.

There are also the usual collection of CLI news, mail and browser utilities for those who like it old school or who don’t run a GUI. Security is fully covered with OpenSSH, OpenSSL ( now in the 1.x release stream ), OpenVPN and GnuPG 3.

Applications

As java is no longer distributed with Slackware ( due to upstream licensing requirements), there are scripts in /extra to repackage the official Oracle jre/jdk releases as Slackware packages. In addition, AlienBob, packages the OpenJDK ( IcedTea ) release along with the icetea-web browser plugin and rhino javascript engine for OpenJDK.

A number of Gnome-related libraries have been included to make life easier for those running ( or compiling ) Gnome apps. Apache is at 2.4.3 ( with SSL support ), PHP is at the 5.4 level and is now built with php-fpm ( a FastCGI implementation ) providing good memory and CPU utilisation for heavy traffic environments.

Development tools run the full gamut ( gcc, Perl, Python, Ruby, etc. ) and this is one reason why Slackware has always made for a good Development/Workstation environment.

X and Apps

XFCE 4.10 and KDE 4.8.5 are the 2 main GUI environments and Xorg is at 1.12.x. I’ve been using KDE 4.8.x since it was made available by AlienBob and it’s as solid a release as you’ll find anywhere. There are browsers to spare and my main work pair, Firefox and Thunderbird are at their latest releases. Graphical development tools, music and video players ( Amarok, Juk, Audacious, Dragon ), office apps ( Calligra ) – you name it, they are all here. And if you’re missing anything, you can turn to SlackBuilds which maintains simple-to-compile script packages for major apps like Google Earth, Chrome and many others. In addition, AlienBob keeps a fairly well stocked repository of great apps like VLC and LibreOffice on his taper mirror.

Installation

Installation has changed very little but does include support in the installer for additional/newer hardware as a result of the recent Linux Kernel and updated installer features. It looks the same as previous releases though – simple and straightforward with nothing there to really trip you up ( just remember to prepare your disk(s) with at least one Linux-type partition and one swap-type partition ). Installation runs fairly quickly ( a recent machine will finish in under 10 minutes for a full installation ) and completes with a few questions on network configuration, boot loader installation, timezone, mouse and font choices.

Besides DVDROM/ISOs, installation is supported with PXE ( I’ve been using this disk-less method over a number of years for quick and painless installations ) and USB methods as well as NFS, HTTP and FTP. There are detailed instructions on the installation disk about using the PXE and USB methods – the alternate network-based methods should be self explanatory.

Using Slackware

In use, Slackware 14 is stable and solid – as a rock. All the applications gel together and just work ( my core group being the LAMP stack – Apache with SSL, PHP, Perl and a few others ). Yes there are areas that require configuration and the lack of GUI tools may hinder newbies, but if you put the effort in, Slackware is rewarding. Very much so. Security is also on the developers’ minds as updated packages are delivered as required during the life ( and sometimes longer ) of a particular version. As long as you keep your installation up-to-date ( using the included packaging tool slackpkg, and there are others like slapt-get ), you can be assured of a stable and secure system.

There has always been a large amount of documentation and information on Slackware around the ‘net but most of it was quite scattered – more recently a determined effort has been made by those in the community to bring all this information together in a central repository, now known as the Slackware Documentation Project ( courtesy of AlienBob ). You should also not forget the trove of information that’s available on the stock installation disk – there are a lot of useful details there including upgrade documentation. For community discussions, the LinuxQuestions Slackware forum continues to be a busy and vibrant place for anyone interested in Slackware.

Slackware 14 has brought the distribution up to date and continues it’s definite relevance in the Linux distribution landscape. The large number of alternate distributions that have and still are based on Slackware is a nod to Pat’s efforts. I still regard Slackware as being one of the best server OS’s available and it doesn’t make a half-bad desktop either. Thanks to Pat, Eric, Robby and a host of other community members who as always, put in huge personal effort into Slackware. Support them with DVD, T-Shirt or other purchases at the Slackware Store. Happy Slacking!

Slackware -current May 2012

For anyone having some weirdness in X/KDE after updating to the latest current ~ May, there are some extras you need to do. First for the latest release of Xorg, some packages have been split and as such, you will have new packages that have probably not been installed. Go through recent entries in Changelog and manually install those new packages ( look for “Added” ). Then, make sure you reinstall any binary video drivers – this fixed my mirrored and rotated display. Hope that  helps someone.

Slackware 13.37: an interview

I woke up this morning to find a very nice email in my inbox – Slackware 13.37 has been released!

So continuing on from previous articles in my interview series, it’s time to take a look at Slackware 13.37. One thing is for sure about the development process – Pat has been having some fun. The odd version number is because he has always wanted a cool name for a release and 1337 ( leet ) fit the bill. Instead of simply being called RC4, the 4th release candidate is labelled as RC 3.14159265358979323846264338327950288419716. Furthermore, the 5th rc is called 4.6692 ( first Feigenbaum constant ).

Let’s take a look …

What’s new?

In development, this release has seen a massive amount of updates and bug fixes. This includes new versions of the Mozilla stable of browsers to fix the recent Comodo certificate vulnerability. Other updates, changes and fixes include:

– upgrade to KDE 4.5.x series ( AlienBob is maintaining 4.6.x for the -current series and 13.37 )

– mplayer phonon backend for KDE ( to supplement gxine and gstreamer support )

– bind is upgraded to 9.7.3 ( includes fixes for cache poisoning attacks )

– Firefox 4 takes over from 3.6 as the main browser

– the huge update to xorg-server 1.9 ( xorg.conf no longer required )

– rpm2tgz now supports txz packages

– nvidia nouveau driver added

– LAMP stack now has php 5.3.6, apache 2.2.17 ( supports DSO and SSL ), mysql 5.1.55

– Ian Lance Taylor’s new ELF linker ‘gold’

– yasm, libplist, rfkill, moc console audio player, libsndfile, ddrescue ( my fav app ), iptraf-ng, chrome added

– lxc linux containers based on cgroups support

In other areas, GPT partition support, memtest86+ and virtio modules have been added to the install initrd as well as the usb/pxe installers. Slackware now supports btrfs fully with the btrfs-progs package ( moved from testing ) although you may want to use something else for the /boot slice. Support has been updated for 6xxx series and Wireless-N Intel wifi controllers. Gdisk can be used to partition large disks ( GPT ) instead of fdisk.

Installation

The ncurses-based installation mechanism continues to be simple and to the point. Support for GPT partition layouts makes use of Slackware on large drives ( ~2TB+ ) easy and virtio modules means that  it is now easier to use Slackware as a kvm guest. While not an automated install function, it’s straightforward enough to enable kvm guest support after the install process ( thanks for help from Eric, Ponce and Rambuld in the LinuxQuestions forum ).

The installation procedure is:

  • boot and login
  • partition ( using fdisk/cfdisk/gdisk ) any disks that you need for installation
  • start the installation program – setup
  • answer the install questions ( see below )
  • install and reboot
  • install 3rd party package management tools ( like slapt-get and src2pkg )
  • install binary video drivers ( Nvidia / ATI-AMD ) if required
  • set default init level to 4 ( for desktops )
  • customise as required

Install questions:

  • setup swap disk
  • choose partition(s) for Slackware ( btrfs available )
  • choose source media ( NFS, FTP, HTTP and Samba shares supported )
  • choose package sets
  • choose install mode ( full is fine )
  • create a usb boot stick
  • choose frame buffer console resolution
  • select the lilo boot destination
  • choose mouse options
  • setup networking addressing
  • select startup services
  • set timezone
  • choose windows manager
  • set a root password

Once you’ve finished the install, exit to the prompt and reboot your machine. Done!

Installing as a kvm guest with virtio requires some additional steps – if setting up kvm guest ability straight after quitting the installer:

add the following to /mnt/etc/lilo.conf

disk=/dev/vda bios=0x80 max-partitions=7

Then:

  • make sure the root filesystem is mounted on /mnt ( eg. mount /dev/mda2 /mnt )
  • mount -t proc proc /mnt/proc
  • chroot /mnt
  • /sbin/lilo /etc/lilo.conf
  • reboot your VM

One of the best advantages of Slackware over other distributions, is the ability to setup a raid 1 mirror for the boot disk, something that is a little convoluted to do on other distros ( and not doable at all using their installer GUIs ). With a fairly current kernel, Slackware has good support for most hardware out-of-the-box. USB and PXE can be used for installation – I’ve used the PXE method extensively and it makes for a very quick network install option for Slackware. Eric Hameleers ( AlienBob ) also maintains a full USB-only install method. Another bonus in 13.37 specifically, is that Eric has added a PXE install server directly to the DVD boot image – I’ve not tried this yet but it should make setup of remote Slackware, a doddle.

Core

Slackware 13.37 includes the 2.6.37.6 kernel ( 2.6.38.4 in /testing ) as standard with 2 kernel options available – huge and generic. Huge of course supports every piece of hardware available in the Linux kernel while generic is a trimmed down kernel for use with an initrd. The mkinitrd_command_generator.sh script ( in /usr/share/mkinitrd ) is used to generate an initrd post-install ( those with systems using the aic7xxx module, will need to specify this manually as part of the -m option to mkinitrd ).

There is a big addition, in terms of performance, to the 2.6.38 kernel, otherwise known as the 200 line patch – it is designed to automatically create task groups per TTY in an effort to improve the desktop interactivity under system strain. So it’s a pity 2.6.38 is not the default kernel however, it is included in /testing for those who’d like to try it.

Update:

Considering the recent issues in 2.6.38.x with high power usage, it’s just as well that Pat decided to stick with 2.6.37

Slackware includes not only kernel support for all current peripheral types but also distro support – so your pcmcia, firewire and other equipment should just work. Udev dynamically manages the setup of equipment as they are connected ( and disconnected ) to/from the system.

Networking

Slackware, like all Linuxes, supports pretty much every form of networking available. IPv6 is available out of the box, although you will need to obtain the Router Advertising Daemon ( radvd ) for practical purposes. Someone has created a radvd package and init scripts for Slackware 13.0 – I’ll be looking at adapting the init scripts for 13.37 shortly.

Network tools are 2-a-penny: netcat, tcpdump, iptraf, netwatch and nmap amongst others are available. Network services include NFS, DHCP, Bluetooth, dnsmasq for dhcp/dns/tftp/bootp, bind for dns and wireless support.

Security as always, is a high priority in Slackware: the base install uses mostly sane defaults and one can always tinker with these should you require something tighter. Network security is full catered for in the form of OpenSSL, OpenSSH, OpenVPN and GnuPG.

General Package information

Slackware has stayed fairly constant in size since moving to DVD format a few years ago. That doesn’t mean however, that it’s limited on the apps side.  The full ( current ) LAMP stack is provided along with dhcpd, dns and server apps. CLI purists have access to a number of terminal apps like mutt, tin and lynx while GUI versions of basic internet apps are available in the form of firefox, thunderbird, akregator, ktorrent, kopete, etc.

Multimedia support is well served in the base release ( with mp3 and ogg/vorbis support, libraries and players ) however, if you want the full shebang, head on over to AlienBob’s alternative tree for a range of apps including the ubiquitous media player VLC, brilliant video tool avidemux and swiss-army knife of media, ffmpeg.

While a few browser-based plugins are provided, you’ll want to look towards a 3rd party repository like SlackBuild.org for others. A slackbuild script is included in /extra for Flash and you can download Acrobat Reader from Adobe directly – the installation is straightforward.

Graphical environment

KDE in Slackware is at the 4.5.5 release and provides for a very stable and fast graphical environment. It is stock so don’t expect any bling, however, that plays to both the Slackware ethos and my own preferences. Compositing/acceleration works well with both ATI-AMD and NVidia binary drivers, while additional work has been done to make KDE work well with the ever-insufferable Intel drivers.

Eric Hameleers maintains a 4.6.x release for those who would like the latest KDE release, and all dependencies are catered for in his tree. As well, the requirement for HAL is now completely removed.

For those looking to use the Gnome environment, the GSB project has a -current release of Gnome 3.0 and it may yet be ready for the release of 13.37.

Alternatively, fluxbox, fvwm, windowmaker and xfce are available.

Multilib

Slackware continues to be available in 32- and 64-bit editions. The 64-bit edition does not include 32-bit compatibility, however Eric Hameleers has a multilib setup to enable this configuration. Eric’s instructions are precise so you shouldn’t have any issues installing these packages. The result is a system that can compile/execute 32-bit applications which is fairly useful when there is no 64-bit version of an app ( think Skype ).

Update:

Skype 2.2.0.25 was released earlier this month ( including 64-bit ), but it crashes after logging in and I’ve not had the time ( or patience ) to look for solutions.

Development

As always,  Slackware makes for a great development environment. Versioning tools are abundant while scripted programming languages like Python and Perl are at current release levels. QtDesigner and KDevelop are available for graphical development.

Packaging

Slackware uses a simple packaging method ( pkgtools ) which makes installing applications a doddle. However, in true Slackware fashion, dependencies are not catered for. This is by design ( and choice ) … while some may complain about the lack of dependency checking, I’ve never had an issue with this, although one does need to keep track of applications you install and their requirements.

slackpkg is bundled with Slackware and provides a wrapper for the OS packaging tools by automating the download and installation of distribution apps and updates. sbopkg does a similar job, but in this case, for additional 3rd party applications from the slackbuilds.org site.

The Slackware ecosystem

Pat Volkerding has been the prime developer of Slackware since the very beginning in 1993. In recent years however, a number of people have been helping Pat in bringing the latest versions of Slackware to fruition. Whether it’s assistance with patches to the core system during the development phase or 3rd party application repositories, this help enriches the Slackware experience.

Support is a community function in Slackware – the LinuxQuestions forum is vibrant and busy, with a touch of the Wild West. IRC support is available on #slackware. The largest 3rd party app repository is maintained at SlackBuilds.org which uses the slackbuild method for building packages that is native the distribution itself. sbopkg is an  automated app browser and installer, building directly off the SlackBuild.org site.

Eric Hameleers maintains his own impressive repository while there are many others that provide packaging options. As always, security and stability remain  fundamental to Slackware – even releases as far back as SW 8 are kept current with security updates.

Conclusion

If you’re looking to do more than just use Linux, then Slackware fits the bill. And for rock solid secure server performance, it can’t be beat. This release may be just an evolution of Slackware, but it still thrills …

In this day and age, fast-food lives seem to be the norm. The majority want everything easy and done for them – instead of getting down and dirty fixing that problem, you just pay someone to do it for you. There’s something to be said for ease of use, but there’s a point beyond which we start dumbing ourselves down. Slackware provides the alternative option, the tinkering option, the thinking option.

Slackware is not necessarily for the masses or those wanting a quick fix. But therein lies the beauty of something which can challenge you rather than deliver on a silver plate.

The Slackware 13.1 Interview

Slackware releases are like a big shiny new birthday present for me ( in fact mine’s just around the corner, hint hint ) even though I follow -current mostly. It means that the distro is at a point where new packages have been added, others upgraded and bugs worked out. And Patrick, and the rest of the dev gang, are happy …

What’s new?

One of the views of Slackware in the past has been that it’s reliable and stable, but older versions of packages are used in a bid to combat instability in newer package releases. While that has been true in the past, I’ve found that since 13.0 especially, Slackware has been released with more up-to-date packages while retaining its stability.

The big upgrade in this new release is the move from the KDE 4.2 series to 4.4 with PolicyKit ( thanks to Eric Hameleers for all his KDE dev releases ). While some may not notice, there are performance, feature and stability improvements in this upgrade that make this ‘new’ desktop environment even better than before. Read H Online’s 4.4 review for more information.

The kernel is now at a 2.6.33.4 level, gcc at 4.4.4 and glibc at 2.11.1. X is updated to 1.7.x along with all the accompanying drivers, thanks to Robby Workman.

All the security apps have been updated with OpenVPN now being included by default and the LAMP stack is at Apache 2.2.15, PHP 5.2.13 and Mysql 5.1.46. The Cups package has had usblp support added back in, something that a number of people were looking for. Related, the hplip package has ijs support again. Firefox, Thunderbird and Seamonkey are at their latest releases – I was hoping Thunderbird 3.1 would be released before Slackware 13.1 but no matter as I’m sure it will be in -current soon.

In other news, the libv4l package has been replaced by v4l-utils, bittornado and emacsspeak are in /extra, /dev/sr0 is now searched for install media before the old IDE devices, JDK and JRE are at Update 20, Amarok 2.3.0.90 is in /testing and firmware for a number of wireless devices are added/upgraded.

In general

I won’t rehash information from my previous Interviews except to say that the stability, robustness and performance carries on from previous releases. Slackware continues to perform well in both server and desktop roles with support for most current desktop technologies ( bluetooth, wireless, etc. ) and server-side services and development. Don’t expect to find the customisations you’ll find in other mainstream distributions – Slackware is raw and to the point.

The ncurses-based installer hasn’t changed ( much ) while the newer txz package format gets support from 3rd-party solutions like Gilbert Ashley’s excellent src2pkg tool. The GSB project is tracking ( according to their website ) 13.1 closely and hopefully we can expect a release of this Gnome add-on to Slackware soon. In the meantime, a dev version of 2.28 is available from them. The Dropline Gnome and Gware projects appear to have stagnated as there is no recent news from them.

Many of the audio-video libraries I would have previously compiled manually are now included by default which makes Slackware very capable from a desktop audio point of view. These include libraw1394, libmsn, libdiscid, mpg123, libmtp, loudmouth, fftw, liblastfm and others.

64-bit support, introduced in Slackware 13.0, continues to mature in 13.1 and Eric Hameleers is tracking the mainline development effort with his MultiLib libraries very closely ( even when on holiday! ), allowing one to run a combined 32- and 64-bit system without too much extra effort.

Those who mirror the -current tree can go to sligdo for a method of generating ISOs.

Conclusion

Having built a number of 64-bit 13.0 servers in recent months, I can confirm that no issues have cropped up with the addition of the 64-bit version and these machines are running beautifully. My own 64-bit MultiLib desktop remains a pleasure to use even on slightly older hardware ( yes time to upgrade ). Slackware on the whole, retains a vibrant end-user community with many blogs, websites and forums dedicated to this venerable distribution. One of the busiest places on the ‘net is the LinuxQuestions forum where many Slackers hang out.

13.1 continues the Slackware tradition of a simple, no-frills, reliable distribution for those wanting a rock-solid Linux implementation, and also those wanting to learn the ins and outs of Linux. Thanks to Pat and everyone else involved in this wonderful project – support them through the Slackware store if possible so we can continue getting our Slackware fix.

Slackware64 Multilib and GSB

I’ve had a few queries on setting up Slackware64 Multilib as well as GSB with -current. It’s not difficult at all but just requires one to follow a strict set of steps.

Multilib

Eric Hameleers ( Alien ) has the definite write-up on Multilib on his site however I’ll provide a short synopsis here for the impatient.

The first thing to note is that you need a set of Multilib-enabled gcc and glibc packages available on Eric’s site. These need to coincide with the version of Slackware you are running so make sure you get the correct packages:

Slackware64 13

Slackware64 -current

Once downloaded, install using:

upgradepkg –reinstall –install-new *.t?z

Now we need to create 32-bit compat packages from an existing 32-bit installation tree. Have a 13.0 or -current tree available, make a directory somewhere for this purpose and:

massconvert32.sh -i /path/to/slackware-13.0/slackware/

Once this is done, install using:

installpkg *-compat32/*.t?z

Add glibc and gcc as exclusions to your package manager to make sure the Multilib-enabled versions do not get overridden. Upgrades are done the same way except the compat packages, once generated, are installed using:

upgradepkg *-compat32/*.t?z

GSB

GSB is almost tricky but not quite. There are no current -current packages at the moment however the last 64-bit GSB available ( 2.28.1 ) works ok on Slackware64 -current. You may also need to get some of the 32-bit packages from this version – YMMV. The GSB site lists info relating to 2.28 and 2.30 for Slackware 13.1 so keep checking the site for updates.

Slackware current issues

I’ve been running Slackware-current ( the development version of Slackware ) for probably close to 5 years now. For the most part, it’s a pretty uneventful stream of upgrades however, every once in a while things get interesting.

The March 1 update is massive, has taken a month to release and includes around 465 updated packages. There are 2 main reasons for this:

  • Xorg has been upgraded to 1.7.5
  • a new version libpng is included which required the rebuild of a large number of dependant packages ( 13? )

I had some issues as follows …

On reboot I got ‘undefined symbols’ and ‘unknown module format’ when loading some modules. My NVidia binary driver would not load with a message the same as above. I had not upgraded the kernel so this was all a bit strange.

First step was to get a new NVidia driver ( 195.36.08 ) which installed fine but the driver still refused to load. Then I thought that a kernel package may have been installed erroneously so I upgraded all of them. Still no go.

To the LinuxQuestions forum where I gathered that there may have been an issue with a kernel config option ( CONFIG_PREEMPT ) in this particular kernel. The fix was straightforward – rebuild and install the kernel with the existing config file:

cp /boot/config-huge-2.6.33 /usr/src/linux-2.6.33/.config && cd /usr/src/linux-2.6.33 && make && make modules_install && cp arch/x86_64/boot/bzImage /boot/vmlinuz && lilo && echo “blacklist nouveau” >> /etc/modprobe.d/blacklist.conf && telinit 6

There was also an issue with the libgmp library which was updated today and fixed those issues.

Some other upgrades/changes:

  • device-mapper is now included in the lvm2 package
  • gzip security issue
  • kernel 2.6.33
  • kde 4.3.5
  • openssl security fixes in 0.9.8m
  • bash 4.1

I’m running AlienBob’s kde 4.4.x packages and hopefully he’ll have an updated ( to 4.4.1 ) set soon. All in all an interesting time however this is dev so it’s to be expected. Th problem is current is generally so stable that this is actually unexpected. No problems either way.

Thanks to Pat, Eric, Robby and all the rest.

Adventures in Linux distro land

The number of articles lately concerning the overwhelming amount of Linux distributions available is quite interesting; why now? Perhaps because Linux on the desktop is becoming a little more mainstream. Or perhaps because of the miriad number of embedded devices that use Linux ( think home automation, signage boards, NAS storage, netbooks, phones, radios, media players, industrial devices, etc. ) and that are more visible. Whatever the reason, I think it’s always been a positive thing, with the competitive nature of open source driving improvement and maturation. And open source does not need proprietary offerings as competition ( as another journalist has recently inferred ). FOSS in itself is its own competition.

Just because there are numerous distros available ( distrowatch.com keeps track of the Top100 ) doesn’t mean Joe Blogs needs to become a guru on all or most of these. Many are specialist distros catering for recovery, security, audio, media or other areas and for the most part, one can keep your eye on the top 20 for something to use within mainstream server or desktop areas.

For desktop use, Ubuntu, Mandrake, Mint, Fedora, Puppy and openSuse come to mind. On the server side Centos, RedHat, SLES, Debian and Slackware are the main choices. For Business server use ( ala Windows Server SBS ) you can look at ebox and ClearOS.

So overall, that is not an overwhelming set of choices – just enough to give you something you are comfortable with. Read reviews on each, do a test run in a virtual machine ( care of VirtualBox ) and make the switch.

Here follows a quick matrix showing the main distros in each area.

Desktop Ubuntu, Mandriva, Mint, Fedora, Puppy, openSuse
Server Red Hat Enterprise, Centos, SLES, Debian, Slackware, Scientific
SBS ebox, ClearOS
Security Backtrack, Nexenta,
Recovery Knoppix, SystemRescueCD, CloneZilla,
AV Mythbuntu, 64Studio , Musix
Storage FreeNAS, OpenFiler

Tweetdeck on Slackware64 13.0

I recently came across this application ( thanks Nic ) so only natural that I try it out ( especially as I have an issue with the plasma twitter widget in KDE 4.2.4 ). Couple of issues though:

  • requires Adobe AIR
  • only 32-bit
  • packaged only for deb and rpm

I did some searching and with a couple of articles, managed to piece together an installation routine for Slackware64 13.0:

  • make sure your Slackware64 is multi-lib enabled
  • download the 32-bit packages of gnome-keyring and nss packages from the GSB project ( one is in l/ and the other in a/ )
  • convert to Slack64 compat packages using /usr/sbin/convertpkg-compat32 -i <package_file_name>
  • install converted packages above ( found in /tmp )
  • download AIR SDK ( not runtime )
  • mkdir /opt/AIR
  • extract archive into this directory
  • mkdir /opt/AIR-APPS/<app-name>
  • download the application ( for Tweetdeck I had to use Windows/FF as the manual download link did not show up in my Slack/FF )
  • extract ( using unzip ) to the APPS/<app-name> dirrectory
  • run using: /opt/AIR/bin/adl -nodebug /opt/AIR-APPS/tweetdeck/META-INF/AIR/application.xml /opt/AIR-APPS/tweetdeck

No too bad an install but it would be nice for Adobe to support non-rpm/deb users with a .tar.gz package and 64-bit Linux. Maybe to come?

The Slackware 13.0 Interview

It’s been a while since my last ‘Interview’ with Slackware and we’ve just had the new 13.0 release ( 26th August ), so time to brush up on Slackware as one of the premier distributions in the Linux landscape.

I wasn’t quite sure where to start with this article as all the goodness of previous releases shine through in this release. So I went back to my previous article to see what I had said and what I didn’t. I’ll keep to the differences with 13.0 and start with a quick rundown on the distro from a practical point of view. Check my 12.2 article for a more general overview of Slackware.

Features:

  • 64-bit platform support! Many have been running unofficial 64-bit ports like Slamd64 ( thanks to the those packagers ) but you can now get your 64-bit official version direct from Slackware. I’ve yet to convert to the 64-bit version and have a no. of questions to satisfy  myself, specifically regarding 32-bit app support so I will be testing this in the next few weeks and provide an update here.
  • Updated kernels: we’re now at 2.6.29.6 with all the associated improvements in code and driver support
  • Package management: new txz package container with compression of packages provided in the xz format and updated package utilities to deal with this of course
  • Desktop environment: 13.0 now comes with KDE 4.2.4 switching from 3.5.x in 12.2 ( and Xfce 4.6.1 if you’re that way inclined )
  • File-systems: support for ext4 ( as part of the supplied kernel )
  • Development: GCC 4.3.3 and glibc 2.9
  • XServer: xorg 1.6.3, an X config file is theoretically no longer needed
  • updated pxe and usb installers
  • Firefox 3.5.2
  • GRUB support ( in /extra )

Installation:

very little has changed here and once you get over the initial task of manually partitioning your disks, you can start the excellent ncurses-based installer and go from there. While the installer may appear somewhat complex to newbies, it’s more a case of giving choice, especially in terms of package selection. In addition, Slackware remains one of the few distro’s supporting mirrored boot disks ( yes that’s including the /boot partition/directory and swap if you want ). This is a manual process but at least you can be sure your whole root volume is protected ( I have a howto if anyone is interested ). Unlike 12.2 ( which [ may have ] had a slight issue with the Gutenprint package during install ), a number of installs of 13.0 to different hardware has yet to show any problems. Just make sure your ISO images are valid when you write them to disk ( use the checksums after downloading ) and write at a low speed to ensure compatible disks.

Core:

we’re now at 2.6.29.6 for the kernel and besides the usual array of driver updates and additions, filesystems are a big area of development. Specifically both ext4 and btrfs are included. I can’t recall doing fresh install for a particular machine but the root partition appeared to be automatically upgraded ( I’ve been following current in a single stream since 12.2 was released ) with the following parameters added – barrier=1,data=ordered. There have been a number of reports, especially from other distros adopting ext4 at an early stage, concerning file-system corruption and data loss following crashes. This mainly is a result of the change of default data journaling modes from ext3 to 4 and some apps that do not fsync data correctly. Suffice it to say that ext3 and 4 essentially have the same journaling modes and it’s only the default that has changed in ext4. Slackware 13.0 uses data=ordered mode to keep the default ext3 behaviour ( in keeping with its stability orientated vision ). You can always change this – this is a performance vs data consistency discussion and one better served in other articles – more here and here. Note that while ext4 has been getting all the attention,  ext3 has been receiving some latency performance improvements in the kernel so don’t write it off just yet. Kernel 2.6.30.5 is available in /testing.

udev pretty much works as advertised with automated detection and mounting of all manner of devices. The addition of the xz compression protocol is due to its high compression factors ( like bzip2 ) with the performance of gzip. This allows a corresponding reduction in size of the distribution disks which is always handy.

Documentation for this release has been updated and those upgrading from a prior release need to take a good look at the UPGRADE file. For those new to Slackware, there are a number of documents in the root of the distribution disk relating to installation, which are important to make your first installation as smooth as possible. Read that manual. The slackbook project appears to be back on track with a revised edition at www.slackbook.org, a good starting point for all those new to Slackware.

Networking:

everything and the kitchen sink – need I say more? Yes maybe:

The LAMP stack is now completely up-to-date with Apache 2.2.13, php 5.2.10 and MySQL 5.0.84 ( yes, 5.1 is the main stream now but 5.0 is still regarded as the ‘stable’ release ). I used to compile my LAMP stack due to older packages in the distro but this is no longer a necessity seeing as all these packages are bang up to date. The only requirement you may have is with certain support in PHP – I haven’t checked what support is built in the provided package yet – update to come.

In addition there is updated wifi and bluetooth support ( in tools and kernel ); about the only thing I’m missing is netcat ( netwrite is included but I’ve yet to try this one out ) and libnetfilter/libnfnetlink for connection tracking on iptables.

Applications:

a number of new apps have made their appearance with updates to mostly everything else. Of interest is the mplayer plugin for browsers, Glew ( for MESA ), KDE 4.2.4 of course ( can’t miss that one out ), dc3dd ( a disk forensics tool – aka dd on ‘roids ), urwid for wicd, some new aspell internationalisation packages, tightvnc ( hmm interesting one ), Intel GPU tools, the taglib extras package ( for mp3 tagging apps ), thumbnailing support in KDE for videos using mplayerthumbs ( Dolphin and Konqueror ) and snownews ( a console rss reader ). There are also a number of rebuilt packages with support for xz compression, like tar and all the packaging utilities.

There has been some discussion in the forums as to why KDE 4.3.0 was not included but there appears to be some issues surrounding PolicyKit integration in the core OS – Robby Workman mentioned compiling both with and without PK, so I’ll just leave that storyline until -current starts up again. The KDE4 version of K3B is still a bit flaky so the KDE3 version is included along with the necessary KDE3 compatibility libraries.

Development tools are all upgraded with Perl 5.10.0, Python 2.6.2 and version control tools like git and subversion. Firefox is upgraded to the new 3.5 stream while Thunderbird remains at v2 seeing as v3 is still in beta ( I’ve been testing nightlys since b2 and it looks good although I’ve a few Bugzilla reports open ).

Other areas of 13.0 haven’t changed much in terms of usage and you can check my 12.2 article for more general details.

One area I will touch on is Gnome and I’m possibly being a bit ambitious here – running GSB 2.26.3 ( compiled for 12.2 ) on 13.0. For the most part, everything works fine but I’ve got a nasty performance degradation when running any Gnome apps. The X process clobbers one of my DualCores, bringing KDE/plasma specifically to a halt and continues to do so for about 2 minutes after I exit those apps. There was a previous issue with the Xorg 1.4.x server in 12.2 with the event handler code that caused similar issues but this should not be a problem with Xorg 1.6.3 in 13.0. I’ve spoken to both the GSB guys and Robby Workman but a resolution is still hidden to me ( thanks for the help Robby! ).

Package management and installation:

There is now a whole host of tools, internally and available from 3rd parties supporting package installation/tracking. My favourite at the moment is src2pkg but there’s also slacktrack ( in /extra ), build scripts at slackbuilds.org and checkinstall, amongst others. For package installs and updates, slapt-get, pkgsrc ( is anyone still using this? ), slackpkg and swaret provide the goods. I still don’t see Slackware’s internal lack of dependency checking an issue, but to each their own.

Out to Pasture:

the old raidtools package is now gone – I think this functionality is now all handled by mdadm ( now available from the boot disk to assist with pre-OS installation RAID setup ). Others include fvwm95, the older libxml and bison 1 packages, the Berkeley db1 and db3 libs and some printing utils like lprng ( handled by CUPS ) and ifhp.

Conclusion:

Slackware remains my favourite server distro and personally stays on my desktop too ( it takes a bit more work here than some other distros perhaps but no matter ). 13.0 comes with almost everything you would expect in terms of applications, all at the latest versions and solid as usual. As a development workstation or LAMP/application server, I think it’s untouched. While it may not fill everyone’s expectations,  you owe it to yourself to take a look if you haven’t before.  For existing users, this is just another solid release. All that’s left to say is thanks to Pat and the rest of the gang – your effort is well appreciated. In conclusion, a parting quote from fortune:

“It is easier for a camel to pass through the eye of a needle if it is
lightly greased.”
— Kehlog Albran, “The Profit”

Updates:

1. GSB 2.26.3 ( -current ) is now available in 64-bit form for Slackware 13.0 – announcement here

2. Techiemoe’s review

3. Why you should try Slackware – LinuxMag interview with Eric Hameleers

4. 32-bit support in Slackware64:  AlienBob ( Eric Hameleers ) has both done the work of providing 32-bit support as well as written a great instruction manual for installing 32-bit support in Slackcware64. A quick note that after installing all the provided packages, it’s a good idea to restart your machine so that the appropriate Pango modules are built ( I ran into a problem with Thunderbird 32-bit which was sorted after a reboot ).

5. install your multilib support before your binary video drivers

6. K3B 1.66.0-alpha appears to be more solid than the supplied KDE4 K3B

The Slackware 12.2 interview

Slackware, in my mind, has never been a Linux distribution for novices who aren’t interested in learning about the whole Linux ecosystem. Note that’s not a criticism, just a comment. And in that comment lies the issue with a lot of the Slackware articles that have appeared over the years. Many of them appear to be authored from the point of view of a novice or the person who just needs a straight desktop-orientated distribution; I’m not saying Slackware is difficult, just that it requires a better understanding of Linux as a whole rather than the desktop alone that most are used to. At the same time, Slackware is probably amongst the best as a learning tool for Linux, if you have the interest. It’s been said:

To learn Red Hat is to know Red hat; to learn Slackware is to learn Linux

Slackware is best suited as a server in my mind, but with some work makes a fine desktop and laptop system too.

And now onto 12.2 itself.

Installation:

Much has been said about the ‘archaic’ Slackware installer but the fact of the matter is that it’s still simple and bulletproof, providing most of what’s needed for the base install. Everything is covered from install location, file system type and swap setup, to network setup, boot loader installation, GUI selection and package selection. Granted it’s not pretty like most graphical installers, but it just works. The only real pre-install requirement is to make sure your disks are partitioned correctly. That slightly advanced requirement for novices, aids though when you need to do complex installs such as mirrored boot disks, something that remains missing from most other mainstream distros. Post-install tasks include creating users, adding users to groups and configuring X amongst other things.

I’ve been running current ( development ) on one machine since 12.1 and as such, the difference is nothing much that you’d notice. Just more of the same reliability and stability that you’re used to with Slackware, and updates to most of the popular included packages. A different machine running 12.1 upgraded cleanly and without fuss using Patrick’s recommended method, slacktrack and slapt-get.

It has been mentioned by some users that they’ve experienced pauses during the install. The only attributable factor I can find is the compilation of Gutenprint driver files during that package’s install. I’ll look into this closer with subsequent installs.

The core:

The included kernel 2.6.27.7 brings improvements in filesystem ( XFS, JFS, EXT and Reiser ) and hardware support, and other areas like virtualisation ( KVM is now nicely embedded with a good feature set ) and wireless. Udev and HAL provide a neat solution to hardware detection and work well in the Slackware environment providing you follow the rules for adding users to the appropriate groups. Recent versions of Udev have differing places for configuration files so make sure you read the provided documents. Detection in the provided GUI’s work flawlessly providing users with fool-proof access to pluggable and other devices. Sound devices are well supported too with the kernel modules being automatically loaded, immediately after installation. The BSD-style initialisation mechanism is easy to understand and master, besting some of the more complex systems used in even popular distros. This extends to the venerable inetd system used for starting services on demand. pm-tools are also included for power management on desktop, server and laptop systems.

Networking:

Slackware continues to excel in this area with a wide variety of network applications ( including my favourites IPtraf, netwatch and nmap ) and easy to setup configuration. Also included are a number of Wifi tools, drivers and firmware, as well as Openvpn, ProFTPD/VSFTPD, RP PPP, the netkit package and Net-SNMP. Certainly it’s not something that other distribution users will be used to, but editing the network configuration file is easy to do for both static and DHCP setups. DNS and DHCP is covered by dnsmasq, although I tend to use the supplied ISC DHCP server and pdnsd, a 3rd party caching dns server with some nifty advanced features. Other 3rd party applications such as snort, nessus, nagios and wireshark are available and easily installed using standard compile methods.

Server applications such as MySQL, Apache and PHP ( LAMP stack ) are all included in their latest incarnations, Perl is at 5.10 and Tk/TCL at 8.5 is also still around.

Software/Packaging:

The bugbear of many an article author, Slackware has what I believe to be the best package management system available. Packages are available from a number of popular sources on the Internet ( slacky.it and linuxpackages.net to name two ) and wrappers such as slapt-get and swaret provide for automatic download/installation and even some dependency tracking. Keeping a Slackware install updated is easy in the extreme. You will find though that from time to time, you may need to compile an application that has no Slackware package available. This is easily done with the provided development tools and there are some additional tools available such as checkinstall, slacktrack and src2pkg that allow even novices to compile and install applications.

Development:

Slackware remains one of the best development platforms available for Linux with everything covered from c, c++, java, fortran to debuggers, compilers and assemblers. The supplied KDE GUI includes the Kdevelop tools for developing KDE applications.

GUIs:

Slackware has long forgone maintaining 2 primary GUIs in KDE and GNOME, and Patrick has selected KDE as his choice of GUI. Given KDE’s more advanced configurability, this suits the nature and ethos of Slackware to the tee. As an aside, I’ve compiled a number of KDE 3.5.x releases and can attest to the fact that it’s far easier than what Gnome has provided. There are no special alterations to the stock KDE installation but I find that a good thing as it means I can configure KDE the way I like it without interruption. XFCE is also included and as a lightweight solution for older systems, it’s unbeatable.

No binary video drivers are included but the supplied Xorg server has a good selection of built-in support for the majority of video cards available, and both the 3rd party NVidia and ATI drivers install cleanly and without fuss.

Applications:

Slackware ships with a good range of popular applications including encryption tools, editors ( including my favourite Joe ), browsers ( Firefox and Seamonkey ), email clients ( Thunderbird and KMail ) and office apps ( KOffice ); but crucially missing from that list is OpenOffice – not sure but perhaps something to do with the license? There are internationalisation files for KDE and aspell which provides for an easy to use system for alternative language users. Full sources are included for everything so you’re welcome to tinker around if you’d like. The supplied libraries are featureful and cover everything from AV, fonts and hardware to databases, UI interfaces and programming.

Application issues:

Recent changes in the Xorg server have broken VMware 1.0.x compatibility – there is apparently a way to get around this by installing older X libraries but I’ve yet to get this to work. Note this is not a Slackware-specific issue. VMware 2’s switch to a poorly conceived web gui for admin means that I’ve not bothered with it, but a search on Google will bring up some details on how to get VMware 2 installed on Slackware.

This has led me to VirtualBox which in many respects, is better than VMware: it installs cleanly on Slackware, can use vmdk files from VMware and is much quicker to boot. The final nail in the VMware coffin is VB’s RDP-based headless mode which beats VMware’s non-gui management by a mile. VMware’s networking is still the best available but VirtualBox’s setup is covered in detail in the installation manual and simply requires some configuration of the system with the Slackware-supplied bridge utilities. VB’s wrapper scripts make this a straightforward task.

KVM tools are not included but are easily installed although getting the RedHat-supported libvirt packages and it’s GUI components installed, remains a challenge.

Openoffice has been an easy install in the past by downloading it, converting it to Slackware package format using rpm2tgz and running the install. But I had a strange issue in OO 3 ( including the betas ) where backspace and cursor keys refused to work in Writer ( only ). A simple workaround was to use Robby Workman’s OO3 packages and I’ve had no further issues relating to OO.

Slackware still ships without a number of AV packages, specifically codecs; but this is for obvious legal reasons. The free AV codecs such as Flac and OGG Vorbis are included as well as a number of applications; the rest ( eg. MP3, Windows codecs ) can be obtained from 3rd party sources as Slackware packages. The MPlayer project continues to host all necessary Windows codecs.

Gnome:

This probably requires a section on it’s own as not only was the removal of Gnome from Slackware a slightly controversial decision, but it left a hole for certain applications that has been filled by a number of 3rd party projects including GWare, GnomeSlackBuild ( GSB ) and Dropline. GWare seems to lag in development a bit but the others are as current as you can get. GSB specifically, also includes a good number of AV applications including mainstream codecs, media rippers and converters.

Support, Security and Updates:

There are many avenues for support in the Slackware ecosystem. Two alternate methods are irc through the ##slackware channel and the vibrant web-based support page at Linuxquestions.org. There is a thriving Slackware community on the Internet so don’t be scared to search or ask.

The packages in Slackware have always been of such high quality that the amount of updates for a particular release are a fraction of what you might see in other distributions. Patrick Volkerding’s attention to detail here and minimal patching means that Slackware packages are as close to the original as possible. There’s less to go wrong as a result of the reworking of packages, and packages and package versions are strictly chosen for their security history hence the fewer updates required. Updates are also provided for versions of Slackware going back many years which bodes well for those not inclined to upgrade ( especially servers ) – I recently saw an update for 8.0 ( isn’t that from the 90’s? ).

Conclusion:

Covering a Linux distribution is hard work as there are so many areas to look at but hopefully I’ve given you a taste of what Slackware can do. The strength of Slackware lies in it’s reliable and stable base, it’s configurable method of setup, and it’s adherence to the principle of KISS ( keep it simple, stupid ). Patrick’s ongoing commitment to the distro in the face of personal difficulties shows the quality of people behind this oft-overlooked distro. Its continued use as a starting point for many other distro’s/LiveCDs and the fact that it’s the oldest usable Linux on the market shows its inherent importance in the grander scheme of things.

If you are a medium to advanced user, you won’t be disappointed. If you’re a novice and are looking to do more than just use Linux, Slackware offers the best base to start from. Give it a try – you may be surprised.