1.dos command, install pkg

1.dos command, install pkg

cygwin安装后,若是没有接纳设置具有包(那会占用5G空中,很多包不要求),再要求安装新的包,可以运营setup-x86_64
.exe(作者把它放置在C:\澳门金沙国际 ,cygwin64目录下),添加包(如wget命令,cygwin默许没有安装);也得以在cygwin的command
line里用setup-x86_64 .exe
加参数安装;这二种办法都尤其亟待考虑细节,第2种格局是给cygwin安装apt-cgy,apt-cyg用法类似于apt-get命令。

install python3, Postgresql, Redis, psycopg2, gunicorn in Cygwin
(under Windows7)
Web开发,最好是Linux开发环境(如Ubuntu)。因为不少工具都是Linux专用版本的,比如:PostgreSQL,
Redis, gunicorn。
多少场所(如高校、公司),唯有Windows环境,那假设采用那几个Linux工具呢?
— 用Cygwin吧!

以那篇须要REDIS的为例:https://beenje.github.io/blog/posts/running-background-tasks-with-flask-and-rq/

$ setup-x86_64.exe -q -P curl
$ setup-x86_64.exe -q -P lynx
$ setup-x86_64.exe -q -P curl
$ setup-x86_64.exe -q -P lynx

下文如此啰嗦,而不交付鲜明措施,是为了浮现自我安装apt-cyg的长河,时期百度到了部分比照的steps,但它们由于goole
code的关门或自身的cygwin与那些课程不一样(如暂未设置svn),这个均失效了。

澳门金沙国际 1

2. cygwin64 command

2. cygwin64 command

apt-cyg的类型主页:
 。上面的设置命令已经失效了,由于google code关闭了。

app.jpg

$ lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
$ install apt-cyg /b

$ apt-cyg install curl
$ lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
$ install apt-cyg /b

$ apt-cyg install curl

澳门金沙国际 2

在Cygwin里,运转时界面:

通过setup-x86_64.exe设置软件包安装lynx,然后通过lynx安装apt-cyg。apt-cyg类似于ubuntu里面的apt-get命令。

通过setup-x86_64.exe安装软件包安装lynx,然后通过lynx安装apt-cyg。apt-cyg类似于ubuntu里面的apt-get命令。

此时期待有贰个命令
,有鲜明的源,然而本身的cygwin默许没有设置svn、lynx,上边的不二法门都失效了:

  • Redis RQ运行中
  1. 另一种安装apt-cyg的办法

    wget
    wget
    chmod +x apt-cyg
    mv apt-cyg /usr/local/bin/
    apt-cyg –help
    【澳门金沙国际】安装包管理工具,在win10下的装置。 cygcheck –help
    # 修改软件源
    apt-cyg –mirror
    #上边是可选的源
    # ftp://mirror.mcs.anl.gov/pub/cygwin
    #
    # ftp://ftp.ges.redhat.com/private/releng/cygwin-1.8

     

  1. 另一种安装apt-cyg的措施

    wget
    wget
    chmod +x apt-cyg
    mv apt-cyg /usr/local/bin/
    apt-cyg –help
    cygcheck –help
    # 修改软件源
    apt-cyg –mirror
    #上面是可选的源
    # ftp://mirror.mcs.anl.gov/pub/cygwin
    #
    # ftp://ftp.ges.redhat.com/private/releng/cygwin-1.8

     

  

![](https://upload-images.jianshu.io/upload_images/3843091-734f2f3330a81aa2.jpg)

rq\_worker.jpg

  • python3运行中
  1. lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
     (源是有效的,但那时髦无安装lynx命令)
  2. install apt-cyg /bin  
![](https://upload-images.jianshu.io/upload_images/3843091-ad42af993ac6729f.jpg)

runserver.jpg

打开
展现的是多个bash脚本文件,从1中感觉到lynx命令是把那些本子文件download下来,在运行它来设置apt-cyg,此时小编还从未察觉要apt-cyg那一个程序自己就是个shell
脚本

  • Redis-Server运行中

从apt-cyg的体系主页提示去github获取,小编觉着是源代码,须要自个儿编译安装。打开项目里的名为apt-cyg文件,发现里面也是个本子,小编才意识到可能把apt-cyg.zip里的文件拷到C:\cygwin64\bin(cygwin命令行里的命令执行文书就在该目录下),用chmod改apt-cyg的履行权限,就可以直接实施该命令,同ls命令一样,不要求这么用:./apt-cyg 运转apt-cyg
-version突显安装成功,但用apt-cyg install nano 却呈现错误 :wget is
not installed using lynx as fallback,
有道是怎么样设置wget呢?

![](https://upload-images.jianshu.io/upload_images/3843091-ff84b25b46a34980.jpg)

redis-server.jpg

笔者想开了采用setup-x86_64 .exe
,运转后选了镜像地址为搜狐的cygwin镜像,只选了包wget,安装达成。这一进程并不曾造成g++失效(g++在cygwin暗许安装下是不安装的),那表明用setup-x86_64
.exe可以另行的丰裕软件包,不损伤上两回的已经安装的packages。

  • PostgreSQL运行中

运用apt-cyg却指示wget未安装,那表达apt-cyg的台本命令里选用了wget命令。接下来可以不荒谬使用apt-cyg安装lynx,svn,nano了。

![](https://upload-images.jianshu.io/upload_images/3843091-80c207268264de52.jpg)

postgresql.jpg

ps:网易的cygwin镜像源

cygwin安装步骤:

  1. 先从官方安装cygwin64
    https://www.cygwin.com/setup-x86\_64.exe
    慎选包的时候,勾选:web->lynx,python3,dev->make,dev->mingw64-x86_64-gcc-core

  2. 打开Cygwin64 terminal
    Option -> DejaVu Sans Mono 字体 常用的编程字体
    修改 ~/.bashrc -> 去除alias ls/df 之类的注明
    printenv HOME
    export PATH=/usr/sbin:/home/<user-id>/bin:`printenv PATH`
    永久性的加盟你的PATH变量,修改 ~/.bash_profile 文件
    export PATH=/usr/sbin:/home/<user-id>/bin:$PATH

  3. 安装apt-cyg,类似于Ubuntu apt-get
    lynx -source
    https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg >
    apt-cyg
    install apt-cyg /bin

  4. 尽情用apt-cyg下载安装吧:
    apt-cyg install wget
    apt-cyg update
    apt-cyg install gcc-core tmux sl libpq-devel python3-devel
    libxml2-devel python3-pip

PS:使用源码安装wget 

PostgreSql


apt-cyg install postgresql

初始化PostgreSql:

export CYGWIN=server; /usr/sbin/cygserver -E&
/usr/sbin/initdb.exe -D /var/psql/data
# 属于此数据库系统的文件宿主为用户 "<user-id>".
# 数据库簇将使用本地化语言 "zh_CN.UTF-8"进行初始化.
# 默认的数据库编码已经相应的设置为 "UTF8".
# initdb: 无法为本地化语言环境"zh_CN.UTF-8"找到合适的文本搜索配置
# 缺省的文本搜索配置将会被设置到"simple"

修复已存在目录 /var/psql/data 的权限 ... 成功
正在创建子目录 ... 成功
选择默认最大联接数 (max_connections) ... 30
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
选择动态共享内存实现 ......posix
创建配置文件 ... 成功
正在运行自举脚本 ...成功
正在执行自举后初始化 ...成功
同步数据到磁盘...成功

成功。您现在可以用下面的命令开启数据库服务器:
    /usr/sbin/pg_ctl -D /var/psql/data -l logfile start

# https://gist.github.com/buruzaemon/5351379 => 内容保存为~/bin/pg文件
mkdir ~/bin
lynx -source https://gist.githubusercontent.com/buruzaemon/5351379/raw/fde74631d35afea4e7b8ddc6678fd5637466b2f7/gistfile1.txt > ~/bin/pg
chmod 777 ~/bin/pg
mkdir -p /var/psql/log
touch /var/psql/log/postgresql.log
$~/bin/pg start/stop/status
# starting postgresql...
# 正在启动服务器进程
$ pg status
pg_ctl: 正在运行服务器进程(PID: 5328)
/usr/sbin/postgres "-D" "/var/psql/data"

开创数据库
psql postgres

create user <user-id> with password 'password';
create database exampledb owner <user>;
grant all privileges on database exampledb to <user>;

 

Redis


安装

$ wget http://download.redis.io/releases/redis-stable.tar.gz
$ tar xzf redis-stable.tar.gz
$ cd redis-stable
$ make (耐心等待2分钟,请确保apt-cyg已经下载依赖包)
$ cp src/*.exe ~/bin
$ redis-server &
$ redis-cli -h localhost
localhost:6379> ping
PONG
localhost:6379>

 

use Cyginw internal Python, NOT Windows Python!!

不然的话,很多unix的听从不可以用,比如:os.fork()
ln -s /usr/bin/python3 /usr/bin/python
python -v # 应该显得3.6.3或上述
还需求设置pip3: apt-cyg install python3-pip
ln -s /usr/bin/pip3 /usr/bin/pip
$ pip -V
pip 9.0.1 from /usr/lib/python3.6/site-packages (python 3.6)

autoenv

懒人神器,进入某目录时,自动执行命令,比如source venv/bin/activate

$ pip3 install autoenv
$ which activate.sh
/usr/bin/activate.sh
echo "source `which activate.sh`" >> ~/.bashrc
source ~/.bashrc
touch git/flask-rq-example/.env
vi git/flask-rq-example/.env
# 在 .env文件内,加入你想自动执行的命令,如:source venv/bin/activate
# export XXX
# 注意:需要用vi 输入这些命令,其它编辑软件好像格式不兼容
$ cd git/flask-rq-example/
-bash: shasum: 未找到命令
autoenv:
autoenv: WARNING:
autoenv: This is the first time you are about to source /home/yuanyuan/git/flask-rq-example/.env:
autoenv:
autoenv:     --- (begin contents) ---------------------------------------
autoenv:     source venv/bin/activate
autoenv:
autoenv:     --- (end contents) -----------------------------------------
autoenv:
autoenv: Are you sure you want to allow this? (y/N) y
这里,就会自动变成python虚拟环境了,哈哈:  
(venv)
yuanyuan@yuanyuan-PC ~/git/flask-rq-example

好了,环境已经Ready!开工吧!
近来截至,cygwin目录855MB左右。

测试

cd ~/git
git clone https://github.com/beenje/flask-rq-example.git
cd flask-rq-example
# 虚拟环境目录,取名venv,换其它的也行,比如myenv
python3 -m venv venv
source venv/bin/activate
# 注意:pip是python3的版本
touch requirements.txt
# 输入以下python模块:
Flask==0.12.2
Flask-Bootstrap==3.3.7.1
Flask-Script==2.0.6
Flask-WTF==0.14.2
redis==2.10.6
requests==2.18.4
rq==0.9.2

# 安装python模块:
pip install -r requirements.txt

# 修改你的redis服务地址:
# ~/git/flask-rq-example/app/settings.py
REDIS_URL = 'redis://localhost:6379/0'

# 运行RQ worker:
$ python manage.py runworker
10:57:28 RQ worker 'rq:worker:yuanyuan-PC.59068' started, version 0.9.2
10:57:28 Cleaning registries for queue: default
10:57:28
10:57:28 *** Listening on default...

# 另外开一个Terminal,运行web server:
$ python manage.py runserver
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!

开拓浏览器,输入:http://localhost:5000,Bingo!

补遗:

  • lxml安装不了?Beautiful Soup必要这些的。

python3安装时,其实已经装好lxml==3.7.3了,不需要再重新安装。
直接复制到venv里就行:
cp -r /usr/lib/python3.6/site-packages/lxml*  ~/git/ourbits/myenv/lib/python3.6/site-packages/

# 应该是最新的lxml 4.1.1跟Cygwin环境不兼容,直接pip安装lxml==3.7.3就可以了。

相关文章