Cygwin git and git bash path confusion - vim

So I wanted to install some vim plugins using Vundle, I got everything set up, ran PluginInstall command and got this:
fatal: Unable to create temporary file: Result too large
I should mention that I have both git-bash and cygwin git package installed on my environment.
I did some googling and found that I shouldn't use windows version of git through cygwin, installed cygwin git package, tried again to no avail. Turns out even though I have installed the cyg pkg, cygwin is still using the git-bash one.
I tried manually pulling the plugin with cygwin's git version and it worked. So how do I force cygwin to use it's own package. In my user path variable resides only cygwin's bin folder, git-bash is in the system's path variable. How do I force the user path one to take precedence over the git-bash version? Shouldn't that be the dafault behaviour?

https://askubuntu.com/questions/58814/how-do-i-add-environment-variables
Seems to do the trick, I don't know if that is the optimal solution but it works. I just plugged this into my bashrc.
export PATH="C:\cygwin64\bin"

Related

Changing the location of git installation on linux

I apologize if this seems basic but I'm new to linux and not really sure how to proceed. My current git version is 1.7.1 and is located in /usr/bin/git but a newer version of git (1.8) is now available in /usr/src/git/bin/git. How do I make git use this version by default as opposed to the 1.7.1 version?
You have to make sure to call the right executable. This can ben done by explicitly calling /usr/src/git/bin/git instead of git. Of course this would be annoying to type all the time, so you can either make git an alias for that path by adding the line
alias git=/usr/src/git/bin/git
to your .bashrc, or add the directory /usr/src/git/bin to your binary search path by adding the line
export PATH="/usr/src/git/bin:$PATH"
To test that the other git installation searches for the core binaries in the right place, you can check the output of git --exec-path.

Overriding System Binaries With Home Directory Binaries

I'm trying to compile a piece of software in my home directory (OpenMPI). One of the build dependencies (autoconf) installed on my system is not the newer version asked for by the OpenMPI autogen script. I compiled and installed the newer version of autoconf in my home directory.
Is there anyway for the binary installed in my home directory to "override" the version installed on the system for my session?
I tried setting an alias which works via command line but not for the script used to generate the configure script.
Add the path to the binary you want to override to your $PATH environment variable.
Like PATH=/path/to/binary:$PATH ./compile
Your added path will then be looked up first when trying to find the compile command. It will only be valid for that execution and will not remain after command has returned. You can use export PATH=/path/to/binary/:$PATH and it will be saved for that session.
EDIT: As Eric.J states, you can use which compile which will output the path to the command, just to make sure it's the right one.
You can change the PATH environment variable so that your home directory appears before the system directory, e.g.
PATH=$HOME/bin:$PATH
You can then use the which command to ensure the correct binary is being picked up.

Manual install of Vim

I have downloaded the source for VIM (7.3) and compiled it successfully with a make command on a Linux platform. I do not want to run make install though as I think this will overwrite the current version of VIM already installed which will cause problems for other users on the server using VIM 7.0. I would just like to run the newly compiled VIM binary for my user account by putting it in my home bin folder but cannot find it in the VIM folder
Is it possible to do this and if yes, where is the binary after running make?
Thanks!
You should provide the prefix option for the configure script to set the installation directory:
Example:
mkdir /home/john/vim/ && ./configure --prefix /home/john/vim/ && make && make install
Then it will install the vim to /home/john/vim/ and won't write anything over.

How to have a Local Install have Precedence Over a System Wide Install?

I have a shell account on a Linux server (running Ubuntu 8.04) with user level permissions (but no root priveleges). The system has Git 1.5.x installed. I wish to run a more current version of git. I can compile from source and install in my home directory but would like the git commands to invoke my local, more current install, rather than the older system wide installation of Git.
How do I go about doing this?
Add the directory containing your git binary to the front of your $PATH. For example, if you installed to ~/bin, add $HOME/bin to the front of your path. You can do that in your shell config file; for bash, add this to .bashrc:
export PATH="${HOME}/bin:$PATH"

Pathogen not loading plugins correctly in Cygwin?

I recently discovered how awesome Pathogen is for managing Vim plugins, using the Git submodule approach for keeping plugins up-to-date with Github. You can view my modest dotfiles repo here.
I recently was forced to switch to a Windows development environment from for work, so the first thing I did was a complete install of Cygwin (I had hard drive space to spare and didn't feel like picking and chosing packages).
The problem: With Cygwin installed (using Mintty), I clone my dotfiles repo to ~/. Then I put symlinks in ~/ for .vim, .vimrc, and .bashrc. The .vimrc configuration file is being read in (the options work), but Pathogen isn't correctly loading my Vim plugins.
Forgive my incompetence, but I'm new to Cygwin and I don't fully understand its quirks yet. In any case, the exact same repository works fine under *nix machines. Is there something that I should be doing differently to get it to work under Cygwin?
Ok so I'm an idiot. I didn't realize that you have to do git submodule init and git submodule update after forking the repository as well (I thought you only had to do it on creation / first commit. To be clear, the issue had nothing to do with Cygwin specifically.
Which brings me to my next problem:
$ git submodule update
Cloning into .vim/bundle/nerdcommenter...
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/scrooloose/nerdcommenter.git/info/refs
fatal: HTTP request failed
Clone of 'https://github.com/scrooloose/nerdcommenter.git' into submodule path '.vim/bundle/nerdcommenter' failed
Is there an quivalent of --no-check-certificate for wget?
Update: I fixed the latter problem as well. For anyone else having the same problem, you can simply edit your .git/config file and change all of the submodule HTTPS references to HTTP. Re-attempt the update and it should work.

Resources