Global and User package database

Mehmet Erol Sanliturk m.e.sanliturk at gmail.com
Thu Dec 15 19:36:23 UTC 2011


Dear All ,


In the new PkgNG :

https://github.com/pkgng/pkgng/blob/master/pkg/add.c


the following statement is written :

        if (geteuid() != 0) {
                warnx("adding packages can only be done as root");
                return (EX_NOPERM);
        }


Instead of the above statement , is it possible to use a statement
as follows ( which it may be defined as a function to be called from all
the related
functions / programs ) :



        if (geteuid() == 0) {

             package_db_path = ... global path name ... , etc. ;


             PKGDB_PLACE  =  PKGDB_DEFAULT ...  etc.


        } else
             {


             package_db_path = ... local path name , ie.
                 in $HOME about user path name ... , etc. ;

              PKGDB_PLACE  =  PKGDB_USER ... etc.

              }

        if (pkgdb_open(&db, PKGDB_PLACE) != EPKG_OK) {
                 return (EX_IOERR);
        }


( Replace PKGDB_PLACE by a suitable name ... )


In that way , it will be possible to install packages into user home
directory ,
instead of global package directory .

For security concerns , user-installed packages will not be usable globally
, or
convenient only for the user .



Thank you very much .

Mehmet Erol Sanliturk


More information about the freebsd-ports mailing list