# Update some packages with binary and others from sources



## crea7or (Sep 11, 2014)

Just upgraded to pkg(8) and I wonder, can I update some of the installed packages from the sources (I need some flags for them) but all others with binary update? 
I use portupgrade(1) to update the packages from sources as before.


----------



## SirDice (Sep 11, 2014)

That's possible but it's going to be tricky. Especially if you pick different defaults. You may wish to build mod_php5 based on Apache 2.2 for example but the packages have all been build for Apache 2.4. This could cause conflicts and require a bit of knowledge of the system to solve.

If you want to build ports using non-standard settings and continue to use packages I highly recommend setting up ports-mgmt/poudriere and build your own repository.


----------



## crea7or (Sep 14, 2014)

SirDice said:
			
		

> That's possible but it's going to be tricky. Especially if you pick different defaults. You may wish to build mod_php5 based on Apache 2.2 for example but the packages have all been build for Apache 2.4. This could cause conflicts and require a bit of knowledge of the system to solve.
> 
> If you want to build ports using non-standard settings and continue to use packages I highly recommend setting up ports-mgmt/poudriere and build your own repository.



my requirements are easy. currently I need only special flags in nginx to be set. No any dependency tricks.


----------



## obsigna (Sep 14, 2014)

crea7or said:
			
		

> my requirements are easy. currently I need only special flags in nginx to be set. No any dependency tricks.



Recently I also investigated the possibilities of dual mode (binary/source) updating. See this thread. I stumbled across some obstacles, but finally I think, I got it right. I created a shell script which does the updating in the correct sequence. At the top of the script, I only name the ports that I want to update from sources, using portmaster --update-if-newer, and all others are updated using pkg upgrade. See the last post in said thread.

I use this script for some days now, and it servers my needs. If you want to give it a try, then you need to adapt the variable $portslist in that script, and the list should contain at least 2 entries, since for any reason portmaster ignores the option --update-if-newer if it is asked to update only one port.


----------

