# Confused by nvidia update



## kabads (Aug 22, 2018)

I tried to install the latest nvidia-driver-340 binary pkg for 11.2, but this crashes. So, I installed it from /usr/ports instead - which worked fine. However, when I try pkg upgrade, I get the binary version of nvidia wanting to install again:



```
$ sudo pkg upgrade
Password:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (6 candidates): 100%
Processing candidates (6 candidates): 100%
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
    nvidia-driver-340-340.107 (direct dependency changed: linux-c6-xorg-libs)

Number of packages to be reinstalled: 1

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

How do I get rid of this binary version? 
I've tried 
`sudo pkg delete nvidia-driver-340`
but it still comes up in the upgrade. 
TIA


----------



## rigoletto@ (Aug 22, 2018)

kabads said:


> nvidia-driver-340-340.107 (direct dependency changed: linux-c6-xorg-libs)



This is the reason.

First, packages and the ports tree are almost never in sync, so dependencies ( and other stuff ) can be different from a second to another. In this particular case, you probably are using the quarterly package repository ( the default one ) instead of *latest* that is closer to the ports tree. But even if using latest you can hit something like this when mixing ports and packages.

The quick dirty solution would be to build the nvidia driver without the LINUX OPTION for now, but if you need the linuxolator you better switch to latest ( if you are on latest already we try can think in something else ). 

Cheers!


----------



## kabads (Aug 23, 2018)

I thought the dependency was the problem, so I deleted the linux-c6-xorg-libs. When I did that, I got:


```
$ sudo pkg delete linux-c6-xorg-libs
Password:
 Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 2 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
    linux-c6-xorg-libs-7.4_10
    nvidia-driver-340-340.107

Number of packages to be removed: 2

The operation will free 223 MiB.

Proceed with deinstalling packages? [y/N]: y
Please type 'Y[es]' or 'N[o]' to make a selection

Proceed with deinstalling packages? [y/N]: y
[1/2] Deinstalling nvidia-driver-340-340.107...
[1/2] Deleting files for nvidia-driver-340-340.107: 100%
ELF binary type "3" not known.
/bin/sh: /compat/linux/sbin/ldconfig: Exec format error
[2/2] Deinstalling linux-c6-xorg-libs-7.4_10...
[2/2] Deleting files for linux-c6-xorg-libs-7.4_10: 100%
ELF binary type "3" not known.
/bin/sh: /compat/linux/sbin/ldconfig: Exec format error
pkg: POST-DEINSTALL script failed
```

I really would like my ports version of nvidia-driver-340 to stay. I have to use the ports version as there is a known bug with the binary version: https://www.freebsd.org/releases/11.2R/errata.html and https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228536.


----------



## chrbr (Aug 23, 2018)

Dear kabads,


kabads said:


> I really would like my ports version of nvidia-driver-340 to stay.


You can achieve this by pkg-lock(8). This lock can be removed manually when FreeBSD-11.1 is expired.


----------



## rigoletto@ (Aug 23, 2018)

kabads said:


> I thought the dependency was the problem, so I deleted the linux-c6-xorg-libs.



Just removing the package will not remove the dependency requeriment. You need to build the nvidia port without LINUX support to it not depend on that anymore.

`make -C /usr/ports/x11/nvidia-driver-340 config` ( disable LINUX )
`make -C /usr/ports/x11/nvidia-driver-340 deinstall install clean`

Now it does not depends on linux-c6-xorg-libs anymore, and you can run `pkg autoremove` to get rid of it.


----------



## SirDice (Aug 23, 2018)

lebarondemerde said:


> You need to build the nvidia port without LINUX support to it not depend on that anymore.


That's usually the best option.

Note that the Linux option is to allow 3D acceleration for Linux binaries, it's not required for the driver to work. FreeBSD 'native' applications don't need it.


----------



## kabads (Aug 23, 2018)

So, I've installed without linux support but still get this: 


```
$ sudo pkg upgrade
Password:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (6 candidates): 100%
Processing candidates (6 candidates): 100%
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
    nvidia-driver-340-340.107 (options changed)

Number of packages to be reinstalled: 1

The process will require 89 MiB more space.

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


----------



## kabads (Aug 23, 2018)

Bah! I missed the pkg autoremove. Now that I've done that, I'm getting: 

```
$ sudo pkg upgrade
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (4 candidates): 100%
Processing candidates (4 candidates): 100%
The following 5 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
    linux-c6-xorg-libs: 7.4_10
    linux-c6-fontconfig: 2.8.0_3
    linux-c6-expat: 2.0.1_5
    linux_base-c6: 6.9_8

Installed packages to be REINSTALLED:
    nvidia-driver-340-340.107 (options changed)

Number of packages to be installed: 4
Number of packages to be reinstalled: 1

The process will require 297 MiB more space.
28 MiB to be downloaded.

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


----------

