On 09/13/2010 11:26 AM, Russell Jackson wrote: > On 09/13/2010 09:59 AM, Russell Jackson wrote: >> On 09/12/2010 07:32 AM, FreddieB wrote: >>> I looks like Puppet is not able to figure out that MySQL 5.1 is >>> already installed. If I list the packages installed (with pkg_info) I >>> find MySQL there but it's not called "mysql51-server" but "mysql- >>> server-5.1.48". If I go back to my init.pp and change the name from >>> "mysql51-server" to just "mysql-server", it works again (i.e. it will >>> not try to install the package again). It is not possible to start >>> with just "mysql-server", because there is no package called just >>> "mysql-server". >>> >>> My conclusion is that FreeBSD's inconsistent way of naming the >>> packages fools Puppet to think it's not installed. I've never written >>> a line of ruby-code so I could use some help here. Can anyone think of >>> a good workaround? >>> >>> BTW - my current, and not so pretty workaround is to link mysql- >>> server.tbz to mysql51-server.tbz on my local FreeBSD-mirror-site. >>> >> >> Yes. The package system has turned out to be a royal PITA for puppet. I >> don't have any good work-a-rounds at the moment. I think we might be >> able to do something by specifying the package name as the port origin >> (pkg_info -o) and looking up the right package out of ports/INDEX. >> > > I imagine it could work something like this: > > # Download the ports index > mkdir /tmp/ports-index > cd /tmp/ports-index > fetch > ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/INDEX.bz2 > bunzip2 INDEX > > # Lookup package name from origin path > pkgname=$(awk -F\| '{ if ($2 == "/usr/ports/databases/mysql51-server") > print $1 }' INDEX) > > pkg_add -r > ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/All/${pkgname}.tbz > > > Checking if the package was installed could be done with pkg_info -O: > > pkg_info -O databases/mysql51-server | tail -n+2 | grep -qc '$' && > echo 'installed' || echo 'not installed' > >
Hum... I'm just realizing that the Latest tree on the ftp mirror sort of already is a mapping from the origin (without the category) to the package name. So the install method can stay the same and just modify the pkg_info lookup to use pkg_info -O '*/<package_name>' -- Russell A Jackson <[email protected]> Network Analyst California State University, Bakersfield -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
