I struggled for a couple of hours on just the basics of creating a package and getting it found. No matter what I tried, I kept getting the annoying and uninformative error:
Error in startup script: can't find package FooBar 1.0
Here is the bare minimum of what I had to do to create a new package called FooBar and have it found:
echo pkg_mkIndex -verbose . FooBar.tcl | tclsh8.4
which creates a pkgIndex.tcl file so that "package require" works. tclsh8.4 should be changed to the location of where your tclsh executable resides, but this worked on Tcl 8.4.1.
package require FooBar 1.0
where the 1.0 corresponds to the package provide command that should be inside the FooBar.tcl file.