广告

本站里的文章大部分经过自行整理与测试

2017年10月30日星期一

Linux - 从源码编译 RPM

1) 在 Ubuntu 安装 rpmbuild 和 rpmlint
$ sudo apt install rpm rpmlint

* 在 Fedora, 可以用 rpmrebuild -p -e xxx.rpm 来得到 spec 文件

2) 准备源码 (tar.gz) 与 SPEC 文件

例子:
https://github.com/yomun/youdao-dict-rpm/blob/master/youdao-dict.temp.spec

3) 检查 SPEC 文件上编写是否有错误

$ rpmlint youdao-dict.spec

4)编译 RPM

将源码与 SPEC 分别放到 ~/rpmbuild/SOURCES 和 ~/rpmbuild/SPEC

$ fakeroot rpmbuild -ba youdao-dict.spec --target x86_64

5) 安装 rpm
$ sudo rpm -i youdao-dict-1.1.1-0.x86_64.rpm

例子:
https://github.com/yomun/youdao-dict-rpm/raw/master/build.sh

Linux - DEB 与 RPM 包间的转换

1) 安装 alien

$ su
$ apt install alien

2) 转换 deb -> rpm

$ alien -r squid_3.1.23-10_amd64.deb

3) 转换 rpm -> deb

$ alien squid-3.1.23-9.el6.x86_64.rpm

2017年10月28日星期六

Python 打包 / 上传 / 安装 / 卸载

1) 制作

$ tree

$ eds
$ ├── edssdk
$ │   ├── help.py
$ │   └── __init__.py
$ └── setup.py

$ mkdir -p eds/edssdk

$ cd eds/edssdk

1.1) __init__.py


$ touch __init__.py


1.2) help.py 模块


$ cat help.py


#!/usr/bin/env python

def sum(*values):

    s = 0
    for v in values:
        i = int(v)
        s = s + i
    print s

def output():

    print 'http://jasonmun.blogspot.my'

1.3) setup.py


$ cat setup.py


#!/usr/bin/env python

from setuptools import setup, find_packages


setup(

    name = "edssdk",
    version = "0.0.1",
    keywords = ("pip", "datacanvas", "eds", "jason"),
    description = "eds sdk",
    long_description = "eds sdk for python",
    license = "MIT Licence",

    url = "http://jasonmun.blogspot.my",

    author = "Jason Mun",
    author_email = "jason@yahoo.com",

    packages = find_packages(),

    include_package_data = True,
    platforms = "any",
    install_requires = []
)

2) 打包


$ python setup.py bdist_egg     # 生成类似 edssdk-0.0.1-py2.7.egg,支持 easy_install

$ python setup.py sdist         # 生成类似 edssdk-0.0.1.tar.gz,支持 pip

3) 注册 PyPI 包 (注册户口, 以上传到 PyPI)


$ python setup.py register

$ python setup.py sdist upload

4) 测试


# easy_install 来自 setuptools (pip list | grep setuptools)

$ sudo easy_install edssdk-0.0.1-py2.7.egg
$ pip list | grep edssdk
$ python -c "from edssdk import help; help.sum(3,5);help.output();"
$ sudo easy_install -m edssdk

$ sudo pip install edssdk

$ pip list | grep edssdk
$ python -c "from edssdk import help; help.sum(3,5);help.output();"
$ sudo pip uninstall edssdk

CentOS - CURL - HTTP1.1 改为 HTTP2

1) 准备

$ sudo yum -y groupinstall "Development Tools"
$ sudo yum -y install libev libev-devel zlib zlib-devel openssl openssl-devel git
$ sudo yum -y install jansson-devel libxml2-devel libevent-devel python-devel

$ wget https://c-ares.haxx.se/download/c-ares-1.12.0.tar.gz -O /tmp/c-ares.tar.gz
$ mkdir -p /tmp/c-ares
$ tar -zxvf /tmp/c-ares.tar.gz -C /tmp/c-ares --strip-components=1
$ cd /tmp/c-ares
$ ./configure --libdir=/usr/lib64
$ make
$ sudo make install

$ git clone https://github.com/jemalloc/jemalloc.git
$ cd jemalloc
$ ./autogen.sh
$ make
$ sudo make install

2) nghttp2

$ cd ~/Downloads

$ git clone https://github.com/tatsuhiro-t/nghttp2.git
$ cd nghttp2
$ autoreconf -i
$ automake
$ autoconf
$ ./configure
$ make
$ sudo make install

3) CURL

$ cd ~/Downloads

$ git clone https://github.com/bagder/curl.git
$ cd curl
$ ./buildconf
$ ./configure --with-nghttp2=/usr/local --with-ssl
$ make 
$ sudo make install

4) 将 /usr/local/lib 写入 /etc/ld.so.conf.d/custom-libs.conf

$ su root
$ echo '/usr/local/lib' > /etc/ld.so.conf.d/custom-libs.conf
$ ldconfig
$ ldconfig -p| grep libnghttp2

5) 测试

$ su user
$ cd ~/Downloads/curl

$ ./src/curl -V
$ ./src/curl --http2 -I https://nghttp2.org/

Ubuntu - CURL - HTTP1.1 改为 HTTP2

1) 检测 CURL 是用 HTTP 1.1 还是 HTTP 2

$ curl -I https://nghttp2.org/

HTTP/2 200

2) 如果是 HTTP1.1

2.1) 编译工具

$ sudo apt install git g++ make binutils autoconf automake autotools-dev libtool pkg-config
$ sudo apt install zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev 
$ sudo apt install libjansson-dev libjemalloc-dev cython python3-dev python-setuptools

2.2) nghttp2

$ git clone https://github.com/tatsuhiro-t/nghttp2.git
$ cd nghttp2
$ autoreconf -i
$ automake
$ autoconf
$ ./configure
$ make
$ sudo make install

2.3) CURL

$ wget https://curl.haxx.se/download/curl-7.56.1.tar.bz2
$ tar -xvjf curl-7.56.1.tar.bz2
$ cd curl-7.56.1
$ ./configure --with-nghttp2=/usr/local --with-ssl
$ sudo make
$ sudo make install

2.4) 将 /usr/local/lib 写入 /etc/ld.so.conf.d/local.conf

$ echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
$ ldconfig

2.5) 检测

$ curl -I https://nghttp2.org/

3) 嫌麻烦? 一个脚本, 搞定..

$ wget https://github.com/yomun/linux-init/raw/master/ubuntu/curl-http2.sh
$ sudo bash curl-http2.sh

2017年10月27日星期五

WireShark + Google Chrome - SSL 解码

1) 安装 WireShark 和 Google Chrome

$ sudo apt install wireshark
http://jasonmun.blogspot.my/2017/09/wireshark-dofile-has-been-disabled-due.html

http://jasonmun.blogspot.my/2016/05/linux-chrome.html

2) Google Chrome 运行添加系数

$ sudo gedit /usr/share/applications/google-chrome.desktop

Exec 处加入系数
-ssl-key-log-file=/home/${USER_ID}/Documents/ssl_key.log

3) 添加系统系数

$ export SSLKEYLOGFILE=/home/${USER_ID}/Documents/ssl_key.log
$ printenv SSLKEYLOGFILE

4) 打开 WireShark

Wireshark - Edit - Preferences - Protocols - SSL
- (Pre)-Master-Secret log filename
输入
/home/${USER_ID}/Documents/ssl_key.log

# 可以用这个脚本取代以上步骤 2-3 (用之前, 需修改里面的 USER_ID 系数)
$ wget https://github.com/yomun/linux-init/raw/master/soft/ssl-wireshark-set.sh
$ sudo bash ssl-wireshark-set.sh

Failed to load module "libcanberra-gtk-module.so"

在 Ubuntu 17.10 安装 VMware 时,
出现以下错误

Gtk-WARNING **: Failed to load module "libcanberra-gtk-module.so": 
libcanberra-gtk-module.so: cannot open shared object file: No such file or directory

$ locate libcanberra-gtk-module.so
/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so

$ su

$ echo '/usr/lib/x86_64-linux-gnu/gtk-3.0/modules' > /etc/ld.so.conf.d/gtk-3.0.conf
$ ldconfig

Ubuntu - 人脸识别


1) 安装

$ sudo apt install git cmake python-pip
$ sudo apt install libboost-all-dev

$ git clone https://github.com/davisking/dlib.git
$ cd dlib
$ mkdir build
$ cd build
$ cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1
$ cmake --build .
$ cd ..
$ python setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA

$ pip install face_recognition

2) 运行

known_people/ 文件夹放人头照
unknown_pic/ 文件夹放一些需要辨认的照片

$ face_recognition known_people/ unknown_pic/

2017年10月26日星期四

Linux - 编译 / 加载 / 卸载 驱动模块

1) 源码 hello.c

$ sudo gedit hello.c

#include <linux/init.h>
#include <linux/module.h>

static int hello_init(void)

{
printk(KERN_INFO " Hello World enter\n");
return 0;
}

static void hello_exit(void)

{
printk(KERN_INFO " Hello World exit\n ");
}

module_init(hello_init); //向系统注册模块加载函数 
module_exit(hello_exit); //向系统注册模块卸载函数

MODULE_AUTHOR("Jason <abc@gmail.com>"); //模块作者等信息声明,可选

MODULE_LICENSE("Dual BSD/GPL"); //模块许可证声明
MODULE_DESCRIPTION("A simple Hello World Module"); //模块描述声明,可选
MODULE_ALIAS("a simplest module"); //模块别名的声明,可选

2) Makefile 源码 (以下源码 make -C 前用 Tab 一次, 不然编译时会出现错误)

KVERS := $(shell uname -r)
PWD := $(shell pwd)

obj-m += hello.o


default:

make -C /lib/modules/$(KVERS)/build M=$(PWD) modules

3) 编译 (编译后, 除了 hello.c 和 Makefile, 会多出另外 6 个文件)
$ make

4) 加载模块
$ sudo insmod ./hello.ko

$ cat /var/log/syslog | grep "Hello World"
Oct 26 14:00:00 ubuntu kernel: [15724.222701]  Hello World enter

5) 卸载模块
$ sudo rmmod ./hello.ko

$ cat /var/log/syslog | grep "Hello World"
Oct 26 15:00:00 ubuntu kernel: [15724.222701]  Hello World exit

2017年10月25日星期三

Ubuntu 17.10 - CrossOver

如果软件要显示中文, 如 QQ

$ cd /opt/cxoffice/share/wine/fonts

$ mv ume-ui-gothic.ttf ume-ui-gothic.ttf.backup
$ cp /usr/share/fonts/truetype/wqy/wqy-microhei.ttc .

如果要 CrossOver 里的 Wine 显示中文

$ sudo gedit /usr/share/applications/cxmenu-cxoffice-0-29ra4ke-CrossOver.desktop

Exec=env LC_ALL=zh_CN.UTF-8 /opt/cxoffice/bin/crossover %u

sudo 免输入密码

每次打开终端, 用 sudo 都要输入密码,
是不是很麻烦?

$ su
以你登入的 ID 为文件名, 输入以下

$ gedit /etc/sudoers.d/<用户ID>

<用户ID>   ALL=(ALL) NOPASSWD: ALL

储存, 关闭终端.. 然后再打开终端测试看看..

2017年10月24日星期二

Ubuntu 17.10 - 用 NVidia, 需将其设置为 xOrg

安装 nvidia-384 后, 在 

$ sudo gedit /etc/gdm3/custom.conf

将 # WaylandEnable=false 前面的 # 拿走, 储存, 重启..

因 nvidia 现不支持 Wayland 为显示服务器
(但 Ubuntu 17.10 预设用 Wayland), 所以必须要改用 xOrg

Ubuntu 17.10 - 移除 Ubuntu Dock

移除 Ubuntu Dock
$ sudo apt-get remove gnome-shell-extension-ubuntu-dock

启动 Hot Corners (左上角)
$ gsettings set org.gnome.shell enable-hot-corners true

Ubuntu 17.10 - 网易云音乐 - 不能打开

在 Ubuntu 17.10 打开 网易云音乐
会出现如下错误

/usr/share/themes/Ambiance/gtk-2.0/apps/mate-panel.rc:30: 

error: invalid string constant "murrine-scrollbar", expected valid string constant

解决方法

$ sudo gedit /usr/share/applications/netease-cloud-music.desktop

Exec=netease-cloud-music %U --no-sandbox

Kubuntu 17.10

1) 出现警告(这个应该没什么影响): Unable to locate theme engine in module_path: "adwaita"

解决方法

$ sudo apt install gnome-themes-standard

2) 出现错误: failed to retrieve property `gtk-primary-button-warps-slider' of type `gboolean'

解决方法

$ vi ~/.gtkrc-2.0

$ gtk-primary-button-warps-slider=false 改为 gtk-primary-button-warps-slider=0

2017年10月23日星期一

CentOS - 编译新的内核

1) 下载与解压内核源码

https://www.kernel.org/

$ su

$ mkdir -p /app/tmp
$ cd /app/tmp

$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.13.9.tar.xz
$ tar xvJf linux-4.13.9.tar.xz

$ cd linux-4.13.9

2) 准备配置文件.config (拿 /boot/config 文件做 template), 备份 /boot/grub2/grub.cfg

$ cp /boot/config-3.10.0-514.el7.x86_64 /app/tmp/linux-4.13.9/.config
$ cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

3) 安装编译工具

$ yum groupinstall "development tools"
$ yum install ncurses-devel
$ yum install openssl-devel -y

4) 配置内核选项

$ cd /app/tmp/linux-4.13.9
$ make menuconfig

5) 开始编译内核

$ make -j 8

6) 安装模块与内核相关文件

$ make modules_install
$ make install

$ ls /boot

新的文件:
/boot/config-4.13.9-*.el7.x86_64
/boot/initramfs-4.13.9-*.img
/boot/symvers-4.13.9-*.el7.x86_64.gz
/boot/System.map-4.13.9-*.el7.x86_64
/boot/vmlinuz-4.13.9-*.el7.x86_64

更改的文件:
/boot/grub2/grub.cfg

7) 卸载

a) 删除 /lib/modules 目录下不需要的内核库文件
b) 删除 /usr/src/kernels 目录下不需要的内核源码
c) 删除 /boot 目录下启动的内核和内核映像文件
d) 更改 grub 配置文件, 删除不需要的内核启动列表 (以上已备份了)
$ mv /boot/grub2/grub.cfg.backup /boot/grub2/grub.cfg

2017年10月22日星期日

Linux 撤除乱码或中文文件名 (inode)

先找到文件或文件夹的 inum 值
$ ll -i

1701817 -rw-rw-r--   1 <userID> <userID>    87 Oct  4 13:26 格子文件名.sh

然后可以用 find 找出, 而且撤除
1) $ find ./* -inum 1701817 -delete
2) $ find ./* -inum 1701817  -exec rm -i {} \; 
3) $ find ./* -inum 1701817  -exec rm -f {} \;
4) $ find ./* -inum 1701817  | xargs rm -f
5) $ rm `find ./* -inum 1701817`

Linux - Google Chrome - GPU 功能全打开

打开 Google Chrome, 然后浏览 chrome://gpu
检查之..

如果发现 Graphics Feature 没全被打开,
你可以下载这个 BASH 运行.. (脚本会不时更新)

$ wget https://github.com/yomun/chrome-gpu/raw/master/chrome.sh
$ sudo bash chrome.sh

然后再检查 chrome://gpu, 功能应该全打开了

Graphics Feature Status
---------------------------------------------------------
CheckerImaging: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated

VirtualBox - Linux 虚拟机安装 VBoxGuestAdditions.iso

https://github.com/yomun/vboxguestadd

在 Linux 虚拟机里, 下载脚本 virtualbox.sh

用之前, 需修改以下系数
VBOX_VER="VirtualBox 版本"
USER_ID="在 LInux 虚拟机的户口 ID"

然后才在 Linux 虚拟机里运行 virtualbox.sh
(脚本会帮你下载 VBoxGuestAdditional.iso, 然后安装与设置)..

支持 Linux 分发版:
antergos
centos
debian
elementary
fedora
linux mint
manjaro
openSUSE
solus
ubuntu
zorin

可以关闭的 Linux 系统服务

以下服务可以考虑关闭

1) 是 AccountsService 的一部分, AccountsService 允许程序获得
或操作用户账户信息 accounts-daemon
2) 提供了一个无密码的 root shell, 用于帮助调试 systemd: debug-shell
3) 提供布莱叶盲文设备支持 brltty
4) 开机报告错误 apport
5) 拨号连接网络 pppd-dns
6) 蓝牙服务 bluetooth
7) 打印服务 cups
8) 扫描服务 saned
9) 用于零配置网络发现, 使电脑超容易发现网络中打印机或其他的主机 avahi-daemon
10) 该服务是一个被 dbus 激活的守护进程, 用于提供移动宽频 ModemManager

以下脚本会不时更新

$ wget https://github.com/yomun/linux-init/raw/master/linux/stop-service.sh
$ sudo bash stop-service.sh

YouTube-DL GUI


https://github.com/MrS0m30n3/youtube-dl-gui

是以 youtube-dl 为基础做出来的界面

$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo apt update
$ sudo apt install youtube-dlg



1) youtube-dlg 编译与安装

$ sudo apt install youtube-dl
$ sudo apt install build-essential libgtk-3-dev
$ sudo apt install pip gettext python-twodict python-wxgtk3.0

$ sudo pip install youtube-dlg

2) 运行

$ sudo youtube-dl-gui

3) 其它

$ sudo gedit /usr/share/applications/youtube-dlg.desktop

[Desktop Entry]
Version=1.0
Type=Application
Name=YouTube DL GUI
Exec=sudo youtube-dl-gui
Icon=youtube-dl-gui
Categories=Network;
Comment=youtube-dl GUI

Linux - SQL Server 2017

安装 MsSql
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
$ add-apt-repository "https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list"
$ apt-get update
$ apt-get install -y mssql-server

第一次设置 ( Sql Server 有8个版本可选择)
$ /opt/mssql/bin/mssql-conf setup

查看是否在运行
$ systemctl status mssql-server

安装 mssql-tools 和 unixodbc-dev
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
$ add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
$ apt-get update
$ apt-get install -y mssql-tools unixodbc-dev

设置环境
$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
$ source ~/.bashrc

连接与创建数据库 (例子)
$ sqlcmd -S localhost -U SA -P '<password>
1> CREATE DATABASE TestDB
2> GO
退出
1> QUIT

卸载
$ apt-get remove mssql-server
$ sudo rm -rf /var/opt/mssql/

LInux - 录制/回放终端会话 TermRecord

想录制终端的操作过程?
TermRecord 可以做到

https://github.com/theonewolf/TermRecord

# 安装
$ sudo pip install TermRecord 

# 开始录制
$ TermRecord -o /tmp/session.html

# 停止录制
$ exit

MultiBootUSB - 安装多个 Linux


MultiBootUSB 自由/开源跨平台, 
允许你创建有多个 Linux 发行版的 U 盘

它还支持在任何时候可卸载任何发行版, 
以便回收 U 盘上的空间, 安装其它发行版

https://github.com/mbusb/multibootusb/releases/

Ubuntu - 用 Anbox 运行 Android App

https://github.com/anbox/anbox

1) 安装 (运行 snap, 需要用原安装的内核)

$ sudo snap install --edge --devmode anbox

$ sudo add-apt-repository -y ppa:morphis/anbox-support
$ sudo apt update
$ sudo apt install -y anbox-modules-dkms

2) 运行 (NVidia 不行, 要用 Intel, 
如果有安装 NVIDIA X Server Settings, 将 PRIME Profiles 改为 Intel)

$ anbox session-manager

3) 安装 apk (必须是 ARM 结构)

$ sudo apt install android-tools-adb android-tools-fastboot
$ adb install name-of.apk

https://www.apkmirror.com/

2017年10月21日星期六

Ubuntu - GenyMotion 安装

1) 下载 genymotion-2.8.0-linux_x64.bin
http://pan.baidu.com/s/1eRGyCP8 密码:wujt

2) 下载 2.8.0 文件
http://pan.baidu.com/s/1nuGQsJZ 密码:sodz

3) 安装 virtualBox
$ sudo apt update
$ sudo apt install virtualbox

4) 安装 genymotion
$ sudo ./genymotion-2.8.0-linux_x64.bin

5) 备份
$ cd /opt/genymobile/genymotion
$ sudo mv genymotion genymotion.orig
$ sudo mv genyshell genyshell.orig
$ sudo mv player player.orig
$ sudo mv libxcb.so.1 libxcb.so.1.orig
$ sudo mv libdrm.so.2 libdrm.so.2.orig

6) 解压 genymotion.zip, 代替 /opt/genymobile/genymotion/
genymotion
genyshell
player

$ sudo chmod 755 *
$ sudo chown root:root *
$ sudo cp * /opt/genymobile/genymotion

7) 运行
$ /opt/genymobile/genymotion/genymotion

8) INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 错误
http://pan.baidu.com/s/1i5MExTj 密码:5h1m

下载 Genymotion-ARM-Translation.zip, 将这个文件拖到模拟器上安装

9) 重启
重启后, 即可拖动 apk 安装到模拟器

2017年10月13日星期五

wine - TIM

1) 安装 wine + winetricks

http://jasonmun.blogspot.my/2017/10/wine-microsoft-office-2013-32-bit.html

2) 创建 ~/.wine/TIM

$ env LC_ALL=zh_CN.UTF-8 WINEPREFIX=~/.wine/TIM WINEARCH=win32 winecfg

将 App -> Windows ver. -> 改为 Windows 7 (如果中英文显示有问题, 可以先跳过)

3) wine 和 winetricks 如果显示的是中文 (需要安装字型)

$ cp /usr/share/fonts/truetype/wqy/wqy-microhei.ttc ~/.wine/TIM/drive_c/windows/Fonts/
$ sudo chown <userID>:<userID> ~/.wine/TIM/drive_c/windows/Fonts/wqy-microhei.ttc

$ sudo gedit /wqy.reg

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"="wqy-microhei.ttc"
"Microsoft Sans Serif"="wqy-microhei.ttc"
"MS Sans Serif"="wqy-microhei.ttc"
"Tahoma"="wqy-microhei.ttc"
"Tahoma Bold"="wqy-microhei.ttc"
"SimSun"="wqy-microhei.ttc"
"Arial"="wqy-microhei.ttc"
"Arial Black"="wqy-microhei.ttc"

$ WINEPREFIX=~/.wine/TIM WINEARCH=win32 wine regedit

将 /wqy.reg 导入到注册表中后退出, 然后再运行以上看看, 
这时候应该可以正常显示中英文了

$ WINEPREFIX=~/.wine/TIM WINEARCH=win32 winecfg

将 App -> Windows ver. -> 改为 Windows 7

4) 需要的字型和 library

$ WINEPREFIX=~/.wine/TIM WINEARCH=win32 winetricks

安装字体: corefonts cjkfonts
安装 Windows DLL 或组件: winetricks msxml6 riched20 riched30 vcrun6

5) 加入 [函数库] - [DLL 顶替] - [新增函数库顶替]

$ WINEPREFIX=~/.wine/TIM WINEARCH=win32 winecfg

msxml6
riched20
riched32

6) 创建连接文件 TIM.sh

$ sudo gedit ~/.wine/TIM/TIM.sh

#!/usr/bin/env bash

EXEPATH=$(cd `dirname $0`;pwd)

export WINEPREFIX=$EXEPATH
export WINEDEBUG=-all
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

cd "$EXEPATH/drive_c/Program Files/Tencent/TIM/Bin"
wine TIM.exe

给予执行权限
$ sudo chmod +x TIM.sh
$ bash TIM.sh

2017年10月11日星期三

wine - Adobe Photoshop CS6

尝试安装了 Adobe Photoshop CC 和 Adobe Photoshop CC 2017
但用得都有些问题存在.. 

1) 安装 wine + winetricks

$ sudo add-apt-repository ppa:wine/wine-builds
$ sudo apt-get update
$ sudo apt-get install --install-recommends winehq-devel

$ wget https://dl.winehq.org/wine-builds/Release.key
$ sudo apt-key add Release.key
$ sudo apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/
$ sudo apt-get update
$ sudo apt-get install --install-recommends winehq-stable

$ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ chmod +x winetricks
$ sudo cp winetricks /usr/local/bin

2) 创建 ~/.wine/photoshopCS6

$ env LC_ALL=en_US.UTF-8 WINEPREFIX=~/.wine/photoshopCS6 WINEARCH=win32 winecfg

3) 选择默认的 wine 容器 (default wineprefix), 安装 Windows DLL 或组件里的..

$ env LC_ALL=en_US.UTF-8 WINEPREFIX=~/.wine/photoshopCS6 WINEARCH=win32 winetricks

atmlib
gdiplus
gdiplus_winxp
msxml3
msxml6
vcrun2005 - 2015

4) wine 和 winetricks 如果显示的是中文 (需要安装字型)

$ cp /usr/share/fonts/truetype/wqy/wqy-microhei.ttc ~/.wine/photoshopCS6/drive_c/windows/Fonts/
$ sudo chown <userID>:<userID> ~/.wine/photoshopCS6/drive_c/windows/Fonts/wqy-microhei.ttc

$ sudo gedit /wqy.reg

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"="wqy-microhei.ttc"
"Microsoft Sans Serif"="wqy-microhei.ttc"
"MS Sans Serif"="wqy-microhei.ttc"
"Tahoma"="wqy-microhei.ttc"
"Tahoma Bold"="wqy-microhei.ttc"
"SimSun"="wqy-microhei.ttc"
"Arial"="wqy-microhei.ttc"
"Arial Black"="wqy-microhei.ttc"

$ env LC_ALL=en_US.UTF-8 WINEPREFIX=~/.wine/photoshopCS6 WINEARCH=win32 wine regedit

将 /wqy.reg 导入到注册表中后退出, 然后再运行以上看看, 
这时候应该可以正常显示中英文了

$ env LC_ALL=en_US.UTF-8 WINEPREFIX=~/.wine/photoshopCS6 WINEARCH=win32 winecfg

去 winecfg 从 windows XP 转成 windows 7

5) 安装 Adobe PhotoShop CS6 (32 bit)

$ env LC_ALL=en_US.UTF-8 WINEPREFIX=~/.wine/photoshopCS6 WINEARCH=win32 wine "/home/{USER}/Downloads/photoshop CS6/Setup.exe"