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.

Reply via email to