Ha? Have a Talk. Menu

Permalink:

中标麒麟操作系统V6安装NGINX

因为禾斗石开需要,安装了中标麒麟高级服务器操作系统(虚拟化版)V6,然后该系统上部署了几个JAVA WEB项目,现在需要安装nginx,但是yum无法使用,出现以下异常信息:

Loaded plugins: refresh-packagekit, security
http://****: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

修改yum源改为163

cd  /etc/yum.repos.d/
# 备份原有的源
mv ns6-gen-x86_64.repo ns6-gen-x86_64.repo.old
# 下载网易163的源
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS-Base.repo  
yum clean all
yum makecache

但在 yum makecache报错:

http://mirrors.163.com/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
尝试其他镜像。错误:Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

这是因为无法访问http://mirrors.163.com/centos/6/os/x86_64/repodata/repomd.xml,repomd.xml 在http://mirrors.163.com/centos/6-6.5下已经不存在,需要更改CentOS-Base.repo此文件中的$releasever参数,对于CentOS来说,$releasever来源于 rpm -qi centos-release 的version数值。

# 查询中标麒麟系统的版本
cat /proc/version
Linux version 2.6.32-358.el6.x86_64 (mockbuild@ns60x64.cs2c.com.cn) (gcc version 4.4.7 20120313 (NeoKylin 4.4.7-3) (GCC) ) #1 SMP Fri Jul 12 10:25:19 CST 2013

对于中标麒麟高级服务器操作系统(虚拟化版)V6,经过测试,$releasever直接取 ** 6 ** 即可。

vim  CentOS-Base.repo
#vim命令模式下将所有的$releasever替换为6
:1,s/$releasever/6/g
# 再执行后续的指令
yum clean all
yum makecache

添加nginx的源

根据NGINX官方文档的安装方法:

To add NGINX yum repository, create a file named and paste one of the configurations below:

cd /etc/yum.repos.d/
# 新建nginx.repo文件
vim nginx.repo
# 填写以下内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1

注意:$releasever$basearch需要根据系统来确定,中标麒麟高级服务器操作系统(虚拟化版)V6最后确定为http://nginx.org/packages/rhel/6/x86_64/

安装pcre

尝试安装yum install nginx, 安装nginx时报错,因为nginx的rewrite需要pcre库。

./configure: error: the HTTP rewrite module requires the PCRE library.

安装pcre-devel解决问题

yum -y install pcre-devel

重新安装nginx依然出现错误提示:

./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.   You can either disable the module by using
–without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
–with-http_ssl_module –with-openssl=<path> options.

安装openssl相关软件:

yum -y install openssl openssl-devel

安装pcre:

# 下载相应版本的pcre
pcre-8.39.tar.bz2
# 解包解压缩
tar xjpf pcre-8.39.tar.bz2
# 切换到pcre的目录
cd pcre-7.8
# 配置
./configure --prefix=/usr/local/pcre-8.39 --libdir=/usr/local/lib/pcre --includedir=/usr/local/include/pcre

configure有许多参数可配,具体参见./configure –help及手册

# 编译及安装
make
make install

安装NGINX

最后尝试安装yum install nginx,完成。

参考

解决centos 6.6 更换yum 163源报错
CentOS镜像使用帮助
Install
PCRE-nginx pcre library not found

  • 大菜头

    test
    test

  • Thanks for leaving a comment, please keep it clean. HTML allowed is strong, code and a href.

Permalink:

狮子、毒蛇和鳄鱼 前篇

  表哥突然发来一张图,问我怎么解。
gaozhishang
  先说我的结论:这个图片很有可能体现的是刚果人民现在所处的水深火热的困境,对于他们来说,现在无力跟“狮子”、“蛇”和“鳄鱼”搏斗,他们只能在维持现状(Hang in there.)的基础上,等待时机脱困。
  我作为一个懒人,一看到图片上的水印,就想这一定是一个无聊的营销号发的内容,于是就拿着图片去谷歌图片以图搜图了,然后就找到了国外关于这个图片的讨论,《Give the boy a Escape Plan》 ,但是也没有讨论出什么具体解法。然后我用关键词“lion snake crocodile ”在谷歌图片中搜索,第一张照片居然是这样的。
lion-snake-crocodile
  虽然画风不一样,但是显然就同一个故事,上图的出处是这篇文章: Summer Reading | CongoStory ,如果不能翻墙可以点击下面这个链接,可能网页样式加载不出来,但是不影响阅读 Bing缓存页面
  文章大概讲的是:每年世界各地的图书馆都会举行阅读夏令营(summer reading program),来激发孩子们的想象力,激起孩子们阅读的兴趣,作者收到邀请,给刚果的孩子们举办夏令营,虽然刚果的孩子们没有什么图书馆可以阅读,但是他们还是会从老一辈哪里听到很多故事。

注:这个 Congo Stroy 是一个主要在医疗和教育方面对刚果人民进行帮助的组织,部门由刚果宣传纪念项目基金会(Congolese Advocacy Memorial Project Fund)支持,组织旨在建立一个为能促进刚果民主共和国的和平、稳定、可持续发展的人提供有用的信息和资源的在线图书馆。不太理解为什么这种组织的网站会被墙。

夏令营上她开始讲故事:
Shida先生(Bwana Shida)去砍些木头来生火,当他快要砍完的时候,突然身后传来了咆哮声(roar),他立马爬上了树,在非洲什么动物会咆哮啊?
孩子们:狮子。
她:Shida看到了一只狮子就在树枝底下,他以为他在树上就安全了,然后他转过头发现树上有只危险的动物,树上会有什么危险的动物啊?
孩子们:毒蛇!
她:他想他可以跳到河里,这样狮子和毒蛇就不会跟着来了,但是当他向下望的时候,却看见了一排锋利的牙齿,水里会有什么动物呀?
孩子们:鳄鱼! Continue reading…

  • Thanks for leaving a comment, please keep it clean. HTML allowed is strong, code and a href.

Permalink:

JAVA屏幕截图与水印添加程序-HEHEHEScreenshot

一切都源于这个表情,后面这个表情就以不可预料的情况演化了。那时想着做一个能加苍蝇的截图工具,程序是用JAVA实现的,项目托管在GitHub https://github.com/Bigcaitou/HEHEHEScreenshot

biaoqing

talk is cheap, show you the code.

截取屏幕

    public RectD() {
            snapshot();
            setVisible(true);
            // setSize(d);//最大化窗口
             //用 JDialog 做一个无控制条的窗口,大小设置成满屏,把截取的这个满屏的图片贴到这个 JDiaglog 里
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.addMouseListener(new MouseAdapter() {// 得到鼠标箭头初始坐标
                @Override
                public void mousePressed(MouseEvent e) {
                    orgx = e.getX();
                    orgy = e.getY();
                }
            });
            //鼠标圈定区域, 对圈定的区域截屏
            this.addMouseMotionListener(new MouseMotionAdapter() {
                @Override
                public void mouseDragged(MouseEvent e) {
                    endx = e.getX();
                    endy = e.getY();
                    g = getGraphics();
                    g.drawImage(tempImage, 0, 0, RectD.this);
                    int x = Math.min(orgx, endx);
                    int y = Math.min(orgy, endy);
                    int width = Math.abs(endx - orgx) + 1;
                    int height = Math.abs(endy - orgy) + 1;
                    // 加上1,防止width或height为0
                    g.setColor(Color.BLUE);
                    g.drawRect(x - 1, y - 1, width + 1, height + 1);
                    // 减1,加1都是为了防止图片将矩形框覆盖掉
                    saveImage = image.getSubimage(x, y, width, height);
                    g.drawImage(saveImage, x, y, RectD.this);
                }
            });
            //双击鼠标截图
            this.addMouseListener(new MouseAdapter() {
                @Override
                public void mousePressed(MouseEvent e) {
                    int clickTimes = e.getClickCount();
                    if (clickTimes == 2) {
                        saveToFile();
                    }
                }
            });
        }
        public void snapshot() {
            try {
                Robot robot = new Robot();
                Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
                image = robot.createScreenCapture(new Rectangle(0, 0, d.width, d.height));
            } catch (AWTException e) {
                e.printStackTrace();
            }
        }

利用Robot的createScreenCapture可以截图,但是有个问题是遇到多个屏幕,这个方法只能在默认屏幕截图。
Continue reading…

  • Thanks for leaving a comment, please keep it clean. HTML allowed is strong, code and a href.