# Portmaster installs conflicting dependencies



## frijsdijk (Dec 5, 2013)

So, building a 9.2-RELEASE server with Apache, PHP55, Percona56 and some tools.

My /etc/make.conf:

```
WITH_PKGNG=YES
WITHOUT_X11=YES
MYSQL_VER=56p
PHP_VER=55
```

Packages already installed (maybe useful information):


```
ca_root_nss-3.15.2_1           The root certificate bundle from the Mozilla Project
cmake-2.8.12.1                 Cross-platform Makefile generator
cmake-modules-2.8.12.1         Modules and Templates for CMake
curl-7.33.0_1                  Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
db41-4.1.25_4                  The Berkeley DB package, revision 4.1
dialog4ports-0.1.5_2           Console Interface to configure ports
gettext-0.18.3                 GNU gettext package
libexecinfo-1.1_3              A library for inspecting program's backtrace
libffi-3.0.13                  Foreign Function Interface
libiconv-1.14_1                A character set conversion library
libidn-1.28_1                  Internationalized Domain Names command line tool
libyaml-0.1.4_2                A YAML 1.1 parser and emitter written in C
p5-DBI-1.630                   The perl5 Database Interface.  Required for DBD::* modules
p5-Term-ReadKey-2.31           A perl5 module for simple terminal control
perl5-5.16.3_4                 Practical Extraction and Report Language
pkg-1.2.1                      New generation package manager
portmaster-3.17.2              Manage your ports without external databases or languages
portupgrade-2.4.11.2_1,2       FreeBSD ports/packages administration and management tool suite
ruby-1.9.3.448,1               An object-oriented interpreted scripting language
ruby19-bdb-0.6.6_1             Ruby interface to Oracle Berkeley DB revision 2 or later
wget-1.14_2                    Retrieve files from the Net via HTTP(S) and FTP
```

So I start portmaster to install the following ports (I've already set/copied /var/db/ports from another machine that is more or less the same):


```
portmaster /usr/ports/ftp/php55-curl /usr/ports/databases/pecl-memcache /usr/ports/databases/memcached /usr/ports/databases/php55-mysqli /usr/ports/databases/php55-pdo_mysql /usr/ports/databases/php55-mysql /usr/ports/www/apache22 /usr/ports/databases/percona56-server /usr/ports/databases/percona56-client /usr/ports/databases/percona-toolkit
```

Portmaster gives me:


```
===>>> The following actions will be taken if you choose to proceed:
        Install ftp/php55-curl
        Install devel/autoconf
        Install devel/autoconf-wrapper
        Install devel/gmake
        Upgrade gettext-0.18.3 to gettext-0.18.3.1
        Install devel/m4
        Install misc/help2man
        Install devel/p5-Locale-gettext
        Install lang/php55
        Install devel/pcre
        Install textproc/libxml2
        Install devel/pkgconf
        Install www/apache22
        Install devel/apr1
        Install databases/db42
        Install devel/libtool
        Install databases/gdbm
        Install textproc/expat2
        Install databases/pecl-memcache
        Install archivers/php55-zlib
        Install www/php55-session
        Install databases/memcached
        Install devel/libevent
        Install databases/php55-mysqli
        Install databases/php55-pdo_mysql
        Install databases/php55-mysql
        Install databases/php55-pdo
        Install databases/percona56-server
        Install databases/percona56-client
        Install devel/bison
        Install databases/percona-toolkit
        Install databases/p5-DBD-mysql
        Install databases/mysql55-client
        Install shells/bash
```

Now my question is, why do I get mysql55-client, why I say in /etc/make.conf that I'm using percona?

Then, is this the right way to avoid conflicts?


```
portmaster -x mysql55-client /usr/ports/ftp/php55-curl /usr/ports/databases/pecl-memcache /usr/ports/databases/memcached /usr/ports/databases/php55-mysqli /usr/ports/databases/php55-pdo_mysql /usr/ports/databases/php55-mysql /usr/ports/www/apache22 /usr/ports/databases/percona56-server /usr/ports/databases/percona56-client /usr/ports/databases/percona-toolkit
```

It seems so:


```
Install ftp/php55-curl
        Install devel/autoconf
        Install devel/autoconf-wrapper
        Install devel/gmake
        Upgrade gettext-0.18.3 to gettext-0.18.3.1
        Install devel/m4
        Install misc/help2man
        Install devel/p5-Locale-gettext
        Install lang/php55
        Install devel/pcre
        Install textproc/libxml2
        Install devel/pkgconf
        Install www/apache22
        Install devel/apr1
        Install databases/db42
        Install devel/libtool
        Install databases/gdbm
        Install textproc/expat2
        Install databases/pecl-memcache
        Install archivers/php55-zlib
        Install www/php55-session
        Install databases/memcached
        Install devel/libevent
        Install databases/php55-mysqli
        Install databases/php55-pdo_mysql
        Install databases/php55-mysql
        Install databases/php55-pdo
        Install databases/percona56-server
        Install databases/percona56-client
        Install devel/bison
        Install databases/percona-toolkit
        Install databases/p5-DBD-mysql
        Install shells/bash
```

Is this the preferred method? And why is my /etc/make.conf not working as I thought it would?


----------



## frijsdijk (Dec 8, 2013)

Great. Another unanswered question.


----------



## jb_fvwm2 (Dec 8, 2013)

I don't know about  the make.conf, I'm still learning the basics to put there.   But this is how I use excludes: `portmaster -d -B -P -i -g -x gcc-4.7.3.20130323 -x llvm33-3.3_7  audio/beast python`. That has worked AFAIK.


----------



## DutchDaemon (Dec 9, 2013)

Have you tried WANT_MYSQL_VER of WITH_MYSQL_VER? See /usr/ports/Mk/bsd.database.mk.


```
# WANT_MYSQL_VER
#                               - Maintainer can set an arbitrary version of MySQL to always
# WITH_MYSQL_VER
#                               - User defined variable to set MySQL version.
# MYSQL_VER
#                               - Detected MySQL version.
```

If anything in /etc/make.conf does not work as desired, always check /usr/ports/Mk/*.


----------



## ShelLuser (Dec 9, 2013)

I think your main problem is the wrong approach. You just copied /var/db/ports from another machine? I can come up with a lot of reasons why that could go wrong one way or the other.

If you want to duplicate the installed ports from one server on another you're better of using portmaster. Look into the --list-origins option. The list which that produces can be fed directly back into portmaster so that it will re-install all ports on the other system.

See portmaster(8) for more information on that.


----------

