修改FTP用户密码

记得ftp账号,但不记得密码怎么办?

由于需要在wordpress站点里安装插件,但是ftp密码忘记了,所以需要修改ftp密码。

  1. 切换到root用户下:sudo su
  2. 更新密码:passwd bobo(ftp用户名),可以先cat /etc/shadow查看一下此用户是否存在
  3. 提示:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

修改完成。

debugfs使用简述

知道具体文件,查看文件所存放的block号:
  1. 比如我现在要查看/home/sting/.Xauthority文件所占的block号,df -h 查看分区对应的系统目录
    Filesystem      Size  Used Avail Use% Mounted on
    udev            3.9G     0  3.9G   0% /dev
    tmpfs           789M   42M  748M   6% /run
    /dev/sda1        47G   32G   13G  72% /
    tmpfs           3.9G  423M  3.5G  11% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/loop2      207M  207M     0 100% /snap/ubuntu-app-platform/34
    /dev/loop1       82M   82M     0 100% /snap/core/4206
    /dev/loop0       82M   82M     0 100% /snap/core/4017
    /dev/loop4       62M   62M     0 100% /snap/go/1473
    /dev/loop3       82M   82M     0 100% /snap/core/4110
    /dev/loop5       11M   11M     0 100% /snap/ipfs/335
    /dev/sda2       465M  396M   41M  91% /boot
    /dev/sda5       179G   59G  112G  35% /home
    /dev/sda4       976M  3.5M  972M   1% /boot/efi
    tmpfs           789M  140K  789M   1% /run/user/1000
    
  2. sudo debugfs /dev/sda5
    [sting@sting-snds]
    [:~]$ sudo debugfs /dev/sda5
    [sudo] password for sting:
    debugfs 1.42.13 (17-May-2015)
    debugfs:  pwd
    [pwd]   INODE:      2  PATH: /    # 由上一步所知,这时你所在的目录其实在/home下
    [root]  INODE:      2  PATH: /
    debugfs:  stat /sting/.Xauthority # 查看这个文件的信息,它的实际路径其实是 /home/sting/.Xauthority
        # 显示如下:
        Inode: 10485770   Type: regular    Mode:  0600   Flags: 0x80000
        Generation: 2100926769    Version: 0x00000000:00000001
        User:  1000   Group:  1000   Size: 55
        File ACL: 0    Directory ACL: 0
        Links: 1   Blockcount: 8
        Fragment:  Address: 0    Number: 0    Size: 0
         ctime: 0x5ab84844:5b09ecdc -- Mon Mar 26 09:09:24 2018
         atime: 0x5ac2db93:a9a86890 -- Tue Apr  3 09:40:35 2018
         mtime: 0x5ab84844:5b09ecdc -- Mon Mar 26 09:09:24 2018
        crtime: 0x599bcd3f:1183b45c -- Tue Aug 22 14:20:47 2017
        Size of extra inode fields: 32
        EXTENTS:
        (0):43769344  # 文件对应的块号
        (END)
    
知道block号,查看block对应的具体文件:
  1. 根据块号查找分区。查看分区情况,sudo fdisk -lu
    Device         Start       End   Sectors   Size Type
    /dev/sda1       2048  99999743  99997696  47.7G Linux filesystem
    /dev/sda2   99999744 100999167    999424   488M Linux filesystem
    /dev/sda3  100999168 117000191  16001024   7.6G Linux swap
    /dev/sda4  117000192 119001087   2000896   977M EFI System
    /dev/sda5  119001088 500117503 381116416 181.7G Linux filesystem  # End - Start = Sectors
    

    Block(4KB) = 8 * Sectors(0.5KB)b = (int)((L-S)*512/B)

    where:
    b = File System block number
    L = LBA(Logical Block Address)
    S = Starting sector of partition as shown by fdisk -lu and (int) denotes the integer part
    B = File system block size in bytes

    可知: L-S = b / (512 / B) = 43769344 / (512 / 4096) = 350154752。所以, L = 350154752 + 119001088('注:此值为/dev/sda5 Start位置') = 469155840,判断这个块号应该是在/dev/sda5里,在Start到End区间内(如果判断不了,使用下一步试一下也能知道)。

  2. 使用debugfs获取对应具体文件信息,sudo debugfs /dev/sda5

    [sting@sting-snds]
    [:~]$ sudo debugfs /dev/sda5
    [sudo] password for sting:
    debugfs 1.42.13 (17-May-2015)
    debugfs:  icheck 43769344  #如果不在这个分区,会提示 <block not found>
    Block   Inode number
    43769344    10485770
    debugfs:  ncheck 10485770
    Inode   Pathname
    10485770    /sting/.Xauthority # 文件路径
    debugfs:  q
    

archlinux下i3-wm突然登录不进去问题

今天i3-wm突然登录不进去问题(2018-03-31)

  1. 每次输入密码登录之后又回到登录界面,完全摸不着头脑,也没有看到错误信息。

  2. 后来发现是有错误提示信息,在我ctrl+alt+fx(f1~f6)切入到别的字符界面控制台之后,但是没有仔细研究这个提示,结合dmesg命令之后判断应该是磁盘有坏道造成的。

  3. 关键错误提示:

    Buffer I/O error on dev sda10, logical block 8421888print_req_error: I/O error, dev sda, sector 1449822208 这两点。

  4. 第一条信息是最关键的,可惜我一直没有重视,只看到第二条了。

  5. 看到网上有一篇文章是关于磁盘坏道修复的,使用到的工具为smartctl,安装yaourt -S gsmartcontrol

  6. 根据文章写的步骤,第一步我发现1449822208属于/dev/sda10,这时我发现了我这第3步关键错误信息提示里的与这里的/dev/sda10提示的是一样的,然后结合这篇文章,我有些明白了block 8421888的含义了。

  7. 根据上面文章里的第四步,使用工具debugfs,详见debugfs使用简述,我找到坏道这里损坏的文件是/home/sting/.Xauthority,这时突然就明白了为什么会登录不进去了

  8. Xauthority,是startx脚本记录文件。Xserver启动时,读文件~/.Xauthority,读入对应其display的记录。当一个需要显示的客户程序启动调用XOpenDisplay()也读这个文件,并把找到的magic code 发送给Xserver。当Xserver验证这个magic code正确以后,就同意连接啦。观察startx脚本也可以看到,每次startx运行,都在调用xinit以前使用了xauth的add命令添加了一个新的记录到~/.Xauthority,用来这次运行X使用认证

  9. 知道问题所在了就好办,使用startx自动生成.Xauthority文件

  10. crtl+alt+f7,重新登录果然进来了,问题解决。

总结:

  • 在登录界面登录不进来,不一定是这个问题,但这个问题会导致登录不了,又多了一个解题思路 🙂
  • 要仔细研究系统给出的错误提示信息

在Linux下用FFmpeg制作自己喜欢的小视频

前言

你想在Linux下自由的创作自己的视频吗?快来试试FFmpeg吧!

  • 查看自己屏幕分辨率
xrandr
注:"xrandr" 是一款官方的 RandR Wikipedia:X Window System 扩展配置工具。它可以设置屏幕显示的大小、方向、镜像等。比如屏幕分辨率是1366×768

  • 屏幕录制
ffmpeg -video_size 1366x768 -framerate 25 -f x11grab -i :0.0+0,0 -f pulse -ac 2 -i default `date +%Y-%m-%d_%H:%M:%S`.mp4
    注:如果提示:The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
    则按提示增加参数'-strict -2',如:ffmpeg -video_size 1366x768 -framerate 25 -f x11grab -i :0.0+0,0 -f pulse -ac 2 -i default -strict -2 `date +%Y-%m-%d_%H:%M:%S`.mp4

  • 给视频增加或修改背景音乐
ffmpeg -i input.mp3 -i output.mp4 [-strict -2](可选) output.mp4
注:如果视频和音频时间不一样长,需要自己额外处理

  • 视频截取
ffmpeg -i input.mp4 -ss 00:00:10 -t 120 output.mp4
注:从第10秒开始,截取120秒

  • 打马赛克
ffmpeg -i input.mp4 -filter_complex "crop=298:80:115:38, boxblur=10[blurLogo1]; [v:0] [blurLogo1]overlay=115:38" -c:a copy -y output.mp4
注:打马赛克,其实是先从原视频里截取一个小区域并模糊处理,产生新视频,然后再把新视频合并回去,这样看起来原视频的某个区域就像打了马赛克一样

  • 加Logo水印
ffmpeg -i input.mp4 -i ../watermark.jpg -filter_complex "overlay=main_w-overlay_w-55:5" -codec:a copy output.mp4
注:在overlay的位置加上watermark.jpg图片

  • 从视频中截图
ffmpeg -i input.mp4 -y -f image2 -t 0.001 -ss 10 -s 1280x720 output.jpg
注:在视频的第10秒处生成1280×720的图片

  • 制作GIF图
ffmpeg -ss 10 -t 5 -i input.mp4 -r 10 -vf scale=-1:144 -y output.gif
注:从视频的第10秒开始计时5秒生成GIF图片

  • 合并视频
vim filelist.txt
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
ffmpeg -f concat -i filelist.txt -c copy output.mp4
注:如果有三个视频文件需要合并,建立一个txt文本,把文件名写入,然后用命令合并

  • 混合音频
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 output.mp3
-i 代表输入参数
-filter_complex ffmpeg滤镜功能,非常强大
    amix 是混合多个音频到单个音频输出
    inputs=2 代表是2个音频文件,如果更多则代表对应数字
    duration 确定最终输出文件的长度 longest(最长)|shortest(最短)|first(第一个文件)
    dropout_transition 结束后的过度时间,默认为2秒.
-f mp3  输出文件格式

  • 多张图片制作成视频
ffmpeg -f image2 -r 0.5 -i ./image%01d.jpg -vcodec libx264 -t 120 output.mp4
-r 代表每秒播放图片的帧数,比如,0.5代表每秒播放0.5帧的图片,即是每张图片播放2秒
-i 当前目录下的图片,名称image+数字规律命名的,%01d代表数字,0~99就是01d,0~999即是02d,以此类推
-t 视频时长,设置了-r,好像这个参数就不起作用了,t = (1 / r) * 图片数量,单位秒
  • 给视频增加字幕
ffmpeg -i input.mp4 -vf subtitles=字幕文件.srt output.mp4
字幕文件制作格式(括号里为说明):
1(第一段)
00:00:00,180 --> 00:00:01,800(时间,时:分:秒,毫秒)
什么是比特币?(内容)

2(第二段)
00:00:01,900 --> 00:00:04,900(时间,时:分:秒,毫秒)
比特币是第一个(内容)
去中心化的数字货币。

字幕文件下载地址
完成后的视频地址

在Linux Ubuntu下把PDF扫描档转换为可编辑文本文件

本教程所用环境
* 机器:普通电脑 ThinkPad E470c
* 系统:Ubuntu 16.04 LTS
背景
    有一个朋友找我帮忙,需要把他在网上下载的一份pdf文件转换为word文档。刚开始我认为这个操作很简单,网上应该很多成熟的方案,果然,随便找找,就找到很多免费的在线转换网站。
    本以为事情结束了,native :) ,他下载的是一份扫描档pdf文件(每一页类似于一张文件),在线网站还没有找到能直接把pdf扫描档转换为word文档的,花了九牛二虎之力也没有发现简便的方法,最后我觉得应该借助Linux的工具来解决这件事(Windows有收费软件直接解决,更方便)。
方法

概括:先把pdf扫描档转换为图片,然后把图片转换为txt文本文档,最开始找到了一个软件pdfocr,但好像16.04安装不了。

  • 把pdf扫描档转换为图片

    这一步需要借助工具包poppler-utils,这个工具包里含有很多处理pdf文档的工具。

    1. 检测你是否已经安装过此工具dpkg -s poppler-utils,大多数Ubuntu默认已经安装了。如下图:
      pdf转换工具
      可以看到,有很多命令(pdftotext,pdftohtml,pdfimages等)供我们使用,如果是正常pdf文档是可以直接转换为txt文本的,命令:pdftotxt xx.pdf xx.txt

    2. 如果没有安装,则使用sudo apt install poppler-utils命令安装。

    3. 把pdf扫描档转换为png图片:pdfimages xxx.pdf -png 你的/存放/图片/目录/路径,如果你的pdf有多页,那么每页会自动生成一张图片。

  • 把图片转换成txt文档

    这一步需要借助工具是Tesseract,这个软件已经大名顶顶了。

    1. 安装命令sudo apt install tesseract-ocr tesseract-ocr-chi-sim,前一个是软件,后一个是中文简体语言包。语言包有很多,我只安装了中文简体,其它语言包如下图:
      Tesseract语言包

    2. cd进入你的/存放/图片/目录/路径

    3. 先处理单个文件试验一下:tesseract xx.png output -l chi_sim,参数:-l(L字母小写,language首字母) chi_sim是需要识别的语言包,成功后,当前目录下就会多一个output.txt文件,里面内容就是图片上的文字,但要注意,如果图片质量不好,那么识别出来的内容会有挺大的偏差。

    4. 批量处理命令:

    for i in `ls *.png | awk -F '.' '{print $1}'`;do tesseract $i.png $i -l chi_sim;done
    
ps:如果你有更好的方法,可以微信或邮件告知哟!

ETP(熵)币在Ubuntu下的挖矿教程

本教程所用环境
* 机器:普通电脑 ThinkPad E470c
* 系统:Ubuntu 16.04 LTS
步骤
  • 下载元界钱包
    • 官方博客有一篇元界(Metaverse)安装与使用手册,这里面涵盖了Windows,MacOSX,Linux系统下钱包下载,安装,使用的详细说明,可能在一些细节与实际不同,摸索一下就会掌握,如有问题,欢迎在评论下留言,或者直接联系我。
  • 下载挖矿软件
    1. 英语过关的请直接看这篇文章Ethereum GPU Mining on Linux How-To,这里有如何下载以太币挖矿软件和显卡驱动。建议:最好结合我下面的一起操作 🙂 。
    2. 我结合自己的实践来大概说明一下:
      • 用以下命令增加挖矿软件安装包的源:
      sudo apt-get install software-properties-common
      sudo add-apt-repository ppa:ethereum/ethereum
      sudo apt-get update
      

      如果是在Debian 8(在Ubuntu上你可以跳过此步骤)上你需要使用以下命令替换源名称:

      sudo sed 's/jessie/vivid/' -i /etc/apt/sources.list.d/ethereum-*.list
      sudo apt-get update
      
      • 安装ethereum, ethminer 和 geth:
      sudo apt-get install ethereum ethminer geth
      

      geth好像是用来生成以太币钱包地址的,对于我们将要挖ETP来说,应该没有用处。因为我们在安装好元界钱包,注册登录后会有ETP的地址。

      • 安装显卡驱动:
        首先,需要知道自己电脑的显卡型号,然后去官方下载对应的驱动软件。比如我的显卡是NVIDIA,电脑系统是Linux(Ubuntu 16.04 LTS)64位,使用的是GeForce 920。到N卡驱动官方网站搜索下载自己需要的驱动。

      然后,安装显卡驱动所需要的依赖:

      sudo apt-get install linux-headers-amd64 build-essential
      

      linux-headers-amd64 这个包好像已经废弃了,不过不影响后续安装。

      最后,安装驱动。显卡驱动安装必须在Linux文本模式,所以:

      第一步,Ctrl+Alt+F1切换到tty1,使用命令sudo service lightdm stop关闭 X-Window.

      第二步,给下载的驱动增加执行权限,然后运行(注:请先看完以下内容在运行).

      chmod +x NVIDIA-Linux-x86_64-367.35.run
      sudo ./NVIDIA-Linux-x86_64-367.35.run
      

      第三步,安装完成后,重新启动X-Windowsudo service lightdm start,然后Ctrl+Alt+F7进入图形界面;

      我在安装完成后遇到一个坑,在图形模式下,登录界面输入密码后依然跳转回登陆界面,无限循环。经过搜索,用以下方法重新安装解决:

      sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files
      -no-x-check:安装驱动时关闭X服务
      -no-nouveau-check:安装驱动时禁用nouveau
      -no-opengl-files:只安装驱动文件,不安装OpenGL文件
      

      这样再reboot,就不会出现循环登录的问题。

      如果没有解决请参考这篇blog.

    3. 寻找矿池挖矿。

      我使用的是火池,挖矿命令:ethminer -F http://get.etp.huopool.com:8888/MEEihkdp6w7JKVA6hyKVGU9FomAV4G7jYP -G --farm-recheck 200

      由于我用的是个人电脑,所以算力很低 🙂 ,仅为了试验一下而已,下面是挖矿和矿池收益截图:
      挖矿图
      收益图

总结
  • 以上内容如果对你有帮助且你还有闲余的ETP的话,可以对我进行打赏
    我的ETP地址:MEEihkdp6w7JKVA6hyKVGU9FomAV4G7jYP
    我的博客地址:https://blog.blianb.com

在Linux上增加Swap分区

Linux Swap交换分区

需求背景

在我的个人低配ECS CentOS上,由于在使用composer update -vvv升级项目使用的第三方库时出现下面的提示,根据资料显示,大都是缺少Linux Swap引起的。
错误显示如下:
composer update error

关于Linux交换分区

Linux RAM由内存页组成的块组成的。为了释放RAM,就可能产生“linux交换分区”,并将部分内存从RAM复制到硬盘上的预配置空间。Linux交换分区就是为了允许系统利用比原来可用的内存更多的内存。

但是,交换分区也有一些缺点。由于硬盘的读写速度比RAM慢得多,因此服务器性能可能会大大减慢。另外,如果系统有太多文件从交换分区写入和读出,那么swap thrashing可能发生(这会导致效率低下,因为大部分时间消耗在访问磁盘上)。

增加交换空间步骤:
  1. 检查交换分区空间

    在我们继续交换分区文件之前,我们需要查看交换分区使用情况,检查是否已经启用了交换分区文件。

    命令:swapon -s

    如果没有返回,则摘要为空,不存在交换分区文件。

  2. 检查文件系统

    在知道我们没有启用交换分区文件后,我们可以使用df命令检查服务器上有多少剩余空间。交换分区文件需要512MB,以下结果显示我们只使用了大约7%的/dev/hda磁盘空间。

    df
    

    显示:
    CentOS剩余空间

  3. 创建并启用交换分区文件

    现在是使用dd命令创建交换分区文件本身的时候了:

    sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k
    

    "of=/swapfile" 指定文件的名称,这里我们取的名称是swapfile。

  4. 为交换文件创建一个linux交换分区区域:

    sudo mkswap /swapfile

    结果显示:
    Setting up swapspace version 1, size = 536866 kB

  5. 通过激活交换分区文件完成工作:

    sudo swapon /swapfile

  6. 查看交换分区摘要,将可以看到新的交换分区文件:

    swapon -s

    显示:
    查看交换分区信息

  7. 做完这些工作后,如果服务器重启,那么这个交换分区会消失。可以通过将交换分区配置添加到fstab文件来确保交换分区一直存在。

    打开文件:

    sudo vim /etc/fstab

    在fstab文件最下面粘贴以下内容就可以:

    /swapfile swap swap defaults 0 0
    
  8. 这个交换分区文件只应该有读的权限,所以我们要给它设置正确的权限:

    chown root:root /swapfile

    chmod 0600 /swapfile

如何配置Swappiness

操作系统内核可以通过称为swappiness的配置参数来调整依赖交换分区的使用频率。

  • 要查看当前的swappiness设置,使用命令:

    cat /proc/sys/vm/swappiness

    结果显示为:
    60

Swapiness是0到100之间的值。接近100的Swappiness意味着操作系统会频繁的使用交换分区。虽然交换分区给系统提供额外的资源,但RAM比交换分区空间读写速度快得多。不管什么时候,程序从RAM移动到交换分区的话,它的运行速度都会减慢。
当Swappiness值为0时意味着操作只会在必须需要依靠交换分区时才会使用到它,比如,不使用交换分区,内存会溢出。

  • 我们可以使用sysctl命令调整swappiness:

    sysctl vm.swappiness=10

    显示:
    vm.swappiness = 10

  • 如果我们再次检查系统的swappiness值,可以看到已经修改了:

    cat /proc/sys/vm/swappiness

    显示:
    10

  • 要使您的服务器每次启动时自动应用此设置,您可以将该设置添加到/etc/sysctl.conf文件中:

    sudo vim /etc/sysctl.conf

    增加内容:
    vm.swappiness = 10

到此大功告成!

自动化检测PHP语法和编程规范(Git pre-commit)

自动化检测PHP语法和编程规范

使用到的知识点:

  • 命令php -l检测文件语法,可以通过php -h查看PHP CLI支持哪些操作,如下:.
[:~]$ php -h
Usage: php [options] [-f] <file> [--] [args...]
   php [options] -r <code> [--] [args...]
   php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   php [options] -S <addr>:<port> [-t docroot] [router]
   php [options] -- [args...]
   php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No configuration (ini) files will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -S <addr>:<port> Run with built-in web server.
  -t <docroot>     Specify document root <docroot> for built-in web server.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.


  • 安装PHP编程规范工具php-cs-fixer,可以在GitHub上查看详细信息.
    1. 下载:wget http://cs.sensiolabs.org/download/php-cs-fixer-v2.phar -O php-cs-fixer
    2. 给予执行权限:sudo chmod a+x php-cs-fixer
    3. 把文件移动到自己喜欢的目录,我一般是放在/usr/local/bin下:sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

  • 利用Git的钩子pre-commit达成commit前自动检测功能.
    这个钩子,顾名思意就是在git commit之前会触发,此钩子结合网上和朋友的写法,感谢他们.
    首先,点击查看这个文件,复制文件内容.
    然后,进入到自己的项目下git钩子目录:cd path/to/your/project/.git/hooks,复制pre-commit.sample文件并重命名:cp pre-commit.sample pre-commit,把文件内容替换为上一步复制的内容.
    最后,每次commit时就会先检测语法和规范是否正确,不正确会提示文件名和你需要规范代码格式的命令,简单测试如下图:.
    php-cs-fixer pre-commit

ubuntu apt update时提示缺少public key

问题原因:

apt包管理系统具有一组可信密钥,用于对每个包进行身份验证,确定每一个包是否可以信任的安装在系统上。有时,系统没有所有需要的密钥进行验证,所以会遇到这个问题。幸运的是,系统会列出缺失的每个密钥的信息,只需要把这个密码添加到apt密钥管理器中,以便它可以验证包就可以了.

  • 使用命令sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxx
    xxxxxx 代表系统提示你缺少的密钥,我缺少的密钥是40976EAF437D05B5,使用后结果如下图,然后再sudo apt update就没有问题了.
    增加密钥

Ubuntu安装Chrome稳定版(google-chrome-stable)

Ubuntu安装Chrome稳定版(google-chrome-stable)

  • 推荐PPA方法,免翻墙
  1. wget -q -O - https://raw.githubusercontent.com/longhr/ubuntu1604hub/master/linux_signing_key.pub | sudo apt-key add

  2. sudo sh -c 'echo "deb [ arch=amd64 ] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list

  3. sudo apt-get update

  4. sudo apt-get install google-chrome-stable

  • 安装Google Chrome unstable 版本:
    sudo apt-get install google-chrome-beta
  • 安装Google Chrome beta 版本:
    sudo apt-get install google-chrome-unstable