作者归档:Neil

centos 6 如何安装 socat

由于socat 并没有在 centos 6 的默认源中. 无法直接安装.

有两个方法可以安装.

第一: 可以自己下载并安装这两个软件包:

  1. https://centos.pkgs.org/6/centos-x86_64/compat-readline5-5.2-17.1.el6.x86_64.rpm.html
  2. https://centos.pkgs.org/6/epel-x86_64/socat-1.7.2.3-1.el6.x86_64.rpm.html

第二: 可以添加源,然后yum 安装.

curl http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo > /etc/yum.repos.d/convirt.repo

yum update
yum install socat

opensuse:42.1 zypper 安装软件错误

zypper update 时出现以下错误:

bash-4.2# zypper update -y
Retrieving repository 'NON-OSS' metadata ---------------------------------------------------------------------------------------------------[\]
File '/media.1/media' not found on medium 'http://download.opensuse.org/distribution/leap/42.1/repo/non-oss/'

Abort, retry, ignore? [a/r/i/? shows all options] (a): a
Retrieving repository 'NON-OSS' metadata ...............................................................................................[error]
Repository 'NON-OSS' is invalid.
[non-oss|http://download.opensuse.org/distribution/leap/42.1/repo/non-oss/] Valid metadata not found at specified URL
Please check if the URIs defined for this repository are pointing to a valid repository.
Warning: Skipping repository 'NON-OSS' because of the above error.
Retrieving repository 'OSS' metadata -------------------------------------------------------------------------------------------------------[|]
File '/media.1/media' not found on medium 'http://download.opensuse.org/distribution/leap/42.1/repo/oss/'

Abort, retry, ignore? [a/r/i/? shows all options] (a): a
Retrieving repository 'OSS' metadata ...................................................................................................[error]
Repository 'OSS' is invalid.
[oss|http://download.opensuse.org/distribution/leap/42.1/repo/oss/] Valid metadata not found at specified URL
Please check if the URIs defined for this repository are pointing to a valid repository.
Warning: Skipping repository 'OSS' because of the above error.

是因为 ossnon-oss 源无效了. 只需要移除这两个源即可.

zypper rr OSS NON-OSS

pfsense 可以直接安装 freebsd 的软件包

pfsense 可以手动安装 freebsd 的软件包. 只需要三步.
1. 在这个页面搜索并复制软件包的链接: https://pkg.freebsd.org/freebsd:10:x86:64/latest/All/
2. 执行 pkg add:

pkg add https://pkg.freebsd.org/freebsd:10:x86:64/latest/All/socat-1.7.3.2_2.txz
  1. 执行 rehash
rehash

参考资料:
1. https://forum.pfsense.org/index.php?topic=46116.0
2. https://doc.pfsense.org/index.php/Installing_FreeBSD_Packages

c++ 中的 L 宏到底是什么

c++ 中写宽字符串常量前需要带字母L:

L"hello world"

这个 L 是宏吗. 为什么没有圆括号.

这里有两个解释:

https://stackoverflow.com/questions/13379451/how-is-l-macro-defined

https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/18829987-acaf-49f6-a63c-14fdb9793a4d/ltext-macro-recognized-as-const-char-in-mfc-application?forum=vclanguage

简单的说, L 不是宏. 而是一个编译器定义的前缀. 其作用相当于用于浮点数的 f 后缀:

1.34f

只是一个是前缀, 一个是后缀而已. 编译器会自动识别.

ubuntu 的网卡名字 变成了 ens33

很久以前就注意到 ubuntu 的 网卡名字不再是 eth0 了.
这里有一个争论 http://opensuse-factory.opensuse.narkive.com/rGGZFhpR/13-1-why-network-eth0-is-named-instead-ens33

这里有正式的解释: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

简单的来讲, eth0 的名字是内核取的, 而这个名字是受驱动程序的先后顺序决定的. 多个网卡的话, 每次重启 ethx 后面的 数字可能会随机变化.
这也是改名的根本原因.

改名是为了让名字固定下来. 这个名字是 systemd 取的, 来自主板上端口顺序. 所以相对固定.

当然还有其他好处若干. 请阅读上面的链接.

如何 显示 cpp 文件的 include 树形结构

在排除一下 cpp 编译错误时, 可能需要搞清楚文件包含关系.
linux:

gcc  -M showtime.c  my.cpp

windows:

cl.exe  /showIncludes  my.cpp

参考:

  1. https://stackoverflow.com/questions/5834778/how-to-tell-where-a-header-file-is-included-from
  2. https://stackoverflow.com/questions/1137966/displaying-the-include-hierarchy-for-a-c-file-in-visual-studio

如何挂载 lvm 分区

查看 lvm 信息

```sh

lvdisplay

--- Logical volume ---
LV Path /dev/system-dblti/root
LV Name root
VG Name system-dblti
LV UUID NhTMSk-tTvl-Bj4V-7kjv-xP4N-8T9P-wtkSGb
LV Write Access read/write
LV Creation host, time dedie, 2015-12-21 14:28:10 +0100
LV Status available
# open 1
LV Size 1,82 TiB
Current LE 476631
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0

```

然后挂载:

```sh
mount /dev/system-dblti/root /mnt
```

删除 Intel 集成显卡的桌面右键菜单

Intel 集成显卡驱动会自动在桌面的右键菜单添加选项:

十分讨厌, 对于这种一百年用不上的功能给我加到桌面菜单里面, 真是想不通.

可以通过修改注册表简单的删除它.

下载这个注册表项, 并运行: https://www.tenforums.com/attachments/tutorials/19110d1431740240-remove-intel-hd-graphics-desktop-context-menu-windows-remove_intel_graphics_control_panel_from_desktop_context_menu.reg

参考地址:
https://www.tenforums.com/tutorials/6088-remove-intel-hd-graphics-desktop-context-menu-windows.html

freebsd 使用 Ntpdate 和 Ntpd 自动更新系统时间

由于某些原因,系统时间有时候不对了.
freebsd 如何同步时间.

  1. 手动同步:
ntpdate -b pool.ntp.org

几秒钟后, 时间就同步了.

  1. 启动系统 Ntpd 服务, 自动同步:
    编辑系统的文件: /etc/ntpd.conf
server pool.ntp.org
driftfile /etc/ntp.drift
logfile /var/log/ntpd.log

然后编辑: /etc/rc.conf
加入一行:

ntpd_enable="YES"
ntpdate_enable="YES"

启动ntpd 服务:

service ntpd start

参考:
1. http://www.surlyjake.com/blog/2008/11/17/freebsd-time-updates-with-ntpdate-and-ntpd/
1. https://www.cyberciti.biz/tips/freebsd-timeclock-synchronization-with-ntp-server.html

Linux 下如何保存并恢复 firefox 的设置

要自动化firefox的一些操作, 除了 firefox 的 一些命令行参数: http://kb.mozillazine.org/Command_line_arguments 外, 可以修改一份 firefox 的设置并保存, 然后在新的机器上,只需要先恢复设置, 再启动 firefox.

firefox 的设置在一个叫 profile 的 文件夹中. 文件夹位置在这里:
http://kb.mozillazine.org/Profile_folder

只需要保存这个目录, 然后复制到新机器的相同位置即可.