public IList<PackageItem> Search(string term)
        {
            if (string.IsNullOrEmpty (term) )
                throw new ArgumentNullException ("term");

            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = SEARCH_COMMAND;
            startInfo.Arguments = " search " + term;
            startInfo.UseShellExecute = false;
            startInfo.RedirectStandardOutput = true;

            Process search = new Process();
            search.StartInfo = startInfo;
            search.Start();

            string[] lines = search.StandardOutput.ReadToEnd ().Split ('\n');
            IList<PackageItem> result = new List<PackageItem> ();
            foreach (var line in lines)
            {
                var l = line.Trim ();
                if (!string.IsNullOrEmpty (l))
                {
                    int blank = l.IndexOf (" ");

                    var package = new PackageItem (
                                                   line.Substring(0, blank).Trim (),
                                                   line.Substring(blank + 2).Trim ()
                                                   );
                    result.Add (package);
                }
            }
            return result.OrderBy (r => r.Name).ToArray ();
        }
 public void Install(PackageItem package)
 {
     if (null == package)
         throw new ArgumentNullException ("package");
     // Many thanks to the author of the apturl plugin for this solution!!!
     Process.Start ("apturl apt:" + package.Name);
 }