Recently I've started using "Checkinstall" when installing from source outside of my package manager. It builds a "package" from a 3rd party tarball which can then be installed and managed (and uninstalled) through your package manager tools.

Check out this article - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

How to compile and install programs from source
Please see this:

http://plnkr.co/edit/soubKCayeLAqgDOel8AL?p=preview

&lt;!DOCTYPE html&gt;
&lt;html ng-app="testApp"&gt;
  &lt;head&gt;
    &lt;script data-require="angular.js@1.4.1" data-semver="1.4.1" src="https://code.angularjs.org/1.4.1/angular.js"&gt;&lt;/script&gt;
    &lt;script src="script.js"&gt;&lt;/script&gt;
  &lt;/head&gt;
  &lt;body ng-controller="testCtlr"&gt;
    &lt;pre&gt;{{contacts | json}}&lt;/pre&gt;
    &lt;div ng-repeat="contact in contacts"&gt;
      &lt;div ng-repeat="email in contact.emails"&gt;
        &lt;input type="email" name="email" ng-model="email.email"&gt;
        &lt;input type="text" name="text" ng-model="email.text"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;


var app = angular.module('testApp', []);
app.controller('testCtlr', ["$scope", function ($scope) {
    $scope.contacts = [
        {
            id:'',
            name:'',
            emails:[
                {
                    email: 'e1',
                    text: 'fghfgh'
                },
                {
                    email: 'e2',
                    text: 'hjkhjk'
                }
            ],
        }
    ];
}]);


you see if you change the text in the email text box it is removed from the obj unless it is a valid email...
