Ubuntu17.04软件或系统更新命令sudo update-manager。 此时,系统就会开始检查是否有软件或者内核更新。 如果有更新,就会弹出上面的软件更新器。
Unix/LinuxC技术 jackxiang 2017-6-24 12:11
sudo update-manager。
此时,系统就会开始检查是否有软件或者内核更新。
如果有更新,就会弹出上面的软件更新器。
Ubuntu软件或系统更新
好了,我们点击立即安装。
Ubuntu软件或系统更新
此处,需要提示大家的是,我们在此处也可以点击 软件更新器的设置,打开 软件和更新弹窗,进行一些设置。
Ubuntu软件或系统更新
我们此处不做设置,点击关闭后,再点击立即安装,开始升级系统。
点击,详情,可以查看进度及更新的软件包情况。
Ubuntu软件或系统更新
Ubuntu软件或系统更新
等待一段时间后,更新结束。
提示:计算机需要重启以完成安装更新。
来自:http://jingyan.baidu.com/article/a17d5285113afc8098c8f2e3.html?qq-pf-to=pcqq.group
此时,系统就会开始检查是否有软件或者内核更新。
如果有更新,就会弹出上面的软件更新器。
Ubuntu软件或系统更新
好了,我们点击立即安装。
Ubuntu软件或系统更新
此处,需要提示大家的是,我们在此处也可以点击 软件更新器的设置,打开 软件和更新弹窗,进行一些设置。
Ubuntu软件或系统更新
我们此处不做设置,点击关闭后,再点击立即安装,开始升级系统。
点击,详情,可以查看进度及更新的软件包情况。
Ubuntu软件或系统更新
Ubuntu软件或系统更新
等待一段时间后,更新结束。
提示:计算机需要重启以完成安装更新。
来自:http://jingyan.baidu.com/article/a17d5285113afc8098c8f2e3.html?qq-pf-to=pcqq.group
[实践ok]ubuntu 16.04在升级17.04时候,出现Failed to start Load Kernel Modules 解决方法
Unix/LinuxC技术 jackxiang 2017-6-24 12:07
ubuntu 16.04在升级17.04时候,出现Failed to start Load Kernel Modules 解决方法:
升级的时候不小心重启了,就看到出现这个错误,鼠标挂了,wifi没了,当时感觉是重装系统的节奏了,搜了下,有治。方法如下:
进入到命令行模式:ctl + alt + F1
在root模式下输入一下指令:
apt-get update
dpkg --configure -a
apt-get dist-upgrade
apt-get -f install
reboot
到此就可以了,这是在ubuntuforums.org上看到的。特此记录!!!
来自:http://m.blog.csdn.net/article/details?id=54091293
https://askubuntu.com/questions/809199/failed-to-start-load-kernel-modules-ubuntu-16-04
升级的时候不小心重启了,就看到出现这个错误,鼠标挂了,wifi没了,当时感觉是重装系统的节奏了,搜了下,有治。方法如下:
进入到命令行模式:ctl + alt + F1
在root模式下输入一下指令:
apt-get update
dpkg --configure -a
apt-get dist-upgrade
apt-get -f install
reboot
到此就可以了,这是在ubuntuforums.org上看到的。特此记录!!!
来自:http://m.blog.csdn.net/article/details?id=54091293
https://askubuntu.com/questions/809199/failed-to-start-load-kernel-modules-ubuntu-16-04
Ubuntu 16.04安装和配置Sublime Text 3,Macbook下Tab打开不是新窗口打开命令之open_files_in_new_window:false。
Unix/LinuxC技术 jackxiang 2017-6-24 12:07
Ubuntu 16.04安装和配置Sublime Text 3:
http://www.th7.cn/system/lin/201604/162651.shtml
Macbook下Tab打开不是新窗口打开命令之open_files_in_new_window:false
这下sublime就是Mac下面的command+n打开新的Tab了。
来自:https://jingyan.baidu.com/article/e75057f2c40ee8ebc91a8995.html
http://www.th7.cn/system/lin/201604/162651.shtml
Macbook下Tab打开不是新窗口打开命令之open_files_in_new_window:false
这下sublime就是Mac下面的command+n打开新的Tab了。
来自:https://jingyan.baidu.com/article/e75057f2c40ee8ebc91a8995.html
ubuntu17.04连接CentOS7.3出现类似问题,用的也是Linux下的SecureCRT7的版本查看文件时候用Tab键出现Wuff —- Wuff!!
Unix/LinuxC技术 jackxiang 2017-6-24 02:07
背景:buntu17.04连接CentOS7.3出现类似问题,用的也是Linux下的SecureCRT7的版本查看文件时候用Tab键出现Wuff —- Wuff!! ,用的也是Linux下的SecureCRT7的版本,做如下修改后就好了。
If you use OS X, and manage multiple machines over SSH, you’ve probably come across and used screen.
You may have noticed that if you SSH to a Linux host from Mac OS X, and try to use the backspace or tab key within a screen session, that you get the “Wuff —- Wuff!!” prompt at the bottom.
Thankfully, the resolution to this problem is easy.
On the remote machine, if you open your ~/.bash_profile file in a text editor (.bash_profile in your home directory), you need to add the following line:
alias screen='TERM=screen screen'
Add that, save the file and you’re done! You’ll need to re-run bash or just log out and log back in, but when you do, the next screen session you open, you’ll find that the backspace/tab key works again as expected!
From:http://droptips.com/wuff-wuff-from-mac-os-x-to-a-screen-session-on-linux
If you use OS X, and manage multiple machines over SSH, you’ve probably come across and used screen.
You may have noticed that if you SSH to a Linux host from Mac OS X, and try to use the backspace or tab key within a screen session, that you get the “Wuff —- Wuff!!” prompt at the bottom.
Thankfully, the resolution to this problem is easy.
On the remote machine, if you open your ~/.bash_profile file in a text editor (.bash_profile in your home directory), you need to add the following line:
alias screen='TERM=screen screen'
Add that, save the file and you’re done! You’ll need to re-run bash or just log out and log back in, but when you do, the next screen session you open, you’ll find that the backspace/tab key works again as expected!
From:http://droptips.com/wuff-wuff-from-mac-os-x-to-a-screen-session-on-linux
Linux/CentOS下如何强制安装yum包~
Unix/LinuxC技术 jackxiang 2017-6-23 20:50
参考原文:
yum install -y yum-downloadonly
yum install PHP-MySQL -y --downloadonly --downloaddir=/opt
rpm -ivh --force --nodeps php-mysql-5.3.3-22.el6.x86_64.rpm
From:http://blog.csdn.net/anghlq/article/details/9165329
=====================================
实践如下:
yum install gcc autoconf cmake unzip vim libcurl-devel zlib-devel curl-devel expat-devel gettext-devel openssl-devel perl-devel nodejs libicu-devel wget curl mysql-devel
下载量:6.2 M
安装大小:31 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): gettext-devel-0.18.2.1-4.el7.x86_64.rpm | 315 kB 00:00:00
(2/5): perl-Git-1.8.3.1-6.el7_2.1.noarch.rpm | 53 kB 00:00:00
(3/5): mariadb-devel-5.5.52-1.el7.x86_64.rpm | 750 kB 00:00:00
(4/5): mariadb-libs-5.5.52-1.el7.x86_64.rpm | 761 kB 00:00:00
(5/5): git-1.8.3.1-6.el7_2.1.x86_64.rpm | 4.4 MB 00:00:04
-----------------------------------------------------------------------------------------------------------------------
Transaction check error:
file /etc/my.cnf from install of mariadb-libs-1:5.5.52-1.el7.x86_64 conflicts with file from package mysql-8.0.1-170622164613.el7.centos.x86_64
错误概要
-------------
yum install mariadb-libs-1:5.5.52-1.el7.x86_64 -y --downloadonly --downloaddir=/tmp
rpm -ihv mariadb-libs-5.5.52-1.el7.x86_64.rpm --nodeps --force
已安装:
gettext-devel.x86_64 0:0.18.2.1-4.el7 mariadb-devel.x86_64 1:5.5.52-1.el7
作为依赖被安装:
git.x86_64 0:1.8.3.1-6.el7_2.1 perl-Git.noarch 0:1.8.3.1-6.el7_2.1
yum install -y yum-downloadonly
yum install PHP-MySQL -y --downloadonly --downloaddir=/opt
rpm -ivh --force --nodeps php-mysql-5.3.3-22.el6.x86_64.rpm
From:http://blog.csdn.net/anghlq/article/details/9165329
=====================================
实践如下:
yum install gcc autoconf cmake unzip vim libcurl-devel zlib-devel curl-devel expat-devel gettext-devel openssl-devel perl-devel nodejs libicu-devel wget curl mysql-devel
下载量:6.2 M
安装大小:31 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): gettext-devel-0.18.2.1-4.el7.x86_64.rpm | 315 kB 00:00:00
(2/5): perl-Git-1.8.3.1-6.el7_2.1.noarch.rpm | 53 kB 00:00:00
(3/5): mariadb-devel-5.5.52-1.el7.x86_64.rpm | 750 kB 00:00:00
(4/5): mariadb-libs-5.5.52-1.el7.x86_64.rpm | 761 kB 00:00:00
(5/5): git-1.8.3.1-6.el7_2.1.x86_64.rpm | 4.4 MB 00:00:04
-----------------------------------------------------------------------------------------------------------------------
Transaction check error:
file /etc/my.cnf from install of mariadb-libs-1:5.5.52-1.el7.x86_64 conflicts with file from package mysql-8.0.1-170622164613.el7.centos.x86_64
错误概要
-------------
yum install mariadb-libs-1:5.5.52-1.el7.x86_64 -y --downloadonly --downloaddir=/tmp
rpm -ihv mariadb-libs-5.5.52-1.el7.x86_64.rpm --nodeps --force
已安装:
gettext-devel.x86_64 0:0.18.2.1-4.el7 mariadb-devel.x86_64 1:5.5.52-1.el7
作为依赖被安装:
git.x86_64 0:1.8.3.1-6.el7_2.1 perl-Git.noarch 0:1.8.3.1-6.el7_2.1
ubuntu下hdparm测试硬盘速度
Unix/LinuxC技术 jackxiang 2017-6-23 00:22
ubuntu下hdparm测试硬盘速度
root@jack:~# fdisk -l
Disk /dev/sda: 74.5 GiB, 80026361856 bytes, 156301488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1555e2a7
设备 启动 Start 末尾 扇区 Size Id 类型
/dev/sda1 * 2048 151093247 151091200 72G 83 Linux
/dev/sda2 151095294 156301311 5206018 2.5G 5 扩展
/dev/sda5 151095296 156301311 5206016 2.5G 82 Linux 交换 / Solaris
root@jack:~# hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 112 MB in 3.03 seconds = 36.97 MB/sec
=========================================================
hdparm -t /dev/hda (IDE硬盘)
hdparm -t /dev/sda (SATA、SCSI、硬RAID卡阵列)
hdparm -t /dev/md0 (软RAID设备)
From:http://blog.csdn.net/amds123/article/details/68961474
http://www.jb51.net/LINUXjishu/160512.html
root@jack:~# fdisk -l
Disk /dev/sda: 74.5 GiB, 80026361856 bytes, 156301488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1555e2a7
设备 启动 Start 末尾 扇区 Size Id 类型
/dev/sda1 * 2048 151093247 151091200 72G 83 Linux
/dev/sda2 151095294 156301311 5206018 2.5G 5 扩展
/dev/sda5 151095296 156301311 5206016 2.5G 82 Linux 交换 / Solaris
root@jack:~# hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 112 MB in 3.03 seconds = 36.97 MB/sec
=========================================================
hdparm -t /dev/hda (IDE硬盘)
hdparm -t /dev/sda (SATA、SCSI、硬RAID卡阵列)
hdparm -t /dev/md0 (软RAID设备)
From:http://blog.csdn.net/amds123/article/details/68961474
http://www.jb51.net/LINUXjishu/160512.html
[实践OK]麒麟Linux 18.04上Chrome打开提示解锁登录密钥环的麻烦,ubuntu 17.04上安装chromium出现输入密码以解锁您的登录
Unix/LinuxC技术 jackxiang 2017-6-23 00:21
更加详细来自: https://blog.csdn.net/zhangrelay/article/details/52856825
关键细节:在seahorse上面建立被chromium后,不再开机询问密码的设置,打开seahorse后:
密码和密钥
密码:
chromium 这个是锁住然状态,密码就是建立这个chromium的时候设置的密码。
登录 旁边有一个小锁是开的状态。
在麒麟ubuntu18.04的实践发现是在登录里面多一个chromium的解锁密码,而不是新建的chromium目录里面。
一)在ubuntu 17.04上安装了Chromium出现对话框输入密码解锁登录密钥环,如下所示:
因为密码框截图困难,这个是网上图片。
点取消就可以使用,但是每次都这样很烦,搜索后得解:
在终端输入seahorse,打开密钥管理软件,如下,注意不要加sudo:
OpenSSH Key ==>密码密钥环===》新建一个密码密钥环,chromium:
设定好密码后,再打开chromium,输入系统登录密码就OK了,之后也不会多次出现了。
From:http://www.linuxdiyf.com/linux/25176.html
二)麒麟Linux 18.04上Chrome打开提示解锁登录密钥环的麻烦:
运行seahorse
seahorse
解锁密码或修改密码环密码
密码->登录(Login)->右键解锁
另外一种情况
如果是chrome的安全数据没有存放于登录密钥环,那么有可能是创建了一个新叫“默认密钥环”的密钥环来存储。如想不每次打开电脑都输入的话就应该把它的密码设为空或者在登录密钥环上创建一个项目指向“默认密钥环”。
密码->默认密钥环->修改密码
转载请注明出处:http://www.cnblogs.com/keitsi/p/6080140.html
Ubuntu 16.04的SWAP设置
Unix/LinuxC技术 jackxiang 2017-6-23 00:17
我在安装Ubuntu 16.04 LTS的时候,因为磁盘分区问题,在安装的时候没有设置SWAP分区,后来在使用过程中,时而出现系统运行不流畅的情况,看来SWAP分区还是需要的。
1. 在Ubuntu中配置使用新创建的Swap分区
Command list:
# 查找Swap分区的UUID
sudo blkid
# 在/ect/fstab中加入新的Swap分区
sudo gedit /etc/fstab
# 在最后加入下列内容,xxxx为Swap分区的UUID
UUID=xxxx none swap sw 0 0
# 激活Swap分区,Swap分区为/dev/sda3
sudo swapon /dev/sda3
2. 在Ubuntu中使用file当swap
Command list:
# 创建1个1GB的file
sudo dd if=/dev/zero of=/mnt/1GB.swap bs=1M count=1024
# 格式化为Swap file
sudo mkswap /mnt/1GB.swap
# 把swap file加入到系统中
sudo swapon /mnt/1GB.swap
上面的操作只是临时添加1个swap file,如果要做永久添加,则需要下列步骤。
# 在/ect/fstab中加入新的Swap分区
sudo gedit /etc/fstab
# 在最后加入下列内容
/mnt/1GB.swap none swap sw 0 0
3. Ubuntu的swap使用策略
Command list:
# 查看memory/buffer/Swap使用情况。
free
# 查看swap使用策略,Swap和memory各占百分百
# 默认是60,即Swap占60%,memory占40%
cat /proc/sys/vm/swappiness
# 修改swap使用策略
# 仅本次开机有效,重启后恢复原值
sudo sysclt vm.swappiness=20
# 修改swap使用策略,系统默认值
# 需要重启系统后,才能生效
sudo gedit /etc/sysctl.conf
# 在最后添加下列内容:
#################################################
# Set Swap usable availability
# Swap <-------> physical memory
# default: 60% 40%
vm.swappiness=20
4. 关闭swap
sudo swapoff -a
swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 2047992 0 -1
来自: http://www.linuxidc.com/Linux/2013-03/80208.htm
1. 在Ubuntu中配置使用新创建的Swap分区
Command list:
# 查找Swap分区的UUID
sudo blkid
# 在/ect/fstab中加入新的Swap分区
sudo gedit /etc/fstab
# 在最后加入下列内容,xxxx为Swap分区的UUID
UUID=xxxx none swap sw 0 0
# 激活Swap分区,Swap分区为/dev/sda3
sudo swapon /dev/sda3
2. 在Ubuntu中使用file当swap
Command list:
# 创建1个1GB的file
sudo dd if=/dev/zero of=/mnt/1GB.swap bs=1M count=1024
# 格式化为Swap file
sudo mkswap /mnt/1GB.swap
# 把swap file加入到系统中
sudo swapon /mnt/1GB.swap
上面的操作只是临时添加1个swap file,如果要做永久添加,则需要下列步骤。
# 在/ect/fstab中加入新的Swap分区
sudo gedit /etc/fstab
# 在最后加入下列内容
/mnt/1GB.swap none swap sw 0 0
3. Ubuntu的swap使用策略
Command list:
# 查看memory/buffer/Swap使用情况。
free
# 查看swap使用策略,Swap和memory各占百分百
# 默认是60,即Swap占60%,memory占40%
cat /proc/sys/vm/swappiness
# 修改swap使用策略
# 仅本次开机有效,重启后恢复原值
sudo sysclt vm.swappiness=20
# 修改swap使用策略,系统默认值
# 需要重启系统后,才能生效
sudo gedit /etc/sysctl.conf
# 在最后添加下列内容:
#################################################
# Set Swap usable availability
# Swap <-------> physical memory
# default: 60% 40%
vm.swappiness=20
4. 关闭swap
sudo swapoff -a
swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 2047992 0 -1
来自: http://www.linuxidc.com/Linux/2013-03/80208.htm
查询CPU核心数 nproc
Unix/LinuxC技术 jackxiang 2017-6-23 00:12
rpm -qf /usr/bin/nproc
coreutils-8.22-18.el7.x86_64
#nproc
1
---------------------------------------
也可这样查:
#cat /proc/cpuinfo
processor : 0
coreutils-8.22-18.el7.x86_64
#nproc
1
---------------------------------------
也可这样查:
#cat /proc/cpuinfo
processor : 0
[实践OK] rpmbuild打包错误:*** ERROR: No build ID note found in ******,以及Httpsqs是否真的支持Libevent1.4.13?
Unix/LinuxC技术 jackxiang 2017-6-23 00:10
背景:在打RPMBUILD一个张宴兄弟的httpsqs结合Libevent1.4.13的包的时候,出现错误,本来他写的是Libevent2.0,顾问在微信问了张宴兄弟下他本人说1.4.13也是也没有啥问题的,就要问了:为何要降级,因为Memcached也需要这个Libevent的低版本的,没办法,Httpsqs所以来的Libevnet也跟着降吧。出现问题:ERROR: No build ID note found in
*** ERROR: No build ID note found in /root/rpmbuild/BUILDROOT/usr/local/filebeat/scripts/import_dashboards
error: Bad exit status from /root/rpmbuild/tmp/rpm-tmp.Mi6g8i (%install)
BuildRequires: gcc,gcc-c++,make,tokyocabinet = 1.4.48,libevent >= 1.4.13
Requires: tokyocabinet = 1.4.48,libevent >= 1.4.13
还不够,得加这一行,因为不加会提示:
AutoReqProv: no
Rpmbuild自己会自动依赖一些so动态链接库的东西,给关掉:
rpm -ihv /home/test/rpmbuild/RPMS/x86_64/httpsqs-1.7-170522172954.el6.x86_64.rpm
error: Failed dependencies:
libevent-2.0.so.5()(64bit) is needed by httpsqs-1.7-170522172954.el6.x86_64
问题依旧:
service httpsqs start
Starting httpsqs: /usr/local/httpsqs/httpsqs: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
[FAILED]
反查一个源码,如下:
tar -zxvf httpsqs-1.7.tar.gz
httpsqs-1.7/
httpsqs-1.7/httpsqs.c
httpsqs-1.7/prename.h
httpsqs-1.7/prename.c
httpsqs-1.7/Makefile
httpsqs-1.7/.Makefile.swp
httpsqs-1.7/httpsqs (这个文件应该是一个二进制文件,去了编译不过去,报错)
gcc -o httpsqs httpsqs.c prename.c -Wl,-rpath,/usr/local/libevent/lib/:/usr/local/tokyocabinet/lib/ -L/usr/local/libevent/lib/ -levent -L/usr/local/tokyocabinet/lib/ -ltokyocabinet -I/usr/local/libevent/include/ -I/usr/local/tokyocabinet/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
httpsqs.c: In function 'httpsqs_handler':
httpsqs.c:350: error: 'struct evhttp_request' has no member named 'uri_elems'
make: *** [httpsqs] Error 1
error: Bad exit status from /home/test/rpmbuild/tmp/rpm-tmp.OyM3VG (%build)
果然:
grep -r "libevent-2.0" ./
Binary file ./httpsqs matches
[root@ httpsqs]# stat httpsqs
File: `httpsqs'
Size: 20184 Blocks: 40 IO Block: 4096 regular file
Device: fc01h/64513d Inode: 1066707 Links: 1
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-05-22 17:58:26.000000000 +0800
Modify: 2017-05-22 17:58:26.000000000 +0800
Change: 2017-05-22 17:58:50.635000020 +0800
[root@ httpsqs]# ldd httpsqs
linux-vdso.so.1 => (0x00007ffd27464000)
libevent-2.0.so.5 => not found
libtokyocabinet.so.9 => /usr/local/tokyocabinet/lib/libtokyocabinet.so.9 (0x00007fed13df0000)
libz.so.1 => /lib64/libz.so.1 (0x0000003cf6c00000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x0000003cfc000000)
librt.so.1 => /lib64/librt.so.1 (0x0000003cf7c00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003cf7400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003cf8000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003cf7000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003cf6800000)
但是编译是从这儿编译的:
rpm -qa|grep libevent
libevent-devel-1.4.13-4.el6.x86_64
libevent-1.4.13-4.el6.x86_64
libevent-doc-1.4.13-4.el6.noarch
libevent-headers-1.4.13-4.el6.noarch
难怪了,原来写二进制里面了:^@^@^@^@^@^@^@^@libevent-2.0.so.5^@__gmon_start__^@_Jv_RegisterClass
稍微深入到源码看一下:
rpm2cpio libevent-2.0.22-170116172306.el6.x86_64.rpm |cpio -div
/usr/local/libevent/include/event2/http_struct.h
httpsqs.c:350: error: ‘struct evhttp_request’ has no member named ‘uri_elems’
struct evhttp_request{#57行到123行都是这个结构体的,而这个uri_elems定义在在98行。
struct evhttp_uri *uri_elems; /* uri elements */
}
张宴兄弟的源码里文件之httpsqs.c:350行:
350 httpsqs_query_part = evhttp_uri_get_query(req->uri_elems);
而旧的版本没有这个http_struct.h文件及结构体,如下:
rpm -ql libevent-headers-1.4.13-4.el6.noarch
/usr/include/evdns.h
/usr/include/event-config.h
/usr/include/event.h
/usr/include/evhttp.h
/usr/include/evrpc.h
/usr/include/evutil.h
所以,张宴兄弟的说法不成立。
还不放心,看一下源码包,不看RPM包,有可能RPM包没有打进来?
http://pkgs.fedoraproject.org/repo/pkgs/libevent/libevent-1.4.13-stable.tar.gz/
DownLoad:http://pkgs.fedoraproject.org/repo/pkgs/libevent/libevent-1.4.13-stable.tar.gz/0b3ea18c634072d12b3c1ee734263664/libevent-1.4.13-stable.tar.gz
解压后,再用Editplus查找:uri_elems,并没有找到这个结构体变量,如下:
-- 在文件中查找: uri_elems in E:\download\libevent-1.4.13-stable excl *.* --
找到 0 个事件 (在 0 个文件中)。
输出完成 (耗时 0 秒)
So,张宴兄弟长时间没有看这块代码,应该是记错了!!!
在Fedora14中打rpm包,是没有/usr/src/redhat这个目录的,而是要建立~/rpmbuild目录,并建立SOURCES、SPECS、RPMS等相应目录。其它步骤相同。
但是在rpmbuild -ba时,遇到如下错误:
*** ERROR: No build ID note found in /home/wuyang/rpmbuild/BUILDROOT/******
error: Bad exit status from /var/tmp/rpm-tmp.BPd1OI (%install)
gcc -o httpsqs httpsqs.c prename.c -Wl,-rpath,/usr/local/libevent/lib/:/usr/local/tokyocabinet/lib/ -L/usr/local/libevent/lib/ -levent -L/usr/local/tokyocabinet/lib/ -ltokyocabinet -I/usr/local/libevent/include/ -I/usr/local/tokyocabinet/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
修改为:
gcc -o httpsqs httpsqs.c prename.c -Wl,-rpath,/usr/lib64:/usr/local/tokyocabinet/lib/ -L/usr/lib64 -levent -L/usr/local/tokyocabinet/lib/ -ltokyocabinet -I/usr/include/ -I/usr/local/tokyocabinet/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
[root@yum_rpmbuild-centos6_bj_sjs_10_71_183_1** httpsqs-1.7]# gcc -o httpsqs httpsqs.c prename.c -Wl,-rpath,/usr/lib64:/usr/local/tokyocabinet/lib/ -L/usr/lib64 -levent -L/usr/local/tokyocabinet/lib/ -ltokyocabinet -I/usr/include/ -I/usr/local/tokyocabinet/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
httpsqs.c: In function ‘httpsqs_handler’:
httpsqs.c:350: error: ‘struct evhttp_request’ has no member named ‘uri_elems’
rpm -ql libevent-1.4.13-4.el6.x86_64
/usr/lib64/libevent-1.4.so.2
/usr/lib64/libevent-1.4.so.2.1.3
/usr/lib64/libevent_core-1.4.so.2
/usr/lib64/libevent_core-1.4.so.2.1.3
/usr/lib64/libevent_extra-1.4.so.2
/usr/lib64/libevent_extra-1.4.so.2.1.3
/usr/share/doc/libevent-1.4.13
/usr/share/doc/libevent-1.4.13/README
rpm -ql libevent-devel-1.4.13-4.el6.x86_64
/usr/bin/event_rpcgen.py
/usr/lib64/libevent.a
/usr/lib64/libevent.so
/usr/lib64/libevent_core.a
/usr/lib64/libevent_core.so
/usr/lib64/libevent_extra.a
/usr/lib64/libevent_extra.so
/usr/share/man/man3/evdns.3.gz
/usr/share/man/man3/event.3.gz
rpm -ql libevent-headers-1.4.13-4.el6.noarch
/usr/include/evdns.h
/usr/include/event-config.h
/usr/include/event.h
/usr/include/evhttp.h
/usr/include/evrpc.h
/usr/include/evutil.h
解决方法是在.spec文件中任意位置添加如下参数:
%define __debug_install_post \
%{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
%{nil}
重新打包,即可。
另外最后生成的rpm包是在/RPMS/i686中
来自:http://blog.csdn.net/onlyou930/article/details/6995645
*** ERROR: No build ID note found in /root/rpmbuild/BUILDROOT/usr/local/filebeat/scripts/import_dashboards
error: Bad exit status from /root/rpmbuild/tmp/rpm-tmp.Mi6g8i (%install)
BuildRequires: gcc,gcc-c++,make,tokyocabinet = 1.4.48,libevent >= 1.4.13
Requires: tokyocabinet = 1.4.48,libevent >= 1.4.13
还不够,得加这一行,因为不加会提示:
AutoReqProv: no
Rpmbuild自己会自动依赖一些so动态链接库的东西,给关掉:
rpm -ihv /home/test/rpmbuild/RPMS/x86_64/httpsqs-1.7-170522172954.el6.x86_64.rpm
error: Failed dependencies:
libevent-2.0.so.5()(64bit) is needed by httpsqs-1.7-170522172954.el6.x86_64
问题依旧:
service httpsqs start
Starting httpsqs: /usr/local/httpsqs/httpsqs: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
[FAILED]
反查一个源码,如下:
tar -zxvf httpsqs-1.7.tar.gz
httpsqs-1.7/
httpsqs-1.7/httpsqs.c
httpsqs-1.7/prename.h
httpsqs-1.7/prename.c
httpsqs-1.7/Makefile
httpsqs-1.7/.Makefile.swp
httpsqs-1.7/httpsqs (这个文件应该是一个二进制文件,去了编译不过去,报错)
gcc -o httpsqs httpsqs.c prename.c -Wl,-rpath,/usr/local/libevent/lib/:/usr/local/tokyocabinet/lib/ -L/usr/local/libevent/lib/ -levent -L/usr/local/tokyocabinet/lib/ -ltokyocabinet -I/usr/local/libevent/include/ -I/usr/local/tokyocabinet/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
httpsqs.c: In function 'httpsqs_handler':
httpsqs.c:350: error: 'struct evhttp_request' has no member named 'uri_elems'
make: *** [httpsqs] Error 1
error: Bad exit status from /home/test/rpmbuild/tmp/rpm-tmp.OyM3VG (%build)
果然:
grep -r "libevent-2.0" ./
Binary file ./httpsqs matches
[root@ httpsqs]# stat httpsqs
File: `httpsqs'
Size: 20184 Blocks: 40 IO Block: 4096 regular file
Device: fc01h/64513d Inode: 1066707 Links: 1
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-05-22 17:58:26.000000000 +0800
Modify: 2017-05-22 17:58:26.000000000 +0800
Change: 2017-05-22 17:58:50.635000020 +0800
[root@ httpsqs]# ldd httpsqs
linux-vdso.so.1 => (0x00007ffd27464000)
libevent-2.0.so.5 => not found
libtokyocabinet.so.9 => /usr/local/tokyocabinet/lib/libtokyocabinet.so.9 (0x00007fed13df0000)
libz.so.1 => /lib64/libz.so.1 (0x0000003cf6c00000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x0000003cfc000000)
librt.so.1 => /lib64/librt.so.1 (0x0000003cf7c00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003cf7400000)
libm.so.6 => /lib64/libm.so.6 (0x0000003cf8000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003cf7000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003cf6800000)
但是编译是从这儿编译的:
rpm -qa|grep libevent
libevent-devel-1.4.13-4.el6.x86_64
libevent-1.4.13-4.el6.x86_64
libevent-doc-1.4.13-4.el6.noarch
libevent-headers-1.4.13-4.el6.noarch
难怪了,原来写二进制里面了:^@^@^@^@^@^@^@^@libevent-2.0.so.5^@__gmon_start__^@_Jv_RegisterClass
稍微深入到源码看一下:
rpm2cpio libevent-2.0.22-170116172306.el6.x86_64.rpm |cpio -div
/usr/local/libevent/include/event2/http_struct.h
httpsqs.c:350: error: ‘struct evhttp_request’ has no member named ‘uri_elems’
struct evhttp_request{#57行到123行都是这个结构体的,而这个uri_elems定义在在98行。
struct evhttp_uri *uri_elems; /* uri elements */
}
张宴兄弟的源码里文件之httpsqs.c:350行:
350 httpsqs_query_part = evhttp_uri_get_query(req->uri_elems);
而旧的版本没有这个http_struct.h文件及结构体,如下:
rpm -ql libevent-headers-1.4.13-4.el6.noarch
/usr/include/evdns.h
/usr/include/event-config.h
/usr/include/event.h
/usr/include/evhttp.h
/usr/include/evrpc.h
/usr/include/evutil.h
所以,张宴兄弟的说法不成立。
还不放心,看一下源码包,不看RPM包,有可能RPM包没有打进来?
http://pkgs.fedoraproject.org/repo/pkgs/libevent/libevent-1.4.13-stable.tar.gz/
DownLoad:http://pkgs.fedoraproject.org/repo/pkgs/libevent/libevent-1.4.13-stable.tar.gz/0b3ea18c634072d12b3c1ee734263664/libevent-1.4.13-stable.tar.gz
解压后,再用Editplus查找:uri_elems,并没有找到这个结构体变量,如下:
-- 在文件中查找: uri_elems in E:\download\libevent-1.4.13-stable excl *.* --
找到 0 个事件 (在 0 个文件中)。
输出完成 (耗时 0 秒)
So,张宴兄弟长时间没有看这块代码,应该是记错了!!!
在Fedora14中打rpm包,是没有/usr/src/redhat这个目录的,而是要建立~/rpmbuild目录,并建立SOURCES、SPECS、RPMS等相应目录。其它步骤相同。
但是在rpmbuild -ba时,遇到如下错误:
*** ERROR: No build ID note found in /home/wuyang/rpmbuild/BUILDROOT/******
error: Bad exit status from /var/tmp/rpm-tmp.BPd1OI (%install)
gcc -o httpsqs httpsqs.c prename.c -Wl,-rpath,/usr/local/libevent/lib/:/usr/local/tokyocabinet/lib/ -L/usr/local/libevent/lib/ -levent -L/usr/local/tokyocabinet/lib/ -ltokyocabinet -I/usr/local/libevent/include/ -I/usr/local/tokyocabinet/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
修改为:
gcc -o httpsqs httpsqs.c prename.c -Wl,-rpath,/usr/lib64:/usr/local/tokyocabinet/lib/ -L/usr/lib64 -levent -L/usr/local/tokyocabinet/lib/ -ltokyocabinet -I/usr/include/ -I/usr/local/tokyocabinet/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
[root@yum_rpmbuild-centos6_bj_sjs_10_71_183_1** httpsqs-1.7]# gcc -o httpsqs httpsqs.c prename.c -Wl,-rpath,/usr/lib64:/usr/local/tokyocabinet/lib/ -L/usr/lib64 -levent -L/usr/local/tokyocabinet/lib/ -ltokyocabinet -I/usr/include/ -I/usr/local/tokyocabinet/include/ -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g
httpsqs.c: In function ‘httpsqs_handler’:
httpsqs.c:350: error: ‘struct evhttp_request’ has no member named ‘uri_elems’
rpm -ql libevent-1.4.13-4.el6.x86_64
/usr/lib64/libevent-1.4.so.2
/usr/lib64/libevent-1.4.so.2.1.3
/usr/lib64/libevent_core-1.4.so.2
/usr/lib64/libevent_core-1.4.so.2.1.3
/usr/lib64/libevent_extra-1.4.so.2
/usr/lib64/libevent_extra-1.4.so.2.1.3
/usr/share/doc/libevent-1.4.13
/usr/share/doc/libevent-1.4.13/README
rpm -ql libevent-devel-1.4.13-4.el6.x86_64
/usr/bin/event_rpcgen.py
/usr/lib64/libevent.a
/usr/lib64/libevent.so
/usr/lib64/libevent_core.a
/usr/lib64/libevent_core.so
/usr/lib64/libevent_extra.a
/usr/lib64/libevent_extra.so
/usr/share/man/man3/evdns.3.gz
/usr/share/man/man3/event.3.gz
rpm -ql libevent-headers-1.4.13-4.el6.noarch
/usr/include/evdns.h
/usr/include/event-config.h
/usr/include/event.h
/usr/include/evhttp.h
/usr/include/evrpc.h
/usr/include/evutil.h
解决方法是在.spec文件中任意位置添加如下参数:
%define __debug_install_post \
%{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
%{nil}
重新打包,即可。
另外最后生成的rpm包是在/RPMS/i686中
来自:http://blog.csdn.net/onlyou930/article/details/6995645
[实践ok]ubuntu 16.04在升级17.04时候,出现Failed to start Load Kernel Modules 解决方法
Unix/LinuxC技术 jackxiang 2017-6-23 00:04
ubuntu 16.04在升级17.04时候,出现Failed to start Load Kernel Modules 解决方法:
升级的时候不小心重启了,就看到出现这个错误,鼠标挂了,wifi没了,当时感觉是重装系统的节奏了,搜了下,有治。方法如下:
进入到命令行模式:ctl + alt + F1
在root模式下输入一下指令:
apt-get update
dpkg --configure -a
apt-get dist-upgrade
apt-get -f install
reboot
到此就可以了,这是在ubuntuforums.org上看到的。特此记录!!!
来自:http://m.blog.csdn.net/article/details?id=54091293
https://askubuntu.com/questions/809199/failed-to-start-load-kernel-modules-ubuntu-16-04
升级的时候不小心重启了,就看到出现这个错误,鼠标挂了,wifi没了,当时感觉是重装系统的节奏了,搜了下,有治。方法如下:
进入到命令行模式:ctl + alt + F1
在root模式下输入一下指令:
apt-get update
dpkg --configure -a
apt-get dist-upgrade
apt-get -f install
reboot
到此就可以了,这是在ubuntuforums.org上看到的。特此记录!!!
来自:http://m.blog.csdn.net/article/details?id=54091293
https://askubuntu.com/questions/809199/failed-to-start-load-kernel-modules-ubuntu-16-04
[实践OK]CentOS7.2内核升至最新
Unix/LinuxC技术 jackxiang 2017-6-22 23:57
前段时间在阿里云上部署docker服务(或者是安装glusternfs要求较高版本的内核),由于阿里云自带centos的内核版本地较低第所以遇到了升级内核问题。这篇文章简单介绍一下升级centos的过程。
1、导入key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2、安装elrepo的yum源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
(这个命令并不行,手工解压elrepo-release-7.0-2.el7.elrepo.noarch.rpm并拷贝elrepo.repo更靠谱。rpm2cpio elrepo-release-7.0-2.el7.elrepo.noarch.rpm |cpio -div)
3、安装内核
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
kernel-ml-devel-4.11.2-1.el7.elrepo.x86_64
kernel-ml.x86_64 0:4.11.2-1.el7.elrepo kernel-ml-devel.x86_64 0:4.11.2-1.el7.elrepo
查看最新内核版本
[root@iZ25x4ab3lrZ ~]# uname -r
4.8.10-1.el7.elrepo.x86_64
注意:虽然此刻看到的版本已经升级到最新,但是此时如何重启服务器,内核版本就会回到最初的版本。因此在reboot前还需要设置内核的默认启动顺序。
查看默认启动顺序:
[root@iZ25x4ab3lrZ ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.8.10-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (0-rescue-7d26c16f128042a684ea474c9e2c240f) 7 (Core)
设置默认启动(从0开始计数)===>前面安装的是:kernel-ml-devel-4.11.2-1.el7.elrepo.x86_64
grub2-set-default 0
=======================================================================================
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.11.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.6.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.36.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.22.2.el7.x86_64) 7 (Core)
CentOS Linux (4.4.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux, with Linux 0-rescue-45461f76679f48ee96e95da6cc798cc8
4、重启,完成设置,并验证,成功升级到CentOS7.2:
#cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
#uname -r
4.11.2-1.el7.elrepo.x86_64
From: http://www.2cto.com/os/201701/587143.html
提取出Rpm包里的文件:http://justwinit.cn/post/8922/
1、导入key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2、安装elrepo的yum源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
(这个命令并不行,手工解压elrepo-release-7.0-2.el7.elrepo.noarch.rpm并拷贝elrepo.repo更靠谱。rpm2cpio elrepo-release-7.0-2.el7.elrepo.noarch.rpm |cpio -div)
3、安装内核
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
kernel-ml-devel-4.11.2-1.el7.elrepo.x86_64
kernel-ml.x86_64 0:4.11.2-1.el7.elrepo kernel-ml-devel.x86_64 0:4.11.2-1.el7.elrepo
查看最新内核版本
[root@iZ25x4ab3lrZ ~]# uname -r
4.8.10-1.el7.elrepo.x86_64
注意:虽然此刻看到的版本已经升级到最新,但是此时如何重启服务器,内核版本就会回到最初的版本。因此在reboot前还需要设置内核的默认启动顺序。
查看默认启动顺序:
[root@iZ25x4ab3lrZ ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.8.10-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (0-rescue-7d26c16f128042a684ea474c9e2c240f) 7 (Core)
设置默认启动(从0开始计数)===>前面安装的是:kernel-ml-devel-4.11.2-1.el7.elrepo.x86_64
grub2-set-default 0
=======================================================================================
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.11.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.6.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.36.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.22.2.el7.x86_64) 7 (Core)
CentOS Linux (4.4.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux, with Linux 0-rescue-45461f76679f48ee96e95da6cc798cc8
4、重启,完成设置,并验证,成功升级到CentOS7.2:
#cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
#uname -r
4.11.2-1.el7.elrepo.x86_64
From: http://www.2cto.com/os/201701/587143.html
提取出Rpm包里的文件:http://justwinit.cn/post/8922/
[实践OK]删除Ubuntu多余的开机启动项(旧的内核)
Unix/LinuxC技术 jackxiang 2017-6-22 23:55
实践发现:删除多了一个linux-image-extra-4..0-78-generic,应该留下俩。
当linux有新的内核发布时,ubuntu会把当前的内核更新为最新的内核,时间久了,电脑中会同时存在多个内核,最明显的是每次开机的时候,会有多个开机选项,比较麻烦。如果自己不想再使用以前的内核,可以考虑删除旧的内核,一来可以释放部分硬盘资源(一个内核100多M的样子吧),二来开机界面比较清新。
1.sunny@ubuntu:~$ dpkg --get-selections|grep linux-image
linux-image-2.6.38-10-generic install
linux-image-2.6.38-11-generic install
linux-image-2.6.38-12-generic install
linux-image-2.6.38-13-generic install
linux-image-generic install
2.查看当前使用的内核
sunny@ubuntu:~$ uname -a
Linux ubuntu 2.6.38-13-generic #56-Ubuntu SMP Tue Feb 14 12:40:40 UTC 2012 i686 i686 i386 GNU/Linux
3.删除其它旧的内核
sunny@ubuntu:~$ sudo apt-get remove linux-image-2.6.38-10-generic linux-image-2.6.38-11-generic linux-image-2.6.38-12-generic
4. 然后做下清理(可有可无)
sunny@ubuntu/usr/src sudo apt−get clean
sunny@ubuntu:/usr/srcsudoapt−getclean
sunny@ubuntu:/usr/src sudo apt-get autoclean
ubuntu中删除显示为deinstall的linux内核:
http://blog.csdn.net/iam333/article/details/37874683
下次开机就没有那些旧的内核了。
来自:http://www.cnblogs.com/king-77024128/articles/2507280.html
http://blog.csdn.net/u010987458/article/details/72381998
当linux有新的内核发布时,ubuntu会把当前的内核更新为最新的内核,时间久了,电脑中会同时存在多个内核,最明显的是每次开机的时候,会有多个开机选项,比较麻烦。如果自己不想再使用以前的内核,可以考虑删除旧的内核,一来可以释放部分硬盘资源(一个内核100多M的样子吧),二来开机界面比较清新。
1.sunny@ubuntu:~$ dpkg --get-selections|grep linux-image
linux-image-2.6.38-10-generic install
linux-image-2.6.38-11-generic install
linux-image-2.6.38-12-generic install
linux-image-2.6.38-13-generic install
linux-image-generic install
2.查看当前使用的内核
sunny@ubuntu:~$ uname -a
Linux ubuntu 2.6.38-13-generic #56-Ubuntu SMP Tue Feb 14 12:40:40 UTC 2012 i686 i686 i386 GNU/Linux
3.删除其它旧的内核
sunny@ubuntu:~$ sudo apt-get remove linux-image-2.6.38-10-generic linux-image-2.6.38-11-generic linux-image-2.6.38-12-generic
4. 然后做下清理(可有可无)
sunny@ubuntu/usr/src sudo apt−get clean
sunny@ubuntu:/usr/srcsudoapt−getclean
sunny@ubuntu:/usr/src sudo apt-get autoclean
ubuntu中删除显示为deinstall的linux内核:
http://blog.csdn.net/iam333/article/details/37874683
下次开机就没有那些旧的内核了。
来自:http://www.cnblogs.com/king-77024128/articles/2507280.html
http://blog.csdn.net/u010987458/article/details/72381998
Linux下为Chromium安装Flash插件
Unix/LinuxC技术 jackxiang 2017-6-22 23:55
下载Adobe Flash Player
https://get.adobe.com/flashplayer/?no_redirect
解压:
tar -xf xxx.tar
得到一个libpepflashplayer.so文件。
2. 加入Chromium的插件文件夹
sudo cp libpepflashplayer.so /usr/lib/chromium-browser/plugins
3. 在Chromium的启动选项中加入这一插件
sudo gedit /etc/chromium-browser/default
在flags一行加上:
CHROMIUM_FLAGS="--ppapi-flash-path=/usr/lib/chromium-browser/plugins/libpepflashplayer.so --ppapi-flash-version=11.5.31.2"
version可以从下载包里面的manifest.json文件里面看到。
启用插件
启动Chromium浏览器,在地址栏输入
chrome://plugins/
启用插件即可
http://www.cnblogs.com/linkzijun/p/6492761.html
https://get.adobe.com/flashplayer/?no_redirect
解压:
tar -xf xxx.tar
得到一个libpepflashplayer.so文件。
2. 加入Chromium的插件文件夹
sudo cp libpepflashplayer.so /usr/lib/chromium-browser/plugins
3. 在Chromium的启动选项中加入这一插件
sudo gedit /etc/chromium-browser/default
在flags一行加上:
CHROMIUM_FLAGS="--ppapi-flash-path=/usr/lib/chromium-browser/plugins/libpepflashplayer.so --ppapi-flash-version=11.5.31.2"
version可以从下载包里面的manifest.json文件里面看到。
启用插件
启动Chromium浏览器,在地址栏输入
chrome://plugins/
启用插件即可
http://www.cnblogs.com/linkzijun/p/6492761.html
[再次重现]NFS 客户端机运行df命令后死掉(没有反应) -- 解决
Unix/LinuxC技术 jackxiang 2017-6-22 23:50
背景:发现df 特别慢,用strace df -h ,发现卡在/mnt/backup,想cd /mnt卡住了,于是,怎么办?发现NFS的Server端都宕机了。
cat /proc/mounts
umount -lf /mnt/backup
umount: only root can do that
Root:
umount -lf /mnt/backup
More: http://justwinit.cn/post/6800/
-------------------------------------------------------------------------------------
这个问题是第二次遇到了。这次一定要记下来,免得日后麻烦!!
问题描述:
有两台服务器,其中一台向另一台通过nfs共享分区,如下:
server A: nfs server
server B: nfs Client
事件发生: Server A,B 因故障同时重启。 重启后,用putty登陆到server A ,运行‘df’命令:
$ df
$ Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 80632188 8899080 67636940 12% /
none 4086484 0 4086484 0% /dev/shm
/dev/sda2 201582252 32076524 159265900 17% /opt
/dev/sda3 201582252 44511180 146831244 24% /fs
/dev/sda7 20161172 332916 18804116 2% /usr/local
/dev/sda8 20161172 78360 19058672 1% /tmp
$(没有出现这个命令提示符)
无奈,只好再用putty 登陆Server A ,将 df 进程kill......
只好尝试重新mount
$mount -t nfs B:/data /mnt/data
failed: RPC Error: Program not registered
哦~~~ ,原来B的nfs 服务没有start... 登陆B:
$serive nfs restart
重新再A上运行df,仍然死掉...
想到先卸载,在挂载:
$umount /mnt/data
device is busy 。
运行fuser -mk /mnt/data 杀掉访问/mnt/data所有进程。
/mnt/data: Stale NFS file handle
在server A 运行 A , ok ~~~
重新mount -t nfs B:/data /mnt/data 打完收工。
来自:http://blog.csdn.net/daniel_cao_/article/details/4584443
cat /proc/mounts
umount -lf /mnt/backup
umount: only root can do that
Root:
umount -lf /mnt/backup
More: http://justwinit.cn/post/6800/
-------------------------------------------------------------------------------------
这个问题是第二次遇到了。这次一定要记下来,免得日后麻烦!!
问题描述:
有两台服务器,其中一台向另一台通过nfs共享分区,如下:
server A: nfs server
server B: nfs Client
事件发生: Server A,B 因故障同时重启。 重启后,用putty登陆到server A ,运行‘df’命令:
$ df
$ Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 80632188 8899080 67636940 12% /
none 4086484 0 4086484 0% /dev/shm
/dev/sda2 201582252 32076524 159265900 17% /opt
/dev/sda3 201582252 44511180 146831244 24% /fs
/dev/sda7 20161172 332916 18804116 2% /usr/local
/dev/sda8 20161172 78360 19058672 1% /tmp
$(没有出现这个命令提示符)
无奈,只好再用putty 登陆Server A ,将 df 进程kill......
只好尝试重新mount
$mount -t nfs B:/data /mnt/data
failed: RPC Error: Program not registered
哦~~~ ,原来B的nfs 服务没有start... 登陆B:
$serive nfs restart
重新再A上运行df,仍然死掉...
想到先卸载,在挂载:
$umount /mnt/data
device is busy 。
运行fuser -mk /mnt/data 杀掉访问/mnt/data所有进程。
/mnt/data: Stale NFS file handle
在server A 运行 A , ok ~~~
重新mount -t nfs B:/data /mnt/data 打完收工。
来自:http://blog.csdn.net/daniel_cao_/article/details/4584443
[常常遇到]通过Strace定位故障原因之connect() failed (110: Connection timed out) while connecting to upstream
Unix/LinuxC技术 jackxiang 2017-6-22 23:48
分析文章:https://huoding.com/2013/10/06/288
内存不够用时通过它来申请新内存(data segment)
「man brk」来查询一下它的含义:
brk() sets the end of the data segment to the value specified by end_data_segment, when that value is reasonable, the system does have enough memory and the process does not exceed its max data size (see setrlimit(2)).
在Strace中和操作花费时间相关的选项有两个,分别是「-r」和「-T」,它们的差别是「-r」表示相对时间,而「-T」表示绝对时间。简单统计可以用「-r」,但是需要注意的是在多任务背景下,CPU随时可能会被切换出去做别的事情,所以相对时间不一定准确,此时最好使用「-T」,在行尾可以看到操作时间,可以发现确实很慢。 更多:https://blog.huoding.com/2013/10/06/288
shell> strace -T -p $(pgrep -n php-cgi) 2>&1 | grep -B 10 brk
stat("/path/to/script.php", {...}) = 0 <0.000064>
brk(0x1d9a000) = 0x1d9a000 <0.000067>
brk(0x1dda000) = 0x1dda000 <0.001134>
brk(0x1e1a000) = 0x1e1a000 <0.000065>
brk(0x1e5a000) = 0x1e5a000 <0.012396>
brk(0x1e9a000) = 0x1e9a000 <0.000092>
cat bak0.c
#include<stdio.h>
#include <unistd.h>
int main()
{
int*p1 = sbrk(4);
int*p2 = sbrk(4);
int*p3 = sbrk(4);
printf("pid%d\n",getpid());
printf("p1:%p\n",p1);
printf("p2:%p\n",p2);
printf("p3:%p\n",p3);
while(1);
}
gcc bak0.c -o main
#./main
pid2816
p1:0x602000
p2:0x602004
p3:0x602008
ps -ef|grep main
root 2994 2461 94 10:26 pts/3 00:00:07 ./main
此时我们可以看下他的maps文件
cat /proc/2994/maps
00602000-00603000 rw-p 00000000 00:00 0 [heap]
2) 内核维护一个指针,假设是p,那么sbrk(0)或得到一个没有被占用的虚拟内存地址,但是此时不分配空间,但是此时只是初始化p,所以你如果对此时得到的内存地址赋值,那么就会出现段错误
cat bak.c
#include<stdio.h>
#include<unistd.h>
int main()
{
int *p = sbrk(0);
printf("%p\n",p);
*p = 111;
}
gcc bak.c -o main
#./main
0x602000
段错误(吐核)
来自:https://blog.csdn.net/xiaoxiaopengbo/article/details/78206953
https://www.cnblogs.com/chengxuyuancc/p/3566710.html
内存不够用时通过它来申请新内存(data segment)
「man brk」来查询一下它的含义:
brk() sets the end of the data segment to the value specified by end_data_segment, when that value is reasonable, the system does have enough memory and the process does not exceed its max data size (see setrlimit(2)).
在Strace中和操作花费时间相关的选项有两个,分别是「-r」和「-T」,它们的差别是「-r」表示相对时间,而「-T」表示绝对时间。简单统计可以用「-r」,但是需要注意的是在多任务背景下,CPU随时可能会被切换出去做别的事情,所以相对时间不一定准确,此时最好使用「-T」,在行尾可以看到操作时间,可以发现确实很慢。 更多:https://blog.huoding.com/2013/10/06/288
shell> strace -T -p $(pgrep -n php-cgi) 2>&1 | grep -B 10 brk
stat("/path/to/script.php", {...}) = 0 <0.000064>
brk(0x1d9a000) = 0x1d9a000 <0.000067>
brk(0x1dda000) = 0x1dda000 <0.001134>
brk(0x1e1a000) = 0x1e1a000 <0.000065>
brk(0x1e5a000) = 0x1e5a000 <0.012396>
brk(0x1e9a000) = 0x1e9a000 <0.000092>
cat bak0.c
#include<stdio.h>
#include <unistd.h>
int main()
{
int*p1 = sbrk(4);
int*p2 = sbrk(4);
int*p3 = sbrk(4);
printf("pid%d\n",getpid());
printf("p1:%p\n",p1);
printf("p2:%p\n",p2);
printf("p3:%p\n",p3);
while(1);
}
gcc bak0.c -o main
#./main
pid2816
p1:0x602000
p2:0x602004
p3:0x602008
ps -ef|grep main
root 2994 2461 94 10:26 pts/3 00:00:07 ./main
此时我们可以看下他的maps文件
cat /proc/2994/maps
00602000-00603000 rw-p 00000000 00:00 0 [heap]
2) 内核维护一个指针,假设是p,那么sbrk(0)或得到一个没有被占用的虚拟内存地址,但是此时不分配空间,但是此时只是初始化p,所以你如果对此时得到的内存地址赋值,那么就会出现段错误
cat bak.c
#include<stdio.h>
#include<unistd.h>
int main()
{
int *p = sbrk(0);
printf("%p\n",p);
*p = 111;
}
gcc bak.c -o main
#./main
0x602000
段错误(吐核)
来自:https://blog.csdn.net/xiaoxiaopengbo/article/details/78206953
https://www.cnblogs.com/chengxuyuancc/p/3566710.html
[登录安全]ENCRYPT_METHOD MD5和ENCRYPT_METHOD SHA512的区别。
Unix/LinuxC技术 jackxiang 2017-6-22 23:32
背景:一般来讲Linux对明文登录用户的密码在CentOS里有多种,但是MD5长度在36位以下。容量被破解,正向算法、碰撞等,特别是那个万能Wifi钥匙,我去。CentOS5和CentOS6的想法是更安全,但为了兼容统一管理密码Shadow,批量刷一样的,往往会用MD5这种方式,但是被破解后也是很容易给被攻下的一种弱的加密验证方式。
当用户发出useradd命令时,useradd命令读取/ etc / default / useradd和/etc/login.defs并确定useradd的默认值。 要显示/ etc / defaults / useradd的值,请参阅显示useradd的默认值
#使用MD5或DES加密密码? 红帽默认使用MD5。
MD5_CRYPT_ENAB是的
ENCRYPT_METHOD MD5
当用户发出useradd命令时,useradd命令读取/ etc / default / useradd和/etc/login.defs并确定useradd的默认值。 要显示/ etc / defaults / useradd的值,请参阅显示useradd的默认值
#使用MD5或DES加密密码? 红帽默认使用MD5。
MD5_CRYPT_ENAB是的
ENCRYPT_METHOD MD5