pkg_add not installing lsof (and other programs)? (newbie problem)

David Scheidt dscheidt at panix.com
Wed Dec 14 21:53:17 PST 2005


On Wed, Dec 14, 2005 at 10:39:10PM -0700, TuxGirl wrote:
> Hello,
> 
> I installed FreeBSD for the first time tonight (I've been running
> Linux for a while), and I seem to be misunderstanding pkg_add.  I'm
> following the instructions in the FreeBSD manual, and I ran:
> 
> # pkg_add -r lsof
> 
> It claimed to succeed:
> Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.0-release/Latest/lsof.tbz...
> Done
> 
> then:
> # lsof
> lsof: Command not found.
> 
> # echo $PATH
> /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11/R6/bin:/root/bin
> 
> # uname -a
> FreeBSD .hsd1.ut.comcast.net. 6.0-RELEASE FreeBSD 6.0-RELEASE #0: Thu
> Nov 3 09:36:13 UTC 2005   
> root at x64.samsco.home:/usr/obj/usr/src/sys/GENERIC   i386
> 

You can confirm that the package was installed by running the pkg_info
command, which returns a list of all installed packages and ports.
You can also look in /var/db/pkg, which is where the package database
is kept.  Assuming you've got it installed (which you should, pkg_add
returns error messages...) you've run into a difference between the
root shells in FreeBSD and Linux.  

The FreeBSD root user shell is tcsh.  tcsh, unlike bash, scans the
$PATH enviornmental variable at login to find everything, and builds a
table in memory so it can quickly find and execute commands.  If you
install a program, the shell won't know about it.  You can force it to
rebuild the table by issuing the 'rehash' command.  

bash, on the other hand, builds its command hash table incrementally,
as you execute commanads.  So if you add new ones, they're found
automatically.  

David



DAvid


More information about the freebsd-questions mailing list