ubuntu下firefox中,直接在网页上安装程序的方法

我不知道别人是怎么做的,反正这个问题恶心死了。

ubuntu下安装软件,一般都是gogole到一个页面,然后上面告诉你把下面的代码输入到ternimal。

sudo apt-add-repository ppa:claudiocn/slm
sudo apt-get update
sudo apt-get install simple-lightdm-manager

这实在太麻烦了,需要改变。

 

第一步

把这三句话用&&拼起来作为参数去调用gnome-terminal  -e

但都是一闪而过,搞不定。后来换用xterm -e才行。

 

第二步

安装软件还有的麻烦就是apt-get update耗时太长,所以每次安装就直接把ppa清掉。

所以又加了句sudo apt-add-repository -r PPA:xxxxxxxx

 

第三步

搞完想想了下次要再安装怎么办?所以又加了一个保存成sh文件,可以备份作为记录,又能方便再次运行。

 

试用下来整体效果比较满意...记录下

1 this.ubuntuInstaller = function(){
2 var cmdstr = app.getSelectedTxt().replace(/sudo/g,"&& sudo").slice(3);
3 var appname = cmdstr.match(/install\s.*/)[0].slice(8).trim()
4 cmdstr += (" && sudo apt-add-repository -r " + cmdstr.match(/ppa:[^\s]*\s/))
5 var args=["-e",cmdstr]
6 app.executeCmd("/usr/bin/xterm",args)
7 var shelllHead = "#!/bin/bash\n"
8 app.saveAsTextFile2(shelllHead+cmdstr,appname+".sh")
9 }

 

上面是运行在我自己的firefox脚本系统里。如果从搜索引擎来到这里的朋友需要的把下面的代码复制到keyconfig这类的扩展里

View Code
 1 function ubuntuInstaller() {
2 var cmdstr = app.getSelectedTxt().replace(/sudo/g,"&& sudo").slice(3);
3 var appname = cmdstr.match(/install\s.*/)[0].slice(8).trim()
4 cmdstr += (" && sudo apt-add-repository -r " + cmdstr.match(/ppa:[^\s]*\s/))
5 var args=["-e",cmdstr]
6 app.executeCmd("/usr/bin/xterm",args)
7 var shelllHead = "#!/bin/bash\n"
8 app.saveAsTextFile2(shelllHead+cmdstr,appname+".sh")
9 }
10
11 // lib~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12 function ccc(contract, inter) {
13 return Cc[contract].createInstance(Ci[inter]);
14 }
15
16 function ccs(contract, inter) {
17 return Cc[contract].getService(Ci[inter]);
18 }
19
20 var app = {
21
22 mapping: {
23 "nsIProcess": "@mozilla.org/process/util;1",
24 "nsILocalFile": "@mozilla.org/file/local;1",
25 },
26
27 ccc: function(arg) {
28 return ccc(app.mapping[arg], arg)
29 },
30
31 executeCmd: function(cmd, args) {
32 var processor = app.ccc("nsIProcess");
33 if (typeof cmd == "string") {
34 cmd = app.getAFile(cmd);
35 }
36 processor.init(cmd)
37 processor.run(false, args, args.length)
38 },
39
40 getSelectedTxt: function() {
41 return content.getSelection().toString();
42 },
43
44 getAFile: function(path) {
45 var localFile = app.ccc("nsILocalFile");
46 localFile.initWithPath(path);
47 return localFile
48 },
49 saveAsTextFile2: function(txt, filename) {
50 txt = btoa(unescape(encodeURIComponent(txt)));
51 saveImageURL("data:text/plain;charset=UTF-8;base64," + txt, filename, 0, 0, 1);
52 },
53
54 }
55
56 ubuntuInstaller()





posted @ 2012-01-10 13:37  倚楼无语F5  阅读(325)  评论(0编辑  收藏  举报