Linux 知识总结

本文章主要是安装完CentOS 7 后遇到的一些问题总结。

目录

1.静态地址配置

2.字符集设置

3.db2安装

4.关闭防火墙

5.安装rpm

6.添加lib库自动搜索路径到/etc/ld.so.conf,然后ldconfig使设置生效  

7.yum安装需要的软件

8.安装32位包

 9.环境搭建小问题

10.linux环境修改tab为4个空格

11.ssh访问虚拟机下的centos慢的解决方法


1.静态地址配置

1.编辑网络配置文件: vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

2.修改:

BOOTPROTO=static

ONBOOT=yes

添加:

IPADDR=192.168.56.108
NETMASK=255.255.255.0
GATEWAY=192.168.56.103

3.重启网络

service network restart

2.字符集设置

1.查看Linux当前语言

echo $LANG

2.查看系统支持的字符集

locale -a  #系统可以支持的语言
locale      #当前系统的语言环境

3.修改系统环境字符集

LANG   #系统主要语系

LC_ALL #系统整体语系

两个地方都可以:

vim  /etc/profile
export LANG=zh_CN.GBK 
source  /etc/profile

 

 cat /etc/sysconfig/i18n   #修改文件,也是一种方案
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
//SYSFONT="lat0-sun16"
SYSFONT="latarcyrheb-sun16"  #系统字体

3.db2安装

1.官网下载v11安装包v11.1_linuxx64_expc.tar.gz,上传到虚拟机路径/opt 下

2.解压 tar -zxvf v11.1_linuxx64_expc.tar.gz,得到一个expc的目录文件

3.cd /opt/expc 进入目录:

ls 

db2  db2ckupgrade  db2_deinstall  db2_install  db2ls  db2prereqcheck  db2setup

4. ./db2prereqcheck  -- 这个是检查安装的依赖关系,缺什么包装什么包(我直接跳过了)

5. ./db2_install

需要输入两次yes,同意协议,同意安装路径。

6.安装成功后,就是创建实例了:

[root@localhost expc]# groupadd -g 2000 db2iadm1

[root@localhost expc]# groupadd -g 2001 db2fadm1

[root@localhost expc]# useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1

[root@localhost expc]# useradd -m -g db2fadm1 -d /home/db2fenc1 db2fenc1

[root@localhost expc]# passwd db2inst1

[root@localhost expc]# passwd db2fenc1

7.切换目录,安装许可证

[root@localhost expc]# cd /opt/ibm/db2/V11.1/adm/

[root@localhost adm]# chmod -R 775 *

 [root@localhost adm]# ./db2licm -a  /opt/expc/db2/license/db2expc_uw.lic--(许可证,我用的express-c的,所以没装许可证)

绑定端口

[root@localhost adm]# cd /opt/ibm/db2/V11.1/instance/

[root@localhost instance]# chmod -R 775 *

[root@localhost instance]# ./db2icrt -p 50000 -u db2fenc1 db2inst1

切用户,创建样本数据库

[root@localhost instance]# su - db2inst1

[db2inst1@localhost ~]$ db2sampl

[db2inst1@localhost ~]$ db2start

SQL1063N  DB2START processing was successful.

[db2inst1@localhost ~]$ db2 connect to sample

Database Connection Information

Database server        = DB2/LINUXX8664 11.1.2.2

SQL authorization ID   = DB2INST1

Local database alias   = SAMPLE

[db2inst1@localhost ~]$ db2 "select * from staff"

[db2inst1@localhost ~]$ db2licm -l

Product name:                     "DB2 Express-C"
License type:                     "Unwarranted"
Expiry date:                      "Permanent"
Product identifier:               "db2expc"
Version information:              "11.1"
Max number of CPUs:               "2"
Max amount of memory (GB):        "16"
Max number of cores:              "2"
Enforcement policy:               "Soft Stop"

8.设置环境变量

db2set AUTOSTART=ON

db2set DB2COUNTRY=86

db2set DB2CODEPAGE=1386

db2set DB2COMM=TCPIP

4.关闭防火墙

防火墙不关闭有可能导致远程无法连接到数据库

关闭防火墙:
systemctl stop firewalld.service
关闭开机启动:
systemctl disable firewalld.service

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

开启防火墙:
systemctl start firewalld.service
开启开机启动:
systemctl enable firewalld.service

5.安装rpm

编译过程中往往会缺少系统文件导致编译错误,需要安装rpm文件:

cd到你存放rpm文件包的目录 
rpm -ivh glibc-devel-2.17-222.el7.i686.rpm
--安装时可能会遇到缺少包的错误。 

rpm -ivh --replacepkgs  glibc-devel-2.17-222.el7.i686.rpm
--软件包重复安装将会失败,若仍需要安装必须加--replacepkgs  

rpm -ivh --replacefiles  glibc-devel-2.17-222.el7.i686.rpm
--软件包的某个文件已在安装其他软件包时安装过,则安装将会失败,若仍需要安装必须加--replacefiles  

rpm -ivh --nodeps  glibc-devel-2.17-222.el7.i686.rpm
--软件包所依赖的软件包未安装,则安装将会失败,若仍需要安装必须加—nodeps

rpm -ivh --force glibc-devel-2.17-222.el7.i686.rpm
--强制安装指定软件包 

6.添加lib库自动搜索路径到/etc/ld.so.conf,然后ldconfig使设置生效  

ld.so 动态共享库搜索顺序

1、ELF可执行文件中动态段DT_RPATH指定;gcc加入链接参数“-Wl,-rpath”指定动态库搜索路径;
2、环境变量LD_LIBRARY_PATH指定路径;
3、/etc/ld.so.cache中缓存的动态库路径。可以通过修改配置文件/etc/ld.so.conf 增删路径(修改后需要运行ldconfig命令);
4、默认的 /lib/;
5、默认的 /usr/lib/

与动态链接库相关命令

(1)ld 是gcc的链接程序。
(2)ldd是查看可执行文件中所依赖的库的程序,比如想查main程序用到了那些动态库,可以直接 
ldd main
(3)ldconfig用来更新文件/etc/ld.so.conf的修改生效。
(4)nm用来查看.so库中的函数名字,标记是T的就是动态库里面生成的名字。如:nm /lib/libc*.so

Linux动态链接库的搜索路径按优先级排序为:

1.编译目标代码时指定的动态库搜索路径;

在编译时通过gcc 的参数”-Wl,-rpath,”指定。当指定多个动态库搜索路径时,路径之间用冒号”:”分隔。

2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;

3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;

/etc/ld.so.conf的第一行有个引用命令:include ld.so.conf.d/*.conf

因此,最优雅的方式是在ld.so.conf.d目录下创建一个你的程序依赖的配置文件,配置文件内容为程序依赖的动态链接库的路径,一个路径一行。

添加完配置文件后执行ldconfig使其生效。

4.默认的动态库搜索路径/lib;

5.默认的动态库搜索路径/usr/lib;

7.yum安装需要的软件

a.安装gcc和g++

由于CentOS是最小安装,所以没有gcc。编译时报错:

gcc: error trying to exec ‘cc1plus’: execvp: 没有那个文件或目录

[root@localhost ~]# yum install gcc gcc-c++;

b.安装dos2unix

yum install -y dos2unix*

8.安装32位包

系统是64位,在编译32位程序时会引起部分包缺失问题

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
/bin/ld: warning: libpam.so.0, needed by /home/db2inst1/sqllib/lib32/libdb2.so, not found

安装之前一定要先把下面的包直接补充安装一下,默认是不安装的,另外要记得修改配置,直接连32位包也一并安装上。好多32包都默认不安装的,会引发不少问题。
echo 'multilib_policy=all' >> /etc/yum.conf
yum install -y glibc* libstdc*
yum install -y pam*

 9.环境搭建小问题

创建数据库:db2 "create database ksdbs using codeset GBK territory CN collate using SYSTEM"

a.新建环境后将集中交易bcc+zqbu和账户中心bcc搭建在同一个数据库中,由于crt_db.sql中一些表空间名字相同,需要将账户中心的建表语句进行修改:

drop tablespace AC_HIS_DATA_TBS;

create tablespace AC_HIS_DATA_TBS
managed by database 
using( file '/home/db2inst1/hdata' 32768)  ----> using( file '/home/db2inst1/ac/hdata' 32768) 
extentsize 32
prefetchsize 256;

b.服务启动后报:

[zhzxbcc@localhost ~]$ 103940888 14:12:20 9528 Level120 -- TESTINFO:(1533103940)SVR向通讯平台0发送数据,长度:179--OK
103940888 14:12:20 9528 Level1011 -- 处理失败,错误-9998:<没有找到请求数据(功能号:684715)提供服务的BU组!>

原因是crt_view.sql中有建立视图语句:

DROP VIEW KS.BU_FUNC;

create VIEW KS.BU_FUNC as
SELECT REQUEST_TYPE,BUGID,LIB_NAME,FUNC_NAME,NOTE,USE_FLAG FROM AC.BU_FUNC;

comment on table KS.BU_FUNC is
'BU功能列表视图';

由于和集中交易在同一个数据库,固ks.bu_func表是存在的,所以视图是创建不成功的,/kssbmp/sbmpbu/std_sbmpbu/bmpbusqc.sqc中BuFuncOpenCursor取的是视图ks.bu_func数据,所以报找不到提供服务的bu组。需要将视图ks.bu_func修改为ac.bu_func。(或者新建视图ac.v_bu_func并修改bmpbusqc.sqc的BuFuncOpenCursor)

c.报错:

10.linux环境修改tab为4个空格

root用户,/etc/virc文件,增加set ts=4 

安装vim    yum install vim*

11.ssh访问虚拟机下的centos慢的解决方法

主要是连接centos慢(需要等待30秒甚至更长),连接red hat就没有问题。

ssh -v ssh_test@192.168.56.103   查看ssh连接过程

解决方法:

[root@localhost ssh]# pwd
/etc/ssh
[root@localhost ssh]# vi sshd_config

将#UseDNS yes这一行,取消注释并把yes改成no,然后重启ssh服务

[root@localhost ssh]# service sshd restart

Redirecting to /bin/systemctl restart sshd.service

   修改为      

原因【转 https://blog.csdn.net/chenghuikai/article/details/53023256】:

UseDNS选项打开状态下,当客户端试图登录OpenSSH服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询,查询出客户端的host name,然后根据查询出的客户端host name进行DNS 正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种手段,但一般我们的IP是动态的,不会有PTR记录的,打开这个选项不过是在白白浪费时间而已。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值