cygwin 下载(cygwin下载安装教程_windows安装cygwin步骤)

发布时间:2025-12-10 19:37:15 浏览次数:5

cygwin下载安装教程_windows安装cygwin步骤-cygwin下载安装

cygwin下载安装教程_windows安装cygwin步骤Cygwin是一个用于在Windows上模拟Linux环境的软件,由于工作上的需要,我要使用它,至于为什么用它,我在这里不做过多的解释,本文的目的,旨在于解决Cygwin安装上的问题。原始的安装Cygwin的方法有两种(官方的方法):1.远程下载安装,需要访问网络。2.本地安装,前提是在本地要有安装文件,获取安装文件的方法有两种,一种就是通过远程下载下来,保存在本地,第二种

Cygwin是一个用于在Windows上模拟Linux环境的软件,由于工作上的需要,我要使用它,至于为什么用它,我在这里不做过多的解释,本文的目的,旨在于解决Cygwin安装上的问题。

原始的安装Cygwin的方法有两种(官方的方法):

1.远程下载安装,需要访问网络。

2.本地安装,前提是在本地要有安装文件,获取安装文件的方法有两种,一种就是通过远程下载下来,保存在本地,第二种就是订购其ISO光盘。

显然,对于国内大多数用户来说,订购ISO光盘,不是上上之选,那只有考虑从网上下了。

可是问题来了,虽然Cygwin的官网上提供了众多的镜像,但不知是国内的网络不行还是怎么回事,下载奇慢,好像回到了拨号时代,汗。。。。慢还不要紧,下得不掉链子的算你幸运。

那怎么办?正规方法是不行了,还好有些好心的网友,把自己下载下来的安装文件共享了出来。大家可以在网上搜索一下,“Cygwin本地安装”,“Cygwin安装包”或“CygwinISO”。哈哈,是不是有戏?生命在于奉献!,多亏了有这么多热心的网友:)

对于大多数人来说,上面的快速安装方法已经足够了。

可是本人偏爱DIY,所以本人研究了一下,Cygwin的官方说明,找到了另一种方法(我没这么好的网络,可不能像有些安心的网友那样自己通过安装程序提供的方法安静的等待)。在这里与大家分享。

1.下载官网最新安装程序:下载下来的文件最好保存到一个目录下,因为Cygwin安装文件中众多,后面方便操作,比如我下载到了X:/Cygwin。

2.运行,下一步,诶,看图吧:

没什么好说的,想看的就看,不想看的,就下一步。

选择”InstallfromInternate…”,你不是说不用官方的方法下载吗?别问,后面你就会知道,下一步。

随便指定个安装目录先,但不要再设成X:/Cygwin,以免搞乱。其它默认,下一步。

真烦,又要指定,这回我们指成我们的下载目录,X:/Cygwin,下一步。

指定代理,我这里不需要,下一步。

嗯,去更新镜像外列表,等它完成

选一个镜像吧,随便选(我这里选:http://mirrors.xmission.com),下下步。

等待。。。

好,到此打住了,我们去X:/Cygwin下找个文件,Setup.ini,这个文件一般会在X:/Cygwin的子目录下,其实就是以刚才选的镜像网为名的目录(http%3a%2f%2fmirrors.xmission.com%2fcygwin)。找到后,点取消。

3.梦里寻他千百渡,其实就为找到Setup.ini。其实还有方法找到Setup.ini你可以自己去想想,我这里就不说了。

4.记住目录名,”http://mirrors.xmission.com/cygwin”

5.下载我提供的项目“CygwinStorm”(Java),用eclipse打开,然后把刚才那个Setup.ini拷贝到项目根目录,覆盖原来的Setup.ini。

6.打开项目里的org.cygwin.CygwinStorm,改如下一处:

urlPath=“http://www.cygwin.cn/pub/”;

urlPath=“http://mirrors.xmission.com/cygwin”;

运行。

7.刷新项目,打开“result.log”,如果没什么错误的话,一切OK。打开“install.log”,看到了吧,这些是Cygwin安装文件在镜像服务器上的路径,快用下载工具批量下载吧。顺便提醒一句,如果你是用讯雷下载的话,讯雷的一次批量添加上限是201条,还有默认讯雷不监控.bz2为后缀的文件。好了我把文件下载到,“X:/Download/Cygwin”,记住。

8.全都下载完后,是不是就可以安装了,别急,还有最后一步,改

isExtract=true;

downloadPath=“X:/Downloads/cygwin/2.573.2.2/”;

isExtract=false;

downloadPath=“X:/Download/Cygwin”;

运行。

9.好了,打开项目目录下的release目录。是不是所有的文件都在这里面了,用Cygwin安装程序安装吧。出于安全我没有删除原下载目录下的文件,所以记得删除“X:/Download/Cygwin”。

至此,你已经有了一份Cygwin安装文件,把保存好,待以后安装时候用吧。

以下,是java源文件,只为方便,没有经过太多的设计。



/***/
/**
*
*/


package
org.cygwin;


import
java.io.
*
;


/***/
/**
*@authorAaron
*@sinceJDK1.6.0
*
*/


public

class
CygwinStorm

{

protectedstaticbooleanisExtract=true;
protectedstaticStringurlPath=“http://www.cygwin.cn/pub/“;//$NON-NLS-1$
protectedstaticStringdestPath=“./“;//$NON-NLS-1$
protectedstaticStringdownloadPath=“X:/Downloads/cygwin/2.573.2.2/“;//$NON-NLS-1$

/**//*
*@paramargs
*@throwsFileNotFoundException
*/
publicstaticvoidmain(String[]args)throwsIOException…{

Stringkey0=“[“;//$NON-NLS-1$
Stringkey1=“install:“;//$NON-NLS-1$
Stringkey2=“source:“;//$NON-NLS-1$

Fileinput=newFile(“./setup.ini“);//$NON-NLS-1$
BufferedReaderreader=newBufferedReader(newFileReader(input));
BufferedWriterwriter1=null;
BufferedWriterwriter2=null;
BufferedWriterwriter3=null;
if(isExtract)…{

Fileinstall=newFile(“./install.log“);//$NON-NLS-1$
Filesource=newFile(“./source.log“);//$NON-NLS-1$
writer1=newBufferedWriter(newFileWriter(install));
writer2=newBufferedWriter(newFileWriter(source));
}

Fileresult=newFile(“./result.log“);//$NON-NLS-1$
writer3=newBufferedWriter(newFileWriter(result));

Stringline=null;
intcount=0;
while((line=reader.readLine())!=null)…{

if(line.startsWith(key0)&&!line.startsWith(“[curr]“))…{//$NON-NLS-1$
count=1;
}
switch(count)…{

case0:…{

if(line.startsWith(key1))…{

line=extract(line,writer3);
makeDir(line,writer3);
storeURL(line,writer1);
}elseif(line.startsWith(key2))…{

line=extract(line,writer3);
makeDir(line,writer3);
storeURL(line,writer2);
}
break;
}
case1:
case2:
case3:
count++;
break;
case4:
count=0;
break;
}
}
reader.close();
if(isExtract)…{

writer1.close();
writer2.close();
}
writer3.write(“Jobcompleted!“);//$NON-NLS-1$
writer3.close();
}

protectedstaticStringextract(Stringline,BufferedWriterbw)throwsIOException…{

Stringkey3=“.bz2“;//$NON-NLS-1$
Stringkey4=“release“;//$NON-NLS-1$
Stringkey5=““;//$NON-NLS-1$
intbeginIndex=line.indexOf(key4);
intendIndex=line.indexOf(key5,beginIndex);
if(line.contains(key3))
returnline.substring(beginIndex,endIndex);
bw.newLine();
bw.newLine();
bw.newLine();
bw.write(“[extractexception]:“+line);//$NON-NLS-1$
bw.newLine();
bw.newLine();
bw.newLine();
returnline;
}

protectedstaticvoidstoreURL(Stringline,BufferedWriterbw)throwsIOException…{

if(bw!=null)…{

Stringstr=urlPath+line;
bw.write(str);
bw.newLine();
}
}

protectedstaticvoidmakeDir(Stringline,BufferedWriterbw)throwsIOException…{

Stringstr=destPath+line;
Filefile=newFile(str);
Filedir=file.getParentFile();
if(!dir.exists())…{

dir.mkdirs();
//bw.write(“[makedir]:”+dir);//$NON-NLS-1$
//bw.newLine();
}
if(!file.exists())
moveFile(file,bw);
}

protectedstaticvoidmoveFile(Filefile,BufferedWriterbw)throwsIOException…{

StringoldPath=downloadPath+file.getName();
StringnewPath=file.getAbsolutePath();
copyFile(oldPath,newPath);
if(file.exists())…{

bw.write(“[movefile]:“+oldPath+“[to]:“+newPath);//$NON-NLS-1$//$NON-NLS-2$
bw.newLine();
}
}

protectedstaticvoidcopyFile(StringoldPath,StringnewPath)…{

try…{

intbytesum=0;
intbyteread=0;
Fileoldfile=newFile(oldPath);
if(oldfile.exists())…{

InputStreaminStream=newFileInputStream(oldPath);
FileOutputStreamfs=newFileOutputStream(newPath);
byte[]buffer=newbyte[1444];
while((byteread=inStream.read(buffer))!=–1)…{

bytesum+=byteread;
fs.write(buffer,0,byteread);
}
inStream.close();
}
}catch(Exceptione)…{

System.out.println(“Copyfileoccurerror.“+oldPath);//$NON-NLS-1$
e.printStackTrace();
}
}
}

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477