What needs to be done to prove that a vector bundle is trivial? What needs to be done to prove that a vector bundle is trivial? equivalently, This can be thought of as proving that the vector bundle satisfies the criteria of being trivial, then what is this criteria? 
 A: Since the question of "How can you tell if a bundle is trivial?" is very general I wrote an expository essay answer, because there are a lot of interesting aspects to this problem and not a lot of computable, final answers. (After working on it a couple days I guess it's a bit long.)
Let $E\to X$ be a rank $n$ vector bundle over a sufficiently nice, connected space. 
Definition: $E$ is trivial iff $E$ is vector bundle isomorphic to the trivial bundle $X\times \mathbb{R}^n$.
This is the definition of a trivial bundle with arbitrary fibre type, just with $\mathbb{R}^n$ plugged in and it has to be fibre-wise linear. Sometimes you get lucky and it's possible to just write down an isomorphism. I'll talk about 3 alternate approaches you could take to showing $E$ is trivial:
1) Find $n$ linearly independent sections.
2) Show a classifying map is null-homotopic.
2b) Compute characteristic classes.
Characteristic classes is "2b" because ultimately they are trying to compute wether a classifying map is null-homotopic or not (and sometimes succeed).

The fibre-wise linear structure of a vector bundle lets us prove the following criterion:
Independent Sections: $E$ is trivial iff it admits $n$ sections which are linearly independent at every point.
Proof sketch: A trivialization defines $n$ independent sections via the images of $X\times\{e_i\}$. Independent sections $\{\sigma_1,\dots,\sigma_n\}$ define a basis for each fibre, inducing isomorphisms $E_x \cong \mathbb{R}^n$ which combine into a trivialization.
Corollary (Real line bundles): A one-dimensional real vector bundle is trivial iff it is orientable.
Proof: A section of a one-dimensional real vector bundle induces an orientation and vice-versa.
The problem of determining the maximum number of independent sections of a vector bundle is difficult, even when restricting to the problem of counting sections of a tangent bundle i.e. the so called Vector Field Problem. In some very nice cases the Euler Characteristic and the Signature can be used to detect a small number of independent vector fields (see e.g. Atiyah-Dupont or Bökstedt-Dupont-Svane), but detecting if the tangent bundle is completely trivial is much harder and the obstructions don't admit such a convenient interpretation. 
However, in the extra-special case that a smooth manifold has a smooth group structure then it is paralellizable:
Lie groups: The tangent bundle of a Lie group is trivial.
Proof sketch: Choose a frame in the tangent space at the identity, and then use the derivative of left-translation to transport it to any other tangent space.

Another way to express the triviality of a bundle is via classifying spaces: for any topological group $G$ there is a classifying space $BG$ and a universal principal $G$-bundle $EG\to BG$ such that principal $G$-bundles (and by extension bundles with structure group $G$) are classified by maps to $BG$. More specifically for any $X$ there is a natural bijection
$$[X, BG] \cong Prin_G(X)$$
where $[-,-]$ is the set of (pointed) homotopy classes of maps, $Prin_G(-)$ is the set of isomorphism classes of principal $G$-bundles; the bijection sends a map $c\colon X \to BG$ to the bundle $c^*EG$. 
In the case of vector bundles the structure group is $GL_n(\mathbb{R})$ or $GL_n(\mathbb{C})$, and as long as $X$ is paracompact we can even chose a metric and reduce it to $O(n)$ or $U(n)$. Then the classification theory gives us the following criterion:
Null-homotopic Classifying Map: Let $E$ be a vector bundle over $X$, classified by a map $c\colon X\to BO(n)$ (or $BU(n)$). Then $E$ is trivial iff $c$ is null-homotopic.
Proof sketch: This is because the pullback of a bundle along a constant map is trivial, and because of the homotopy invariance property of bundles: if $f,g\colon X \to Y$ are continuous and $E\to Y$ is any fibre bundle, then $f\sim g \implies f^*E\cong g^*E$.
Corollary (Contractible Base Space): Suppose $X$ is contractible. Then any vector bundle over $X$ is trivial.
It's usually not easy to tell when a map is null-homotopic, short of actually writing down a homotopy. 
You could trying showing that the induced map on homotopy groups is $0$ and then try to conclude that the map is null-homotopic, but this is not always the case, even for CW complexes: Chris Schommer-Pries points out in an answer to this MO question that a map of Eilenberg-Maclane spaces $K(\mathbb{Z}/2, i) \to K(\mathbb{Z}/2, i+1)$ inducing a Bockstein homomorphism is certainly $0$ on homotopy groups, but there are spaces with non-zero Bocksteins and so this map cannot be null-homotopic.
If $X$ is a CW complex you can try to use Obstruction Theory to try to compute the obstructions to a null-homotopy and show they all vanish. This approach usually doesn't work unless the obstruction groups all vanish, but here they typically will not (the coefficients are of the form $\pi_rBO(n)$ which is often non-zero).  

A coarser way of trying to detect if a bundle is trivial is via characteristic classes: given a classifying map $f\colon X \to BG$ and a cohomology theory $h$ we can study the map $f^*\colon h^*(BG) \to h^*(X)$, and in particular try to determine weather it is the $0$ map or not. If $f^* \neq 0$ then $f$ is not null-homotopic, but the converse isn't necessarily true. In fact there is a rather deep sub-question to your question, which is 

"When do characteristic classes determine the isomorphism type of a vector bundle?" 

In the classical case $G=O(n), SO(n),$ or $U(n)$, and $h=H^*(-;R)$ for some $R$. The classical characteristic classes are the polynomial generators of $H^*(BO(n);\mathbb{Z}/2)$ (the Stiefel-Whitney classes), $H^*(BO(n);\mathbb{Z})/torsion$ (Pontryagin classes), and $H^*(BU(n);\mathbb{Z})$ (Chern classes). These classes are all stable, in the sense that they are invariants of the bundle's stable isomorphism class, and therefore vanish for a bundle which is stably trivial. There is also an unstable Euler class in $H^{n}(BSO(n);\mathbb{Z})$, whose square is $0$ if $n$ is odd and $p_{\frac{n}{2}}$ if $n$ is even. (See Milnor-Stasheff for way more information.)
Characteristic Classes Sometimes Work: The simplest case of them sometimes working is $1$-dimensional bundles. Observe that $O(1)\cong \mathbb{Z}/2$ so  $BO(1)\simeq K(\mathbb{Z}/2,1)$, and $U(1)\cong SO(2) \cong S^1$ so $BU(1)\simeq BSO(2)\simeq K(\mathbb{Z},2)$ so they represent cohomology groups. Namely
$$ [X, BO(1)] \cong H^1(X;\mathbb{Z}/2) $$
$$ [X, BU(1)] \cong [X, BSO(2)] \cong H^2(X;\mathbb{Z}) $$
and in fact
One-dimensional Bundles: Let $E$ be a one dimensional vector bundle. If it is real then it is trivial iff $w_1(E)=0$; if it is complex then it is trivial iff $c_1(E) = 0$
Oriented plane bundles: Let $E$ be an oriented rank-two bundle. Then $E$ is trivial iff $e(E) = 0$.
There are several other low-dimensional cases that have been resolved where characteristic classes determine bundle type, but not as cleanly or generally, such as Cadek and others I'm forgetting right now.
There are also some technical conditions that you can require of two spaces $X$, $Y$ so that singular cohomology can detect maps $f\colon X\to Y$ that are not null-homotopic (see for example Sternstein), so if your $X$ and $BG$ do happen to satisfy these criteria then characteristic classes will determine bundle type. (There are other papers along these lines but I can't seem to find them right now, hopefully people can add some references in the comments.) For example if $X$ and $BU(n)$ satisfy the criteria then a bundle classified by $c$ will be trivial iff $H^*(c)=0$, iff all the Chern classes vanish.
Sometimes They Don't: There are many examples of bundles whose classical characteristic classes (Stiefel-Whitney, Pontryagin, Chern) vanish but which are NOT trivial, sometimes not even stably trivial. 
If you're in a situation where classical characteristic classes do not determine bundle type, there are a few things you could try:
If your bundle's structure group can be reduced further then sometimes there are new characteristic classes which provide new information. For example, the tangent bundle $TS^n$ is stably trivial and so all of its $O(n)$ characteristic classes vanish, but by giving it the standard orientation it gets a classification map to $BSO(n)$ and the Euler class gets pulled back to $2 \in H^{2k}(S^{2k};\mathbb{Z})\cong\mathbb{Z}$, so an $SO(n)$ characteristic class DOES detect the non-triviality of $TS^{2k}$. (I don't know if it's possible in general to always reduce to a structure group with a characteristic class that detects your bundle.)
In come contexts secondary characteristic classes can be defined when primary characteristic classes vanish. This is not something I'm very familiar with, but it's a thing.
You could do something more drastic like change your cohomology theory. As well as $H^*(-;R)$ people also care about $K$-theory and bordism characteristic classes, but the computations are typically much more difficult. But, with the increased richness there's also a higher chance it could detect the non-triviality of your classifying map. There is a caveat though: if a map $f\colon X \to Y$ is stably null-homotopic (in the sense of stable homotopy theory, not bundle stabilization) then $f^*\colon h^*(Y) \to h^*(X)$ will be $0$ for any cohomology theory and so cohomology would be unable to determine if $f$ is null-homotopic. On the other hand, if $f$ is not stably null-homotopic and $h_Y$ is the cohomology theory defined by $\Sigma^{\infty}Y$ then $f^*\colon h_Y^*(Y)\to h_Y^*(X)$ is also not $0$, but the cohomology groups $h_{BG}^*(X)$ can be very daunting.

I think that's about all I can come up with on this problem. I definitely left out of a lot stuff and there's definitely stuff I don't know so hopefully people can add things in the comments or with more answers.
