技术奇客ITGeeker.net的博客

  • 2018-11-11我从苹果走向了华为 from iOS 2 android

    2018-11-11我从苹果走向了华为 from iOS 2 android

    还可以看看我当初为什么从android切换到ios

    什么是数码四件套?手机、手表、平板和笔记本。这个双11,从苹果换成了华为的有:

    1. iPhone 7 plus — Huawei Mate 20 X
    2. Apple Watch3 — Huawei Watch GT
    3. MacBookPro 2012 — Huawei Matebook X Pro

    仍没有更换的Apple设备及原因:

    1. Apple iPad,女儿所在的培训机构指定只能用iPad来安装他们的应用。
    2. Apple TV 4, 用来播放群晖的DS Video比较顺畅。但入手了谷歌的Chromecast 3白色版。

    换机原因:

    1. 谷歌的GSM框架不用刷机就能使用了。
    2. 苹果的iOS太封闭,可定制性比较差。
    3. 苹果的新品太贵了,性价比不高。
    4. 华为的新机性能强劲,创新功能比苹果多很多。

    改变不是因为纯粹的爱国,而是数码的理性选择,当然苹果今年新品的高定价推动了这一转变。

    ITGeeker技术奇客将在这篇博文里从技术角度讨论转换的原因及技术解决方案。比如:如何把iPhone的短信迁移到华为手机?如何在国行的华为手机安装谷歌框架?

    选择苹果还是安卓?

    其实也不能简单的说是系统的选择,而是手机品牌的选择。苹果可以代表ios,但华为代表的不仅仅是andriod,就像这次我选择的华为手表,用的就是华为自己开发的系统lite.

    不单单是系统的选择,还有品牌

    手机 | iPhone 7 Plus 2 Mate20 X

    从2009年入手G1开始,G2,G3,HTC的,三星的,一路追随谷歌android的脚步,直到大约5年前,投入了iphone的阵营。曾几何时,andriod手机速度慢,不稳定,应用市场混乱。但时至今日,一切都已改变,华为的andriod手机,速度流畅度一流,系统的稳定性也一日千里,应用市场丰富,各种设计创新不断,反而苹果的ios显得过于保守与封闭,创意匮乏,改进的只在自己的生态间的互通互联,只是与macos,watchos,tvos之间的互动有所增强,不过整体发展还是很慢。当然ios的应用数量,系统的稳定性自然还是很成熟,但系统的界面和外部和互联网的互动,AR/VR,以及AI智能化方面的功能非常有限,而且已经落后于市场。

    手机迁移涉及到:通讯录、短信、通话记录、日历、微信、和照片等。如果说最方便的方法,使用华为手机克隆软件,但我在克隆过程发现通讯录导入不完全,照片导入排序丢失的问题。

    首先还是完整备份一下你的旧iPhone,说不定哪天还要继续用呢,或者有些数据还需要找回来。用iCloud是个方法,但速度慢,空间要每月花钱买。iTune是个简单的办法,可以把你的iPhone完整的备份到个人电脑里。现在手机的容量越来越大,可能会涉及到电脑C盘空间不够的尴尬。ITGeeker技术奇客为你奉上如何把iTune的备份放到D盘

    通讯录迁移

    最完美的方式:iPhone的通讯录在iCloud上的,直接去iCloud导出通讯录为vcf格式,然后去Google的通讯录导入,同步到手机,这样还能使用谷歌的通讯录去重和智能推荐的功能。

    当然不具备登录Google的,可以导入到Outlook在同步到andoroid手机。

    短信迁移

    有点难度的事情。苹果很不开放,iCloud不提供导出功能,手机克隆也无法读取。

    需要工具:iTools,DB转换成XML格式和SMS Backup&Restore应用。

    1. 首先用iTools打开前面用iTune备份的文件
    2. 导出里面的sms.db文件
    3. 把sms.db转换成xml文件,可以在线转换可以用Web-Based在线转换,网址:https://isms2droid.com/#converter
    4. 把转换好的xml文件放到andorid手机里
    5. 安装SMS Backup&Restore应用到android手机
    6. 打开应用找到刚才的xml导入

    过程不需要太强的技术,只是有些繁琐需要细心。过程基本顺畅,可能会有部分短信回复不成功的提示,但基本应该没问题,毕竟短信都是些验证码为主的内容。真有特别重要的,自己复制保存到手机备忘录比较保险。

    通话记录迁移

    没有迁移,折腾这个没多大用。

    日历迁移

    建议还是iCloud导出,在导入到谷歌日历,这是最佳方式,不行就导入到Outlook在同步到android

    微信迁移

    如果你微信内容比较多,比如有15G左右的内容,用手机克隆的话,先准备好2-3个小时以上的时间吧,所以用微信官方的电脑端软件还是最方便的,大概需要1个多小时就差不多。引起这个原因就是微信的内容存储太碎片化,复制速度天慢。而且微信不支持有线连接到电脑备份,对手机的WIFI信号要求比较高,无线网络的稳定性直接影响效率。

    照片迁移

    取决于你的照片数量,苹果在这一块没有限制,也不敢限制。

    ,

  • 如何把iTune的备份放到D盘或非系统盘

    iPhone使用iCloud备份每月要交份子钱,速度又慢。如果本机iTune备份,经常会涉及系统盘空间不够的尴尬。吐槽一下,苹果不提供选择备份目录的选项,不知道出于何种目的,但Apple本来就喜欢这样折腾人。

    首先要找出iTune备份文件的目录,各个Windows版本,不同操作系统都不一样。Win10上最新的iTune12.9以上版本下载下来尽然不能安装,只能在Microsoft Store安装,看来微软开始发力APP商店了。

    如果您的 iTunes 是从 Microsoft Store 下载的,打开目录
    “%appdata%”或“%USERPROFILE%”

    其他的Windows 7或MacOs操作系统,去Apple官网查吧:https://support.apple.com/zh-cn/HT204215

    修改iTune备份目录

    1. 找到iTune备份目录后把Backup移动到D盘或其他比较空的盘。
    2. 以管理员身份运行CMD并使用mklink命令 (win10之前版本需要安装软件
      Junction来运行junction.exe)
    3. mklink/j “原始目录” “刚才移动到的目录”;举例:mklink/j “C:\Users\itgeeker\Apple\MobileSync\Backup” “D:\
      Backup”

    大功告成了,以后直接去新目录找备份文件吧。移动目录前记得先关闭iTune。

    mklink参数参考

    MKLINK [[/D] | [/H] | [/J]] Link Target
    /D 创建目录符号链接。默认为文件 符号链接。
    /H 创建硬链接而非符号链接。
    /J 创建目录联接。
    Link 指定新的符号链接名称。
    Target 指定新链接引用的路径

    ,

  • 群晖Synology NAS CLI如何添加PHP Module on DSM6.2

    群晖Synology NAS CLI如何添加PHP Module on DSM6.2

    ITGeeker技术奇客用群晖Synology安装了私有云服务Nextcloud,但升级的时候始终碰到缺少pho module的问题,尽管你已经在web station当中打勾了相关的modules,还是会提示缺少相关模块。例如:

    PHP module zip not installed.
    Please ask your server administrator to install the module.
    
    PHP module OpenSSL not installed.
    Please ask your server administrator to install the module.
    

    群晖的DSM6.2同时支持PHP7.0和PHP5.6,根据你要使用的版本,相对应的更改一下版本数字就可以了。

    查看PHP相关参数和配置

    php --ini

    编辑PHP config

    sudo vi /usr/local/etc/php70/php.ini

    替换php module的正确路径及添加需要激活的Modules

    For PHP7.0

    #更改
    extension_dir = "/usr/local/lib/php70/modules"
    #为(ITGeeker技术奇客提醒你检查您系统的正确路径)
    extension_dir = "/volume1/@appstore/PHP7.0/usr/local/lib/php70/modules"
    #添加modules
    extension =  posix.so
    extension =  zip.so
    extension =  openssl.so

    For PHP5.6

    #更改
    extension_dir = "/usr/local/lib/php56/modules"
    #为(ITGeeker技术奇客提醒你检查您系统的正确路径)
    extension_dir = "/volume1/@appstore/PHP5.6/usr/local/lib/php56/modules"
    #添加modules
    extension =  posix.so
    extension =  zip.so
    extension =  openssl.so

    Synology重启PHP

    理论上是不需要,群辉每次调用PHP Cli时会重新读取php.ini文件。如果你要重启webstation,可以用cmd命令重启或者去管理面板通过gui重新启动。

    可以先查询一下你的php版本名称:

    sudo -i #管理员权限才行
    synoservicecfg --list | grep -i PHP
    synoservice --restart pkgctl-PHP7.2
    #或者重启Webstation
    synoservice --restart pkgctl-WebStation
    , , ,

  • Zimbra 8.8.8自建yum升级源(Repository)on CentOS x64

    首先要确保你已经更新Python到2.7系列版本,然后安装了最新的pip 10.0以上版本,如果还没升级,请参看ITGeeker技术奇客指导文档:升级Python到2.7.15 on CentOS 6 x64

    安装Amazon网页服务命令

    yum install python-pip
    pip install awscli
    #如果python或pip未升级,可能会出错。

    创建放源文件的目录

    mkdir /var/repositories
    cd /var/repositories

    获取源的文件

    aws s3 sync s3://repo.zimbra.com/rpm/87 ./rpm/87 --no-sign-request --delete
    aws s3 sync s3://repo.zimbra.com/rpm/zv1 ./rpm/zv1 --no-sign-request --delete
    aws s3 sync s3://repo.zimbra.com/rpm/888patch ./rpm/888patch --no-sign-request --delete
    aws s3 sync s3://repo.zimbra.com/rpm/888patch-nw ./rpm/888patch-nw --no-sign-request --delete
    

    编辑Nginx配置

    vi /etc/nginx/conf.d/default.conf
    
    server {
    listen 80;
    listen 443 ssl;
    server_name www.itgeeker.net;
    # ssl_certificate /etc/nginx/certs/zimbra-wilcard.crt;
    # ssl_certificate_key /etc/nginx/certs/zimbra-wilcard.key;
    # ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    # ssl_ciphers HIGH:!aNULL:!MD5;
    ## Let your repository be the root directory
    root /var/repositories;
    
    ## Always good to log
    access_log /var/log/nginx/repo.access.log;
    error_log /var/log/nginx/repo.error.log;
    
    ## Prevent access to Reprepro's files
    location ~ /(db|conf) {
    deny all;
    return 404;
    }
    }
    #ITGeeker技术切开这里没有配置ssl,需要的请自行配置。相对应在客户机的Repository源文件链接要把https换成http
    service nginx restart
    

    关注一下硬盘空间,需要占用5-8G不等的空间

    df -h

    配置Cron自动执行源文件更新

    crontab -e
    
    30 3 * * * /usr/bin/aws s3 sync s3://repo.zimbra.com/rpm/87 /var/repositories/rpm/87 --no-sign-request --delete
    30 3 * * * /usr/bin/aws s3 sync s3://repo.zimbra.com/rpm/zv1 /var/repositories/rpm/zv1 --no-sign-request --delete
    30 3 * * * /usr/bin/aws s3 sync s3://repo.zimbra.com/rpm/888patch /var/repositories/rpm/888patch --no-sign-request --delete
    crontab -l
    service crond restar
    

    # 也可以用的时候手动更新

    aws s3 sync s3://repo.zimbra.com/rpm/87 /var/repositories/rpm/87 --no-sign-request --delete
    aws s3 sync s3://repo.zimbra.com/rpm/zv1 /var/repositories/rpm/zv1 --no-sign-request --delete
    aws s3 sync s3://repo.zimbra.com/rpm/888patch /var/repositories/rpm/888patch --no-sign-request --delete

    以下在你的Zimbra邮件服务器配置yum repository

    创建repo文件

    vi /etc/yum.repos.d/zimbra.repo
    
    [zimbra]
    name=Zimbra RPM Repository
    baseurl=http://www.itgeeker.net/rpm/87/rhel$releasever
    gpgcheck=1
    enabled=1 
    [zimbra-v1]
    name=Zimbra New RPM Repository
    baseurl=http://www.itgeeker.net/rpm/zv1/rhel$releasever
    gpgcheck=1
    enabled=1
    [zimbra-888-patch]
    name=Zimbra New RPM Repository
    baseurl=http://www.itgeeker.net/rpm/888patch/rhel$releasever
    gpgcheck=1
    enabled=1
    #注意:这里是http,因为前面nginx没有配置ssl 443端口
    

    导入源Key文件

    rpm --import https://files.zimbra.com/downloads/security/public.key

    测试是否成功

    yum search zimbra
    #成功的话会列出类似:
     zimbra-altermime.x86_64 : Zimbra's altermime build
     zimbra-amavis-logwatch.x86_64 : Zimbra's amavis-logwatch build
     zimbra-amavisd.x86_64 : Zimbra's amavisd build

  • 升级Python到2.7.15 on CentOS 6 x64

    Centos 6 自带的2.6版本队友有些情况总会出现各种错误,例如:

    File "/usr/lib/python2.6/site-packages/pip/_internal/index.py", line 526 
    {str(c.version) for c in all_candidates}, ^ 
    SyntaxError: invalid syntax

    明确你的Linux版本

    cat /etc/redhat-release

    安装依赖:

    yum groupinstall -y "Development tools"
    yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel

    下载最新版本并编译安装

    cd /tmp
    wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
    tar zxf Python-2.7.15.tgz
    cd Python-2.7.15
    ./configure
    make && make install

    #新版目录

    ll -tr /usr/local/bin/python*

    #系统自带老版本目录

    ll -tr /usr/bin/python*

    备份老版本命令,创建新版本软连接

    mv /usr/bin/python /usr/bin/python.old
    rm -f /usr/bin/python-config
    ln -s /usr/local/bin/python /usr/bin/python && ln -s /usr/local/bin/python-config /usr/bin/python-config && ln -s /usr/local/include/python2.7/ /usr/include/python2.7
    

    检查一下是否正确

    python --version

    为新版 Python 安装 setuptools

    wget https://bootstrap.pypa.io/ez_setup.py -O - | python
    easy_install pip

    然后就可以pip安装了

    pip install itgeeker

  • Etherpad install on Centos 7 x64

    Etherpad是谷歌收购的在线协作工具,谷歌在收购后做了开源,但更新较慢,而且周边的插件也几乎停止更新。当然原先的插件基本都还能用,而且功能强大。
    如果你只是为了方便,那就用腾讯文档或者石墨文档,毕竟是比较成熟的产品,如果你想自己控制并掌握一切,那么跟着ITGeeker技术奇客一起来安装服务器端吧。

    开源地址:https://github.com/ether/etherpad-lite

    安装依赖包,包括node.js

    yum install gzip git curl python openssl-devel && yum groupinstall "Development Tools"
    yum install -y nodejs

    获取etherpad代码

    cd /opt && git clone git://github.com/ether/etherpad-lite.git

    创建etherpad用户

    useradd etherpad && groupadd etherpad
    usermod -a -G etherpad etherpad

    创建systemd启动命令,并设置开机自动启动

    sudo vi /etc/systemd/system/etherpad.service:
    [Unit]
    Description=Etherpad-lite, the collaborative editor.
    After=syslog.target network.target
    
    [Service]
    Type=simple
    User=etherpad
    Group=etherpad
    WorkingDirectory=/opt/etherpad-lite
    # ExecStart=/usr/bin/nodejs /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
    ExecStart=/opt/etherpad-lite/bin/run.sh
    Restart=always # use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
    
    [Install]
    WantedBy=multi-user.target
    
    systemctl start etherpad.service
    systemctl enable etherpad.service

    如果碰到错误信息,可以尝试在etherpad目录运行

    npm cache clean --force

    手动命令行安装插件参考

    cd etherpad-lite
    npm install ep_

    然后重启Etherpad,插件就会被发现
    手动卸载插件

    npm uninstall ep_

    然后记得重启Etherpad

    Etherpad可以方便的插入到其它系统当中,这里有个sample供你参考(开头需加入<):

    iframe src="http://pad.test.de/p/123" width="600" height="400">If you cut and paste this into any webpage (between the body tags) then etherpad-lite will 'magically' appear.Example
    iframe src="http://pad.test.de/p/123?showChat=false&showLineNumbers=false" width="600" height="400">

奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4