安装软件包的三种方式

标签(空格分隔): linux


前提:搭建虚拟机配置,需要注意:需要安装哪些软件?如何安装?放在linux哪里个目录下?本文主要讲需要可以使用哪些命令来安装软件

1、copy 解压

1、从官方网站直接下载软件包
2、利用winSCP上传
3、解压相关文件,编译安装

2、wget:命令行下载工具,多数linux发行版本都默认包含此工具,若没有可以自行编译安装

使用方式:

 wget  http://downloads.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz

命令参数使用:http://man.linuxde.net/wget

2.1 支持断点下传功能


2.2 同时支持FTP和HTTP下载方式        

wget [url]

这个命令可以将url的首页下载下来。
使用-x会强制建立服务器上一模一样的目录,如果使用-nd参数,那么服务器上下载的所有内容都会加到本地当前目录首页下载下来。会按照递归的方法,下载服务器上所有的目录和文件,实质就是下载整个网站。这个命令一定要小心使用,因为在下载的时候,被下载网站指向的所有地址。
同样会被下载,因此,如果这个网站引用了其他网站,那么被引用的网站也会被下载下来!基于这个原因,这个参数不常用。可以用-l

number参数来指定下载的层次。例如只下载两层,那么使用-l 2。
要是您想制作镜像站点,那么可以使用-m参数,

例如:wget  -m [url]
这时wget会自动判断合适的参数来制作镜像站点。

2.3 批量下载
如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成文件download.txt,

命令:wget -i download.txt

使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。
-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。

选择性的下载可以指定让wget只下载一类文件,或者不下载什么文件。例如:

wget -m –reject=gif -accept=LIST http://target.web.site/subdirectory


安装软件的步骤:

# tar zxvf 安装包
# cd 解压后的安装包
# ./configure编译
# make
# make install

3、yum:

介绍:

Shell前端软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

 **参数使用:http://man.linuxde.net/yum**

3.1 yum的一切配置信息都储存在一个叫yum.conf的配置文件中,通常位于/etc目 录下,这是整个yum系统的重中之重
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum
keepcache=0 //缓存是否保存,1保存,0不保存。
debuglevel=2    //除错级别,0──10,默认是2
logfile=/var/log/yum.log //yum的日志文件
exactarch=1 //有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用686的包来升级
obsoletes=1 //  #update的参数,相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1 //有1和0两个选择,分别代表是否是否进行gpg校验,默认是检查的。
plugins=1 //是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件
installonly_limit=5//允许保留多少个内核包。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
3.2 用yum查询想安装的软件
yum search//使用YUM查找软件包
yum list//列出所有可安装的软件包
yum list updates//列出所有可更新的软件包
yum list installed//列出所有已安装的软件包
yum list extras//列出所有已安装但不在 Yum Repository 內的软件包
yum list// 列出所指定的软件包
yum info  //使用YUM获取软件包信息
yum info //列出所有软件包的信息
yum info updates//列出所有可更新的软件包信息
yum info installed//列出所有已安裝的软件包信息
yum info extras//列出所有已安裝但不在 Yum Repository 內的软件包信息
yum provides//列出软件包提供哪些文件
3.3.清除YUM缓存
    yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all 清除所有
yum clean packages//清除缓存目录(/var/cache/yum)下的软件包 
yum clean headers//清除缓存目录(/var/cache/yum)下的 headers 
yum clean oldheaders//清除缓存目录(/var/cache/yum)下旧的 headers 
yum clean, yum clean all (= yum clean packages; yum clean oldheaders)//清除缓存目录(/var/cache/yum)下的软件包及旧的headers

linux screen命令的简单使用


编	写:袁	亮
时	间:2015-07-27
说	明:linux screen命令的简单使用

一、解决什么问题?
	1、在服务器执行一些比较耗时的事情:下载、系统备份、传输文件、安装软件或者执行一个脚本等
	2、当因为某些原因与服务器断开连接,所有的执行都会白费(网突然断了,putty不小心关了,电脑卡死等等原因)
	3、或者我们在同一台服务器上需要做多件事,经常需要切换目录等等
	当出现以上情况时,都可以考虑使用screen来解决
	
二、大致原理
	1、正常我们使用putty连接到服务器,相当于一次会话
	2、当连接终止的时候,该会话相关的进程都会被终止,关闭,因此就会出现任务还没执行完,就挂掉了
	3、screen相当于在服务器上使用后台又开了一个会话,因此当前这个会话被关闭,不影响新开的那个会话中的任务执行
	4、当我们putty断掉之后,可以重新连接上去,查看之前的screen会话中的执行情况
	
三、简单使用
	1、添加一个screen窗口
		screen -S 自己定义窗口名,方便查看
	2、查看现在有几个screen
		screen -ls
	3、中断跳出某个screen窗口
		ctrl+a+d
	4、选择恢复某个screen窗口
		screen -r 创建时候定义的名字,或者通过screen -ls中看到的数字编号
	5、彻底关闭某个screen窗口
		5.1 在那个窗口中直接exit
		5.2 在那个窗口下,ctrl+d
		5.3 在那个窗口下,ctrl+a+k
		
四、原理(有兴趣的可以了解下,没兴趣的知道上面的即可)
	1、进程组、会话期
		进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID
		会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID
		会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling process)。当前与终端交互的进程称为前台进程组。其余进程组称为后台进程组
	2、挂断信号(SIGHUP)默认的动作是终止程序
		当终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)
		如果会话期首进程终止,则该信号发送到该会话期前台进程组
		一个进程退出导致一个孤儿进程组中产生时,如果任意一个孤儿进程组进程处于STOP状态,
		发送SIGHUP和SIGCONT信号到该进程组中所有进程
	3、因此当网络断开或终端窗口关闭后,控制进程收到SIGHUP信号退出,会导致该会话期内其他进程退出
	4、nohup使用
		nohup [要执行的shell命令] &
		很多时候,我是没加nohup,直接最后加&也可
	5、screen是直接新建会话,然后避免掉了上面的这个问题,nohup是忽略挂断信号来达到目的
	
附录:
	http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
	http://www.ibm.com/developerworks/cn/linux/l-cn-screen/

centos下安装字体文件

编 写:袁 亮
时 间:2015-07-23
说 明:centos下安装字体文件

一、安装步骤
1、从本地找到需要的字体文件,通过winscp传到服务器上
本地目录:C:\Windows\Fonts
服务器目录:/usr/share/fonts/chinese/TrueType/
2、在字体目录下分别执行
cd /usr/share/fonts/chinese/TrueType/
mkfontscale
mkfontdir
fc-cache -fv
3、使改动生效
3.1 source /etc/profile
3.2 reboot重启
3.3 两个版本都有看到说,都试过,不确定哪个起的效果,懒得测了,后面有兴趣的在自己虚拟机上测试看看
4、export LC_CTYPE=en_US.UTF-8 英文优先
否则phantomJs那边截图还是乱码

二、一些问题
1、如果没有mkfontscale命令
yum install mkfontscale
2、没有fc-cache命令
yum install fontconfig

三、其他知识
1、locale
查看系统语言设置
2、fc-list
查看系统的字体库
3、fc-list :lang=zh
查看中文字体库
4、更改字体使用的先后顺序?只是临时更改
#export LC_CTYPE=en_US.UTF-8 英文优先
#export LC_CTYPE=zh_CN.UTF-8 中文优先
改完之后,可以看下fc-list :lang=zh的结果,会有变化,在使用phantomJs的时候,会有影响,据说是QT那边导致,具体不清楚

参考文档:
http://www.centoscn.com/image-text/config/2014/0913/3737.html

centos,开机时间同步问题

编	写:袁	亮
时	间:2015-07-21
说	明:centos,开机时间同步问题

一、定时同步标准时间
	1、方法1:rdate
		1.1 centos默认就有安装该命令/usr/bin/rdate
		1.2 加入到定时脚本,每小时同步一次时间
			10 * * * * /usr/bin/rdate -s rdate.darkorb.net
	
	2、方法2:ntpdate
		2.1 安装ntpdate从时间服务器更新时间,如果已有/usr/sbin/ntpdate,跳过本步骤
			yum install ntp
		2.2 测试是否能获取最新时间,看输出时间是否正确
			/usr/sbin/ntpdate time.nist.gov
		2.3 加入crontab,定时同步
			10 * * * * /usr/sbin/ntpdate time.nist.gov
二、虚拟机,设置不与宿主机进行时间同步
	1、如果是xen虚拟机安装的话,需要注意,默认是会跟宿主机进行时间同步的
	2、修改文件/proc/sys/xen/independent_wallclock
		内容改为1,设置虚拟机时间独立,不与宿主机同步
	3、为防止每次重启的时候,被重置,可以在开机启动脚本中添加设置,并同步一次时间
	

curl番外:linux命令行下使用

编	写:袁	亮
时	间:2015-07-17
说	明:curl番外:linux命令行下使用

一、常用命令
	1、直接抓取网页
		curl http://www.ci123.com

	2、抓取数据,并保存成文件
		curl -O http://192.168.0.62/yl/curl/demo.php //需要后面有具体文件名,否则抓取不到
		curl -o index.html http://www.ci123.com
		
	3、仅显示http响应头
		curl -I http://www.ci123.com
		
	4、发送post数据
		4.1 普通post
			curl -d "username=name&nickname=暗夜御林" http://192.168.0.62/yl/curl/demo.php
		4.2 上传文件的时候,-F每次只能设置一个参数项,不能多个,文件名用@符号加载地址前
			curl -F "file=@51268106.html" -F "username=name" -F "nickname=暗夜御林" http://192.168.0.62/yl/curl/demo.php
	
	5、模拟登陆,使用cookie文件夹
		5.1 将cookie写入到本地文件(使用-F可以)
			curl -c cookie.txt http://192.168.0.62/yl/curl/demo.php
			curl -D cookie.txt http://192.168.0.62/yl/curl/demo.php //直接将响应头存储进文件
		5.2 使用本地存储的cookie文件发送请求
			curl -b cookie.txt http://192.168.0.62/yl/curl/demo.php
			
	6、伪造referer
		curl -e 'http://www.baidu.com' http://192.168.0.62/yl/curl/demo.php
	
	7、使用代理访问(找免费代理,翻墙出去,google搜索比较给力)
		curl -x 124.202.183.170:8118 http://www.baidu.com