首页 > 代码库 > UBUntu 软件 源配置方法
UBUntu 软件 源配置方法
最近公司产品需要增加一个功能,就是版本自动更新,使用apt-get 实现。apt-get 软件源配置的方法,参见本人资源里的共享。下面是代码中作为升级的一部分。
FILE *fp; char buffer[256]; char source_ok[] = "Reading package lists..."; if(0 > system("mv -f /etc/apt/sources.list /etc/apt/sources.list.upgrade")) printf("cldUp backup old source list error!\n"); fp=fopen("/etc/apt/sources.list","w+"); if(0 == fp) goto update_done; fprintf(fp,"deb http://%s/apt %s %s", source_addr, source_dir, source_ver); printf("\ndeb http://%s/apt %s %s\n", source_addr, source_dir, source_ver); fclose(fp); fp=popen("apt-get update 2>&1","r"); while(!feof(fp)){ if(0 == fgets(buffer,sizeof(buffer),fp)) break; printf("%s",buffer); fflush(stdout); if(strstr(buffer,"Failed")){ trace_log(buffer); printf("scan failed and exit\n"); goto update_done; } if(strstr(buffer,source_ok)){ trace_log(buffer); printf("scan sourceok and exit\n"); break; } } pclose(fp); fp=popen("apt-get -y --force-yes install ssh 2>&1","r"); while(!feof(fp)){ if(0 == fgets(buffer,sizeof(buffer),fp)) break; printf("%s",buffer); if(strstr(buffer,"1 upgraded")){ //save the upgrade info b_upgrade_success = true; trace_log(buffer); } } pclose(fp); if(b_upgrade_success) { b_upgrade_success = 0; } update_done: if(0 > system("mv -f /etc/apt/sources.list.upgrade /etc/apt/sources.list")) printf("restore source list error!\n");
初步测试没有什么问题。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。