# pkg: .... has a missing dependency: pkg-config



## Dmitry D (Jul 3, 2015)

Hello!

I have a strange problem with pkgng on my  8.4-RELEASE-p30 host
When I try to update wget I see many errors "....has a missing dependency: pkg-config"
Please help me to repair pkgng database.
Thanks!
PS: Probably I run pkg2ng second time after 1-2 month
____

```
#pkg install wget
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Updating database digests format: 100%
pkg: libidn has a missing dependency: pkg-config
pkg: gnuplot has a missing dependency: pkg-config
pkg: gd has a missing dependency: pkg-config
pkg: mrtg has a missing dependency: pkg-config
pkg: libxml2 has a missing dependency: pkg-config
pkg: lua has a missing dependency: pkg-config
pkg: nmap has a missing dependency: pkg-config
The following 18 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
  neon29-0.29.6_4
  elm+ME-2.4.99f
  libxml2-2.8.0_2

New packages to be INSTALLED:
  indexinfo: 0.2.3
  gettext-runtime: 0.19.4
  perl5: 5.20.2_5
  openssl: 1.0.2_3
  gettext-tools: 0.19.4

Installed packages to be UPGRADED:
  wget: 1.12_3 -> 1.16.3
  libidn: 1.19 -> 1.29
  libiconv: 1.14_1 -> 1.14_8
  gmake: 3.82_1 -> 4.1_2
  gettext: 0.18.1.1_1 -> 0.19.4
  lftp: 4.3.3 -> 4.6.3a
  expat: 2.0.1_2 -> 2.1.0_2
  help2man: 1.41.2 -> 1.43.3_1
  p5-Locale-gettext: 1.05_3 -> 1.05_4
  dovecot: 1.2.17 -> 1.2.17_6

The process will require 44 MiB more space.
21 MiB to be downloaded.

Proceed with this action? [y/N]:
----
```


----------



## kpa (Jul 3, 2015)

Make sure you have an up to date ports tree at /usr/ports and start reading what pkg-updating(8) outputs. Your installed packages seem seriously out of date since the last time pkg-config was in the ports tree was about three years ago:



```
20120726:
  AFFECTS: users of devel/pkg-config
  AUTHOR: bapt@FreeBSD.org

  devel/pkg-config has been replaced by devel/pkgconf

  # portmaster -o devel/pkgconf devel/pkg-config
    or
  # portupgrade -fo devel/pkgconf pkg-config-\*

  pkgng:
  # pkg set -o devel/pkg-config:devel/pkgconf
  # pkg install -f devel/pkgconf
```

You could start with this invocation of pkg-updating(8), it prints all UPDATING entries for your installed packages starting from the beginning of year 2012:

`pkg updating -d 20120101`

Follow the entries in reverse order of date, oldest first.


----------



## Dmitry D (Jul 3, 2015)

Thank you for help!

I misunderstood what I should do with output of
`pkg updating -d 20120101` ?

Execute this command
`pkg set -o devel/pkg-config:devel/pkgconf` ?

Very strange thing - I don't see 20120726 string in output
`#pkg updating -d 20120101 | grep 20120726
#`

But /usr/ports/UPDATING is up to date

```
#l /usr/ports/UPDATING
-rw-r--r--  1 root  wheel  393k Jul  2 22:40 /usr/ports/UPDATING
```


----------



## wblock@ (Jul 3, 2015)

Please do not run `pkg2ng` more than once.  If you have updated packages since the first time, it will wipe out that information.  The only time to use `pkg2ng` is once, when switching from the old package database.  Then do not ever use it again.


----------



## kpa (Jul 3, 2015)

You can grep(1) trough the UPDATING file yourself and see if there are other entries to affect your installed packages, pkg-updating(8) is not completely precise when it matches the entries to the installed packages because the format of the file is very ad-hoc.

And yes, follow the instructions to the letter when you see a matching entry.


----------



## SirDice (Jul 3, 2015)

As this seems to be a  rather old system it may be a lot simpler to just make a note of what is installed, remove all packages and reinstall them from the list. That way you shouldn't run into any dependency issues.


----------

