Red Hat Linux was once a pretty widespread Linux distribution.

Then it forked into two pretty widespread Linux distributions, called Red Hat Enterprise Linux (RHEL) and Fedora Core (now called Fedora Linux). Both distributions are entirely open-source.

Red Hat Enterprise Linux

  • Built by Red Hat, Inc.
  • Supported by Red Hat, Inc.
  • New release about every 18 to 24 months.
  • Each release has a long life cycle - several years.
  • Binary distributions, ISOs, and boxed product are sold by Red Hat, Inc., and include support contract and access to binary updates.
  • Source RPMs (including updates) are free to download. The open-source license allows you to build and distribute RHEL in whole or in part; but trademark law means that you may not include Red Hat's images or call your binaries RHEL.
  • Several Linux distributions are based on RHEL sources. The most popular is CentOS [L1 ].
  • Mature, stable software.
  • Popular in commercial environments where a support contract is an essential part of a software deployment.
  • Pro: stable, mature, supported; commercial Linux software is usually built for RHEL; upgrade installations from earlier versions of RHEL are supported.
  • Con: RPM upgrades fix bugs but usualy do not provide extra functionality; no official repository of "extra" software packages (but third-party repositories exist).
  • Tcl: has only a few Tcl-related packages - in RHEL 5 these were Tcl 8.4.13, Tk 8.4.13, TclX 8.4.0, Tix 8.4.0, Expect 5.43.0 and DejaGnu 1.4.4.

Fedora Linux

  • Built by the Fedora community, which is led by Red Hat, Inc.
  • Unsupported by Red Hat, Inc.
  • New release every 6 to 9 months.
  • Short life cycle - updates are available for the most recent 2 Fedora releases
  • Cutting-edge software.
  • Binary distributions, ISOs, may be downloaded and redistributed. There is no boxed product, but CDs and DVDs can be purchased from third parties and as magazine coverdisks.
  • Source RPMs (including updates) are free to download.
  • Software is tested in Fedora before inclusion in RHEL. For this reason Fedora is sometimes mis-characterized as beta quality, but in fact Fedora and its components are as well engineered as other consumer Linux distributions. The software is suitable for deployment on the desktop, but is not quite ready for the conservative customers who pay for RHEL.
  • Pro: recent software versions; a large repository of "extra" software packages.
  • Con: upgrade installations from earlier versions of Fedora are permitted, but sometimes fail - a fresh installation is advisable. The short life cycle means that frequent re-installation is needed if updates are required.
  • Tcl: has many Tcl-related packages

Notable update in Fedora 9

  • Fedora upgraded Tcl to 8.5 starting with Fedora 9. At the same time, a few patches were included to restrict the default set of directories that were included in Tcl's auto_path variable. This set of directories changed from /usr/lib[64], /usr/share, /usr/share/tcl8.4 to /usr/lib[64]/tcl8.5, /usr/share/tcl8.5. This fixes a long standing problem with Tcl in RedHat/Fedora distributions where the Tcl interpreter would take a long time to complete the first package require foo statement due to having to search through hundreds of directories in /usr/lib and /usr/share. These patches were filed in Tcl's upstream bug tracker.
  • Only prodebug and procheck are included in Tcl 8.5. tbcload was dropped from the tclpro packages in Fedora 9 due to incompatibilities in the open-source tbcload sources and Tcl 8.5.

Problems with Fedora 8/9/10

  • The Tk send command fails, with error message 'X server insecure (must use xauth-style authorization); command ignored'
  • The X server is not insecure, but the output of xhost confuses Tk. xinit has added a line to xhost in a format that Tk does not expect. This has been submitted to Fedora as a bug [L2 ]; unfortunately, the view from Fedora is that their changes to X11 are a Good Thing and Tk's send command is broken. The bug has also been submitted to the Tk bug tracker [L3 ].
  • To fix the problem in your current X11 session, see X server insecure: display manager running and X server insecure: unmanaged local console
  • For a permanent fix, comment out the offending lines in file /etc/X11/xinit/xinitrc.d/

Problems with older versions of Red Hat Linux

  • For some years Red Hat provided versions of Tcl/Tk that were well out of date (with differences in the major version number - see comments below). This is no longer the case: in recent releases, the version supplied with Fedora or RHEL is typically 0 or 1 minor version numbers behind the stable version of Tcl/Tk at the time of release.
  • Red Hat's 32-bit Unicode patch, which caused compatibility problems in Red Hat Linux 9 (see discussion below) is no longer used.

Tcl binaries for RedHat

LV 2007 Oct 01

I have a question for Redhat Linux admins.

Does Redhat have a package that would provide a batteries included type environment?

Yes, I know about ActiveTcl. From a burecratic point of view, installing things from RedHat packaging hopefully would result in less paperwork, etc.

KJN The number of Tcl-related packages in RHEL is limited (see list above). Fedora has a better selection, but most of these are from the old "Fedora Extras" repository, and might not be provided on installation media. An RPM called "tcl-batteries-included" that requires all the available Tcl packages as dependencies would be useful, but AFAIK no such thing exists - you would need to write your own and submit it to the Fedora project.

Fedora 8 has many packages that require Tcl and/or Tk. The first group here is the packages that might belong in a "batteries included" metapackage:

  • blt: BLT widget extension to Tcl/Tk scripting language development
  • bwidget: Extended widget set for Tk
  • expect: A program-script interaction and testing utility
  • expectk: A program-script interaction and testing utility
  • graphviz-tcl: Tcl extension & tools for graphviz
  • hping3: TCP/IP stack auditing and much more
  • itcl: Object oriented extensions to Tcl and Tk
  • itk: Object oriented extensions to Tk
  • metakit: Embeddable database
  • postgresql-tcl: A Tcl client library for PostgreSQL
  • tbcload: Tcl bytecode loader
  • tclchecker: Tcl syntax checker
  • tclcompiler: Tcl bytecode compiler
  • tcldebugger: Tcl debugging library
  • tcl-devel: Tcl scripting language development environment
  • tcldom: TclDOM is a package that provides a DOM binding for the Tcl scripting language
  • tclhttpd: Extensible Web+Application server written in Tcl
  • tcllib: The standard Tcl library
  • tclparser: Tcl syntax parser
  • tclpro: Development and debugging tools for Tcl applications
  • tclsoap: Tcl commands for SOAP remote procedure calls
  • tcl-tcldict: Tcl dictionary extension
  • tcl: Tcl scripting language development environment
  • tcl-thread: Tcl Thread extension
  • tclx: Extensions for Tcl and Tk
  • tclxml: TclXML is a package that provides XML parsing for the Tcl scripting language
  • tile: Modernized widgets for Tk
  • tix: A set of extension widgets for Tk
  • tkcon: Tcl GUI console
  • tk-devel: Tk graphical toolkit development files
  • tklib: Collection of widgets and other packages for Tk
  • tktable: Table/matrix widget extension to Tcl/Tk
  • tk: The graphical toolkit for the Tcl scripting language
  • tk-tktreectrl: Flexible listbox widget for Tk

The remaining packages are bindings to other languages, and applications or libraries that use Tcl/Tk (I am not familiar with all these tools, so please move them between the two groups if you know better than I do).

  • amsn: MSN Messenger clone for Linux, Mac and Windows
  • climm: Text/line based ICQ client with many features
  • compat-erlang: General-purpose programming language and runtime environment
  • csound-tk: Tcl/Tk related Csound utilities
  • eggdrop: The world's most popular Open Source IRC bot
  • environment-modules: Provides dynamic modification of a user's environment
  • erlang: General-purpose programming language and runtime environment
  • funtools: FITS library and utilities
  • funtools-libs: A general purpose FITS library
  • gcl: GNU Common Lisp
  • git-gui: Git GUI tool
  • gitk: Git revision tree visualiser
  • gnu-smalltalk: GNU Smalltalk
  • grass: GRASS - Geographic Resources Analysis Support System
  • GREYCstoration-gui: GREYCstoration image denoising and interpolation tool
  • hfsutils: Tools for reading and writing Macintosh HFS volumes.
  • hfsutils-x11: A Tk-based front end for browsing and copying files.
  • isdn4k-utils-vboxgetty: ISDN voice box (getty).
  • libpurple-tcl: Tcl scripting support for libpurple
  • Magic VLSI: A very capable VLSI layout tool
  • maxima-gui: Tcl/Tk GUI interface for maxima
  • moodss: Powerful modular monitoring graphical application
  • netgen: LVS netlist comparison tool for VLSI
  • ocaml-labltk: Tk bindings for Objective Caml
  • ogdi-tcl: TCL wrapper for OGDI
  • openmsx [L4 ]: An emulator for the MSX home computer system
  • plplot: Library of functions for making scientific plots
  • plplot-tk: Functions for scientific plotting with Tk
  • postgresql-pltcl: The Tcl procedural language for PostgreSQL
  • ppracer: 3D racing game featuring Tux
  • pvm-gui: TCL/TK graphical frontend to monitor and manage a PVM cluster.
  • python-imaging-tk: Tk interface for python-imaging
  • python-matplotlib-tk: Tk backend for python-matplotlib
  • q: Equational programming language
  • R: A language for data analysis and graphics
  • remind: A sophisticated calendar and alarm program
  • remind-gui: A graphical front-end for remind using Tcl/Tk
  • rrdtool-tcl: Tcl RRDtool bindings
  • ruby-tcltk: Tcl/Tk interface for scripting language Ruby
  • setools-gui: Policy analysis graphical tools for SELinux
  • setools-libs-tcl: Tcl bindings for SELinux policy analysis
  • skencil: Vector drawing program
  • tclabc: A Tcl interface and a Tk GUI to the ABC notation
  • tcl-brlapi: Tcl binding for BrlAPI.
  • tkcvs: TkCVS and TkDiff
  • tkinter: A graphical user interface for the Python scripting language.
  • torque-client: Client part of TORQUE
  • torque-gui: Graphical clients for TORQUE
  • uudeview: Applications for uuencoding, uudecoding, ...
  • vkeybd: Virtual MIDI keyboard
  • vtk-python: Python bindings for VTK
  • vtk-tcl: Tcl bindings for VTK
  • vtk: The Visualization Toolkit - A high level 3D visualization library
  • xbindkeys: Binds keys or mouse buttons to shell commands under X.
  • xchat-tcl: Tcl script plugin for X-Chat
  • xcircuit: Electronic circuit schematic drawing program
  • xpa-libs: The XPA messaging system runtime libraries

LV Redhat announced this week (June 1, 2006) that the beta open source site was now accessible. They compared it to MSDN by Microsoft.

Alas, when I used their search facility on June 1, 2006, there were no references to tcl returned by the search engine.

Discussion of old versions of Red Hat Linux

Jeff Hobbs warned in the Tcl chatroom on 2003-05-20: "for reference for anyone else here, RH9 sucks, and sucks especially for what they did to Tk on it. Do not use the RH9 default Tcl/Tk install."

What exactly did they do to it? - davidw

JE RH9 patches the tcl core code to use 32-bit Tcl_UniChars (the default is 16 bit). This breaks the stubs table guarantee; as a result, Tcl extensions built on another Linux distro (including earlier RH releases) won't work on RH9. Plus, they're still distributing Tcl 8.3.5, which is way out of date. There are probably some other problems as well.

Good alternatives are Debian, Suse, and Mandrake.

KPV I heard from one of my users that RH was also very bad with Perl, clinging onto 1.5 way too long.

Is there any mysterious reason why RedHat does not use Tcl8.4, but still distributes Tcl8.3 (in RedHat 9)? It is the only reason why I distribute my Tcl programs as Tcl8.3 versions. Suse has used Tcl8.4 for a long time. Do not tell me about stable versions. Suse is also stable with Tcl8.4.

It seems that Suse supports Tcl better than RedHat. Suse 8.2 distribution has a special package management point (Tcl-Development) and has also Visual tcl and SpecTcl as RPM packages.

LES: I have tried 12 distros and found RedHat the best all-around. BUT: I use RedHat 7.3, considered the best by many RH fans, AND I never tried SUSE.

TV: I've used RedHat 6.0-2 or so long ago, which was cool, it ran tcl as a cgi under apache, and did most unix stuff, so I was satisfied with it serving images. More recently I used redhat 8 and now I regularly let 9 run, which works fine, rpm's, tcl/tk 8.4.1 works fine enough, though I wouldn't let a average computer user install it. As a unix replacement, at least it is serious, I like running wmaker, with kde and gnome panels/utils on various screen pages, which is fun. The kernel I used offeres audio support, but for (mixed) multiple channels, some special constuct must be run, which may be fast, but that is sort of crappy to use, in the past it broke down, but I guess using the right deamons and processes and making sure nothing runs double or has wrong permissions, it runs. I tried the ccrma patched kernels for millisecond range sound delay, which would be great for building sound apps, but they fail me thus far, the hardware detection somehow seems to go wrong on the machine I can try it on. I had to let the nvidia driver from that company recompile the kernal, which worked fine, and now 3D is blazing, it seems, which may noit be all too rh dependent. The installer works, and probably unattended makes things start up without much care, but a lot of things are not integrated clearly with either kde or gnome based installer and maintenance tools, and the redhat ones, which at times are fine, are often not trivial to find for me though. Without prior unix knowledge, lots of things I woulnd't have been able to do. Then again, having it start up and run a supplied shell and the compiler and such is worth it. Compared to suse (a bit older version a few years ago) and caldera I'd say it probably would still get my preference, suse probably being a bit nicer, though I'd have to do a lot of recapping to know for sure, it still has probably the most professional feel to it. I myself didn't try debian, ever.

Recently, I found redhat linux will be discontinued next year, which sort of surprised me, I alreadt knew there is a new, experimental, developper supported package called fedora, and the enterprice version, which are commercial, will continue I understand, which I never tried out. The current download wasn't that easy to find, the site directs you most clearly to a cheap version, not the free download. By regularly filling in a questionaire, you can for free stay subscribed to redhat net, where automatic updates can be gotten, bug fixes and 'security updates', search for and download rpm's. Versions don't mix, which can be annoying, and I can't say I feel free with rpm's, but the redhat ones do work.

Tcl I could use easily enough, though indeed the standard version is probably old, and indeed getting it installed and running easily wasn't a breeze. You must know what /usr/local/bin is and then some, and it's just not so handy from the sources, but it works fine with some work, thus far.