当前位置:  建站>其它
本页文章导读:
    ▪jdk1.7和tomcat7安装过程      环境:     服务器系统:    centOS5.8  64bit      jdk:                 jdk-7u10-linux-x64.tar.gz     tomcat:     &n.........
    ▪虚拟项目学习git/github原理与基本操作9      继续在原来的项目的基础上继续推进,我们在原来合并了master和featurex1的基础上,继续推进两步master分支。 然后我们推进featurex1分支两步。 这个时候featurex1分支的分支图如图所示: 然后.........
    ▪以wifi为媒介,linux系统与android设备交互      -、通过hostapd、dhcp和iptables创建wifi热点         我早在三年前,就注意android了。不过最近才买了台天宇w719,而之前我一直在用MTK平台手机。      &.........

[1]jdk1.7和tomcat7安装过程
    来源: 互联网  发布时间: 2013-11-02
环境:
    服务器系统:    centOS5.8  64bit 
    jdk:                 jdk-7u10-linux-x64.tar.gz
    tomcat:           apache-tomcat-7.0.34.tar.gz
将jdk和tomcat上传到服务器:
     解压:[root@localhost zip]# tar -zxvf jdk-7u10-linux-x64.tar.gz
    检查系统自带jdk 
 [root@localhost zip]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-52)


Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE

卸载步骤:
        确定jdk版本
 [root@localhost zip]# rpm -qa | grep jdk
ldapjdk-4.18-2jpp.3.el5
[root@localhost zip]# rpm -qa | grep gcj
libgcj-devel-4.1.2-52.el5
java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115
libgcj-devel-4.1.2-52.el5
libgcj-src-4.1.2-52.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
libgcj-4.1.2-52.el5
java-1.4.2-gcj-compat-src-1.4.2.0-40jpp.115
libgcj-4.1.2-52.el5
java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-javadoc-1.4.2.0-40jpp.115
       [root@localhost zip]# rpm -qa | grep java
java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115
bsh-javadoc-1.3.0-9jpp.1
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-src-1.4.2.0-40jpp.115
gcc-java-4.1.2-52.el5
xmlrpc-javadoc-2.0.1-3jpp.1
java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-javadoc-1.4.2.0-40jpp.115
直接 卸载:
        yum -y remove java  java-1.4.2-gcj-compat-1.4.2.0-40jpp.115        卸载完成后效果:
 [root@localhost zip]# rpm -qa | grep java
bsh-javadoc-1.3.0-9jpp.1
gcc-java-4.1.2-52.el5
xmlrpc-javadoc-2.0.1-3jpp.1
[root@localhost zip]# rpm -qa | grep jdk
[root@localhost zip]# rpm -qa | grep gcj
libgcj-devel-4.1.2-52.el5
libgcj-devel-4.1.2-52.el5
libgcj-src-4.1.2-52.el5
libgcj-4.1.2-52.el5
libgcj-4.1.2-52.el5
安装jdk:
在跟目录下建立java目录,并将解压的jdk目录放到该目录下
                [root@localhost /]# mkdir java
                [root@localhost /]# mv /root/zip/jdk1.7.0_10 /java
                编辑环境变量在文件末尾添加如下内容: 
                 [root@localhost /]# vi /etc/profile
                  
                export JAVA_HOME=/java/jdk1.7.0_10
                export PATH=$PATH:$JAVA_HOME/bin
                export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar
       保存并测试jdk
[root@localhost /]#  java -version
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)


                编写脚本测试
public class Test{

public static void main(String[] args){
System.out.print("Hello world!!");
}
}


                测试通过  安装成功!
                [root@localhost ~]# javac Test.java 
[root@localhost ~]# java Test
Hello world!! 

安装tomcat:
        要检查一下你的服务器是否安装了REDHAT自带的APACHE,如果有,需要卸载掉,不然80端口会被占用,TOMCAT只能用8080,这不是很方便。

           卸载APACHE的方法很简单先 rpm -qa|grep httpd,查找到相应的rpm,然后卸载即可。
           需要注意的事,卸载有个先后顺序,一般先卸载 devel,然后再卸载httpd.rpm,两者有依赖关系,如果不考虑顺序,可以用 rpm -e –nodeps卸载。

        解压  apache-tomcat-7.0.34.tar.gz
        将解压后的目录移动到 /usr/local下
             [root@localhost conf]# tar -zxvf apache-tomcat-7.0.34.tar.gz
       
             70     <Connector port="80" protocol="HTTP/1.1"   默认为8080 修改为80端口
             71                connectionTimeout="20000"
             72                redirectPort="8443" />
             73     <!-- A "Connector" using the shared thread pool-->
    启动tomcat
            再次编辑环境变量文件在其末尾添加
                        69 export JAVA_HOME=/java/jdk1.7.0_10
                        70 export PATH=$PATH:$JAVA_HOME/bin
                         71 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar
                         72 export TOMCAT_HOME=/usr/local/apache-tomcat-7.0.34  该语句要位于69语句下不然要报错
             到该目录下 /usr/local/apache-tomcat-7.0.34/bin 执行:
                
[root@localhost bin]# ./startup.sh       
Using CATALINA_BASE:   /usr/local/apache-tomcat-7.0.34
Using CATALINA_HOME:   /usr/local/apache-tomcat-7.0.34
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.34/temp
Using JRE_HOME:        /java/jdk1.7.0_10
Using CLASSPATH:       /usr/local/apache-tomcat-7.0.34/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.34/bin/tomcat-juli.jar 
在浏览器中键入服务器ip 就可以访问tomccat首页了

至此 配置完成


作者:tanGUOOO19866 发表于2013-1-4 13:19:40 原文链接
阅读:0 评论:0 查看评论

    
[2]虚拟项目学习git/github原理与基本操作9
    来源: 互联网  发布时间: 2013-11-02

继续在原来的项目的基础上继续推进,我们在原来合并了master和featurex1的基础上,继续推进两步master分支。


然后我们推进featurex1分支两步。

这个时候featurex1分支的分支图如图所示:



然后,我们想把featurex1的内容合并到master分支中,假设已经测试通过了所有的featurex1分支中的内容。

watkins@watkins:~/watkins/finance$ git merge featurex1 
Merge made by the 'recursive' strategy.
 funciton3 |    2 ++
 1 file changed, 2 insertions(+)
watkins@watkins:~/watkins/finance$ 

这次没有出现fast-forward,因为两个分支的快照不存在谁是谁的父节点的情况了,而是分析两个分支的共同的父节点,创建新的快照。

这个时候我们的分支图如图所示:



的开发历史是从更早的地方开始分叉的。由于当前 master 分支所指向的 commit (C4)并非想要并入分支(iss53)的直接祖先,Git 不得不进行一些处理。就此例而言,Git 会用两个分支的末端(C4 和 C5)和它们的共同祖先(C2)进行一次简单的三方合并计算



两个分支的开发过程中,可能同时修改了同一个文件,所以有的时候这种情况合并分支会存在冲突,需要手动的解决这些冲突以后才能进行合并。

冲突的合并

有时候合并操作并不会如此顺利。如果你修改了两个待合并分支里同一个文件的同一部分,Git 就无法干净地把两者合到一起(译注:逻辑上说,这种问题只能由人来解决)。如果你在解决问题 #53 的过程中修改了hotfix 中修改的部分,将得到类似下面的结果:

$ git merge iss53
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

Git 作了合并,但没有提交,它会停下来等你解决冲突。要看看哪些文件在合并时发生冲突,可以用 git status 查阅:

[master*]$ git status
index.html: needs merge
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	unmerged:   index.html
#

任何包含未解决冲突的文件都会以未合并(unmerged)状态列出。Git 会在有冲突的文件里加入标准的冲突解决标记,可以通过它们来手工定位并解决这些冲突。可以看到此文件包含类似下面这样的部分:

<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
  please contact us at support@github.com
</div>
>>>>>>> iss53:index.html

可以看到 ======= 隔开的上半部分,是 HEAD(即 master 分支,在运行 merge 命令时检出的分支)中的内容,下半部分是在 iss53 分支中的内容。解决冲突的办法无非是二者选其一或者由你亲自整合到一起。比如你可以通过把这段内容替换为下面这样来解决:

<div id="footer">
please contact us at email.support@github.com
</div>

这个解决方案各采纳了两个分支中的一部分内容,而且我还删除了 <<<<<<<,=======,和>>>>>>> 这些行。在解决了所有文件里的所有冲突后,运行 git add 将把它们标记为已解决(resolved)。因为一旦暂存,就表示冲突已经解决。如果你想用一个有图形界面的工具来解决这些问题,不妨运行 git mergetool,它会调用一个可视化的合并工具并引导你解决所有冲突:

$ git mergetool
merge tool candidates: kdiff3 tkdiff xxdiff meld gvimdiff opendiff emerge vimdiff
Merging the files: index.html

Normal merge conflict for 'index.html':
  {local}: modified
  {remote}: modified
Hit return to start merge resolution tool (opendiff):

如果不想用默认的合并工具(Git 为我默认选择了 opendiff,因为我在 Mac 上运行了该命令),你可以在上方”merge tool candidates(候选合并工具)”里找到可用的合并工具列表,输入你想用的工具名。我们将在第七章讨论怎样改变环境中的默认值。

退出合并工具以后,Git 会询问你合并是否成功。如果回答是,它会为你把相关文件暂存起来,以表明状态为已解决。

再运行一次 git status 来确认所有冲突都已解决:

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   index.html
#

如果觉得满意了,并且确认所有冲突都已解决,也就是进入了缓存区,就可以用 git commit 来完成这次合并提交。提交的记录差不多是这样:

Merge branch 'iss53'

Conflicts:
  index.html
#
# It looks like you may be committing a MERGE.
# If this is not correct, please remove the file
# .git/MERGE_HEAD
# and try again.
#

如果想给将来看这次合并的人一些方便,可以修改该信息,提供更多合并细节。比如你都作了哪些改动,以及这么做的原因。有时候裁决冲突的理由并不直接或明显,有必要略加注解。


    
[3]以wifi为媒介,linux系统与android设备交互
    来源: 互联网  发布时间: 2013-11-02

-、通过hostapd、dhcp和iptables创建wifi热点

        我早在三年前,就注意android了。不过最近才买了台天宇w719,而之前我一直在用MTK平台手机。

        买手机之前一个星期内,我通过互联网,非常详细的有了解了一遍android。我打算将它打造成一种超级装备:因为我用的系统是fedora17系统,笔记本自带的网卡支持AP,所以我打算通过ssh达成手机与笔记本的互访。
        在linux系统上安装ssh是非常方便的。比如,我用的rpm系的,那么:
            //前者是ssh客户端,用于连接手机;后者是ssh服务端,用于手机连接笔记本
            yum install openssh-clients;yum install openssh-server
        至于手机,可以用quickssh建立ssh服务端。
        当手机到手后,扯淡的事来了!系统是android-4.0.4,在互联网上找不到可用的wpa_supplicant文件(ad-hoc补丁,原生android系统不支持ad-hoc热点)。仅仅这个阻碍,一下子就把我的设想完全推翻了!
        不过,我不气馁。
        通过搜索,了解到通过hostapd可以模拟AP((无线)访问接入点)。互联网上介绍这方面的文章比较多,针对ubuntu系统的为多。而且,内容大多各不相同;内容相同的地方,多在于hostapd.conf的配置。重点难点、易糊涂的地方在dhcpd.conf的配置和iptables的配置。下文中,我会对这两方面作比较详细的说明。文章末尾也会留下几个我所参考到的几篇文章的地址。
        1,先说hostapd.conf的配置。
        安装:
            yum install hostapd
        配置:
            fedora17中,该文件位置在/etc/hostapd/hostapd.conf

            用vim编辑,文件的内容如下:


# This will give you a minimal, insecure wireless network.
#
# DO NOT BE SATISFIED WITH THAT!!!
#
# A complete, well commented example configuration file is
# available here:
#
# /usr/share/doc/hostapd-0.7.3/hostapd.conf
#
# For more information, look here:
#
# http://wireless.kernel.org/en/users/Documentation/hostapd
#

ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel

# Some usable default settings...
# 指定MAC地址过滤规则,0表示除非在禁止列表否则允许,1表示除非在允许列表否则禁止
accept_mac_file = 指定允许MAC列表文件位置,且一行一个
deny_mac_file = 指定禁止MAC列表文件位置,且一行一个
auth_algs=1
ignore_broadcast_ssid=0

# Uncomment these for base WPA & WPA2 support with a pre-shared key
# 密码的安全类型
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

# DO NOT FORGET TO SET A WPA PASSPHRASE!!
# 写自己的wifi密码
wpa_passphrase=****

# Most modern wireless drivers in the kernel need driver=nl80211
driver=nl80211

# Customize these for your local configuration...
#ssid处写热点的名称
interface=wlan0
hw_mode=g
channel=6
ssid=xxx
country_code=US

        配置好后,执行:
             sudo hostapd -B /etc/hostapd/hostapd.conf
        以刚才编辑的指定配置文件启动hostapd服务,启动无线热点。到这里,手机wifi应该能搜得到笔记本发射出的无线信号了。而且执行ifconfig,显示会有mon.wlan0虚拟网卡。但此时,可能手机一直显示正在获取ip地址。原因是,笔记本端没有给手机端分配ip地址。以下方法,可以解决这个问题。

        2,dhcpd.conf的配置。
        安装:
        yum install dhcp
        配置:
            fedora17中,该文件位置在 /etc/dhcp/dhcpd.conf
            用vim编辑,文件的内容如下:

#ddns-update-style interim;
#ignore client-updates;

# sunnet后面的地址可以根据自己的情况写成 192.168.0.0之类的
subnet 10.10.0.0 netmask 255.255.255.0
{

# --- default gateway设置客户端的相关选项
#允许dhcpd服务分配的ip区间,也就说,比如我设置的可以连接15台设备。这是hostapd模拟AP的优势所在
range 10.10.0.2 10.10.0.16;
option routers 10.10.0.1;#路由
#option subnet-mask 255.255.255.0;

# option nis-domain "domain.org";
# option domain-name "domain.org";
option domain-name-servers 8.8.8.8,208.67.222.222;#域名服务器
option broadcast-address 10.10.0.255;#广播地址

#option time-offset -18000; # Eastern Standard Time
# option ntp-servers 10.10.0.0;
# option netbios-name-servers 10.10.0.0;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;

default-lease-time 600;
max-lease-time 7200;

# we want the nameserver to appear at a fixed address
# host ns {
# next-server marvin.redhat.com;
# hardware ethernet 94:39:e5:34:b2:95;
# fixed-address 207.175.42.254;
# }
}

        配置好后,执行:
            sudo ifconfig wlan0 10.10.0.1/16 netmask 255.255.255.0
        以设置虚拟网卡的子网区间和子网掩码。
之后执行:
            sudo service dhcpd start
        以启动dhcpd服务,用于动态给各接入设备分配ip地址。

        至此,便解决了 手机一直显示正在获取ip地址 的问题。但新的问题来的,设配虽然能接入虚拟网卡,却上不了网。其原因在于,从设备来的数据没有通过真实网卡传递到互联网中。自然,互联网中的数据也无法送入设配。以下方法可以解决这个问题:nat和端口转发。

        3, iptables的配置。
            fedora17自带了,iptables(防火墙软件)。它可以实现nat和端口转发。
        配置:
fedora17中,该文件位置在 /etc/sysconfig/iptables

        在这里要先弄清楚,哪个网卡是虚拟网卡的适配器。

        执行ifconfig:


lo: flags=73<UP,LOOPBACK,RUNNING> mtu 16436
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 726 bytes 58044 (56.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 726 bytes 58044 (56.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

mon.wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
unspec 94-39-E5-34-B2-95-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 115719 bytes 29273395 (27.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

p7p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::226a:8aff:fe60:78af prefixlen 64 scopeid 0x20<link>
ether 20:6a:8a:60:78:af txqueuelen 1000 (Ethernet)
RX packets 585598 bytes 464520457 (443.0 MiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 176682 bytes 16436547 (15.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 1 collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1492
inet 117.9.210.54 netmask 255.255.255.255 destination 117.9.208.1
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 584705 bytes 449004909 (428.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 175927 bytes 12520569 (11.9 MiB)
TX errors 0 dropped 5 overruns 0 carrier 0 collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 10.10.0.1 netmask 255.255.0.0 broadcast 10.10.255.255
inet6 fe80::9639:e5ff:fe34:b295 prefixlen 64 scopeid 0x20<link>
ether 94:39:e5:34:b2:95 txqueuelen 1000 (Ethernet)
RX packets 129595 bytes 8819481 (8.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 278844 bytes 410783345 (391.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


        但我没弄懂。感觉不是wlan0。。。有空用排除法试试。目前,笔记本的wifi功能可正常使用。。。


        执行:
            sudo iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -o wlan0 -j MASQUERADE
            sudo iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -o p7
    
最新技术文章:
▪linux内核中的信号机制--信号处理    ▪windows忘记密码    ▪常见的10种“瓶颈”
▪详解Linux内存使用信息    ▪「学习笔记——Linux」Linux软件管理(RPM,Dpkg,APT)...    ▪Shell(Bash)编程实例之获取某个文件夹下的所有...
▪Dynamics CRM 2011编程系列(49):FetchExpression(一)...    ▪Linux个人磁盘分区方案(20G)    ▪细谈MySQL配置的优化
▪交换机与路由器的区别    ▪什么叫网关的精解    ▪Linux下date命令,格式化输出,时间设置
▪「学习笔记——Linux」Linux账号管理与ACL权限...    ▪bash参考手册之四(shell内建命令)    ▪集线器、交换机、路由器、中继器及网关、网...
▪【学习笔记——Linux】Linux下正确关机方法    ▪【学习笔记——Linux】Linux磁盘和文件系统管...    ▪实验一 SCVMM安装
▪Tomcat7和mysql连接池的配置方法和测试(dbcp方...    ▪Tomcat7和mysql连接池的配置方法和测试(dbcp方...    ▪linux内核中的信号机制--信号发送
▪轻松搭建自己的Linux发行版本    ▪bash参考手册之三(基本的Shell特性)续九    ▪fedora18无线用pppoe拨号上网
▪高并发下的 Nginx 优化方案    ▪使用linux命令搜集    ▪JVM 配置参数学习与研究
▪修改CentOS的yum源为163    ▪CentOS下源码安装php+apache+mysql    ▪Redis监控方案
▪linux下压缩工具的区分-gzip,bzip2,tar    ▪基于apache搭建svn    ▪Windows下查看占用端口的程序
▪Nginx+CI 出现404错误    ▪tcpdump抓包工具的高级应用    ▪Windows socket之IOCP实例----IOCP开发驾照理论考试...
▪Web访问异常简单报警    ▪【linux环境配置】linux改成root用户的命令    ▪IIS7.0未能加载文件或程序集
▪linux下获得root权限    ▪IIS6 配置ASP.NET网站伪静态    ▪服务器更换硬盘后Oracle不能连接问题的解决
▪在源Exchange Mailbox 服务器宕机的情况下将用户...    ▪Ubuntu下WordPress更新固定链接方法总结    ▪如何在suse linux 建立共享文件夹
▪linux ntp 时间服务器及客户端安装配置    ▪Thunderbird设置邮件回复时自动签名和邮件引用...    ▪Resin Windows一键部署应用脚本BAT
▪认识Linux系统服务(鸟哥18章笔记)    ▪Vmware中的网络工作模式    ▪Cygwin + NS2 + Win XP 安装方法 网上 唯一 有效版...
▪linux内核中的文件描述符(一)--基础知识简介    ▪64位系统DOSBox 下面nasm编译程序出现"Unable to ope...    ▪Linux 自动上传备份文件
▪Linux下MySQL配置文件my.ini位置    ▪Memcached的管理    ▪linux内核中的copy_to_user和copy_from_user(二)—图解...
▪jdk1.7和tomcat7安装过程    ▪虚拟项目学习git/github原理与基本操作9    ▪以wifi为媒介,linux系统与android设备交互
▪find和grep命令    ▪linux编程实例1    ▪Dynamics CRM 2011编程系列(48): WCF Service 和 Web...
▪vmware 下的linux操作系统 共享windows网络    ▪一次在安装完VMware tools后,系统无法进入图形...    ▪Ubuntu 12.04重装手记
▪Linux常见的登录文件档案名称    ▪虚拟项目学习git/github原理与基本操作2    ▪安装MyEclipse6.5提示输入proxy ip和端口号问题解...
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3