Freebsd – How to make a normal user can install package with `pkg_add` on FreeBSD

freebsdinstallationpackagespermissionssudo

How to make a normal user can install package with pkg_add on FreeBSD?

pkg_add -r command fails with normal user with sudo. Downloading succeeds, but installation fails with this error message. Equal command executed successfully with root login.

%sudo pkg_add -r apache22
Password:
Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/Latest/apache22.tbz: Syntax error, command unrecognized
pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/Latest/apache22.tbz' by URL
%

Assume my username as eonil.

I added

eonil ALL=(ALL) ALL

code as next of

root ALL=(ALL) ALL

via visudo, and added the user to wheel group by

pw usermod eonil -G wheel

. But the user cannot install package with sudo pkg_add -r apache22. (not only the apache, any package.)

Best Answer

Problem in env vars.

Uncomment or add line in sudoers(run visudo command):

Defaults        env_keep += "PKG_PATH PKG_DBDIR PKG_TMPDIR TMPDIR PACKAGEROOT PACKAGESITE PKGDIR FTP_PASSIVE_MODE"