Crappy installer/uninstaller

(Yes i do know how to make it work, the point here is for demo how new users gonna rage quit.)
So i did a fresh install of ubuntu and decided to install nvidia 346.35.
Downloaded it and went into TTY (lucky me ik how to do that, others would have to google it) stoped lightdm (another thing i would have to google since the instaler does not tell me how or offer to do it for me) ran the installer and i accept whatever is asked.
Out of nowhere i get “unable to install 32bit libs”, i said ok… now what? and i resumed…
(If the folder is not found just freaking create it yourself, you are the installer not me!)
rebooted and everything seemed to work just fine, then i went to download steam and it did not work (missed the 32bit libs so was missing ofc…) i said feck it just gonna uninstall this crap and use the outdated distro provided one.
Went back into TTY ran “–uninstall” it asked me if i wanted it to restore my xorg setting, i said ok…
rebooted only to find my lightdm in the wrong resolution (nouveau is disabled… user would have to google, again…) ran sudo rm /etc/whatever_else_the_path_is, and rebooted.
My resolution was fine on lightdm but then i pressed login… suprise unity does not load.
googled and found:
sudo rm /etc/X11/xorg.conf
echo ‘nouveau’ | sudo tee -a /etc/modules

even ran sudo dpkg-reconfigure xserver-xorg

rebooted again, same issue.
Gave up on it and ran “sudo apt-get install nvidia-current” wich installed the distro provided 304 driver.

You see the issues in here right?
1: make the installer install the 32bit libs.
2: make the uninstaller remove the file to disable nouveau.
3: fix whatever you broke that stops unity from booting (even i dont know that one…)
4: ditch everything you have done to the installer and create one you can use by simple double click a icon like every sane installer.

Installing the blob from tty on top of the distro provided one completly breaks everything to the point of the computer not evevn booting at all.

Why would anyone install the driver manually? Every distro has packages, which are prebuilt against the kernel that the distro ships so they will always work and don’t push untracked files into your filesystem as the manual installation does.

Even NVIDIA tells you to use the package manager of your distro. -> Additional Information

If your distro doesn’t ship the current version just use a 3rd party repository.

like i said before, the distro provided one is outdated (331.xx) and bad packaged.
Go ahead try to manualy install it vs distro one, theres a slight gain in performace.

Distro’s should stay out of it, they do a bad job at it and they shouldnd do it anyway, nvidia should provide a sane installer/uninstaller along with an auto updater. Something like Gefore Experience on windows.
I want to update the same second the driver is available.

Whilst I can sympathize with you, you’re wrong on this bit - distros should package it, to integrate with the distro’s package manager.

There’s several archives involved (including compilation of programs and the nvidia kernel module):

NVIDIA-Linux-x86_64-{VERSION}.run nvidia-settings-{VERSION}.tar.bz2
nvidia-installer-{VERSION}.tar.bz2 nvidia-xconfig-{VERSION}.tar.bz2

With e.g. multi-lib, and the question of whether to use nvidia’s vdpau libs, and also the question of whether nvidia’s GL headers should overwrite mesa’s (haha), and whether integration with Bumblebee is required, this is too complex a job for anyone other than the distro maintainers to handle.

Well… then perhaps nvidia should work with the moust popular distros to keep the drivers updated and well packaged.
If they work with Debian (should be enough to support ubuntu and all its “flavors”) and maybe fedora things would be much better.

Me personaly would like to see a PPA or something similar for at least ubuntu.

As I said use the 3rd Party Repos that package the new driver or use a rolling release distro.
You can’t just distribute a generic “installer” that puts some files somewhere. Every distro ships a different version of the the Linux kernel. If the NVIDIA module is compiled against version 3.14 you can’t use it with other kernel versions. That’s why you need the complete Linux kernel headers for the version of your kernel and a compilier toolchain. There is DKMS, which rebuilds the module everytime your kernel updates, but you might use a kernel that is so new that the NVIDIA module doesn’t even compile. NVIDIA usually does a good job keeping up with the latest kernel, but it happens. That’s why distros package them so they can include patches to make it compile against their current kernel.
An approach similar to what AMD is trying to do might work, where they use the free driver kernel module that is part of the Linux kernel and have the OpenGL implamentation has a userland blob that doesn’t have hardly any dependencies. The problem is that NVIDIA can’t just use the nouveau module, because that would lead to horrible regressions since it’s nowhere near at feature parity with the NVIDIA driver. In the end NVIDIA provides these drivers, because business clients rely on their features.

If you think that your distro does a bad job at packaging, file a bug. It’s very transparent who is responsible for packaging software X.

In case of Ubuntu - there is more or less good solution - use xorg-edgers PPA:

add-apt-repository ppa:xorg-edgers/ppa

which has the latest nvidia(and other) xorg drivers packaged correctly. In case of less popular distros you’ll have to use nvidia installer and this requires your virtual console to be usable which is not always the case(I had it broken for example with some free driver, vesa I think, because nouveau offered no support at all for GTX 970, the chip was simply not recognized).