美文网首页Linux学习|Gentoo/Arch/FreeBSD我用 LinuxLinux
从零到一,Linux开发环境一步到位

从零到一,Linux开发环境一步到位

作者: 三也视界 | 来源:发表于2018-10-19 00:35 被阅读17次

    安装manjaro-deppin linux系统

    下载manjaro-deepin镜像:

    https://sourceforge.net/projects/manjarolinux-community/files/archive/deepin/17.1.7/manjaro-deepin-17.1.7-stable-x86_64.iso/download

    如果是要真机安装,下载usbwriter,虚拟机跳过此步

    https://sourceforge.net/projects/usbwriter/

    真机安装准备一个U盘,使用上面下载好的usbwriter 把manjaro-deepin镜像写入到U盘,插到电脑里引导即可

    虚拟机安装,创建虚拟机就不用讲了吧,百度有,和创建其他虚拟机步骤一样

    技术分享图片

    安装浏览器

    firefox 是自带的,添加如下addon附件,安装中文环境
    https://addons.mozilla.org/zh-CN/firefox/addon/chinese-simplified-zh-cn-la/?src=search
    添加SwitchyOmega,并配置自动规则列表地址(为后面的shadowsockes翻墙配置做准备):
    https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt

    安装Chrome

    sudo pacman -S google-chrome
    

    更新仓库国内源

    增加archlinuxcn软件仓库以及各种开发工具源,提高下载速度。

    1、更改配置文件

    sudo nano /etc/pacman.conf
    

    添加以下内容:

    [archlinuxcn]
    SigLevel = Optional TrustedOnly
    Server = http://mirrors.ustc.edu.cn/archlinuxcn/$arch
    
    [arch4edu]
    SigLevel = Never
    Server = http://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch
    

    如下图:Ctrl+X退出并保存更改


    截图_2018-10-14_23-52-48.png

    2、更新并选择最快的源列表

    sudo pacman-mirrors -g
    
    

    3、更新系统

    sudo pacman -Syyu
    

    4、安装archlinuxcn-keyring

    sudo pacman -S archlinuxcn-keyring
    

    如果上面安装失败,则执行以下命令:

    sudo pacman -Syu haveged
    sudo systemctl start haveged
    sudo systemctl enable haveged
    sudo rm -rf /etc/pacman.d/gnupg
    sudo pacman-key --init
    sudo pacman-key --populate archlinux
    sudo pacman -S archlinuxcn-keyring
    sudo pacman-key --populate archlinuxcn
    

    安装中文输入法

    # fcitx-rime  非常推荐的拼音输入法
    # fcitx-im 全部安装
    # fcitx-configtool 图形化配置工具
    # fcitx: 输入法本体
    # fcitx-gtk2,gtk3,qt4,qt5:对于不同 GUI 框架的支持
    # fcitx-cloudpinyin:云输入支持
    # fcitx-skin-material:一个很不错的皮肤
    # fcitx-rime:我比较推荐的输入法
    
    # 命令支持一并安装,如下:
    sudo pacman -S fcitx-rime fcitx-im fcitx-configtool fcitx-gtk2 fcitx-gtk3 fcitx-qt4 fcitx-qt5 fcitx-skin-material fcitx-cloudpinyin fcitx-sogoupinyin
    

    之后就是还需要更改 ~/.xprofile

    sudo nano ~/.xprofile 
    

    添加内容,重启之后就可以支持快捷键切换:

    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS=@im=fcitx
    

    pacman的常用命令

    在软件中心卸载不需要的软件,安装wps、chrome、shadowsocks-qt5、eclipse-java、gimp、vlc、vim、vim-youcompleteme-git、Foxit Reader、electronic-wechat(具体根据个人情况,可用“yaourt 软件名”的方式安装软件)

    安装 pacman -S
    删除 pacman -R
    移除已安装不需要软件包 pacman -Rs
    删除一个包,所有依赖 pacman -Rsc
    升级包 pacman -Syu
    查询包数据库 pacman -Ss
    搜索以安装的包 pacman -Qs
    显示包大量信息 pacman -Si
    本地安装包 pacman -Qi
    清理包缓存 pacman -Sc

    常用的一些软件

    安装网易云音乐

    sudo pacman -S netease-cloud-music
    

    压缩解压缩

    sudo pacman -S file-roller unrar unzip p7zip 
    

    Git ssh

    pacman -S git openssh
    

    安装wps

    yaourt -S wps-office
    

    VSCode

    pacman -S visual-studio-code-bin 
    

    解决Windows和Linux双系统时间不一致问题

    sudo timedatectl set-local-rtc 1 
    
    
    打开AUR,支持更多的软件
    截图_2018-10-15_19-39-10.png

    软件中心搜索deep,安装qq


    截图_2018-10-15_00-48-02.png

    系统会自动安装上依赖的deep-wine等


    截图_2018-10-15_01-04-30.png

    在deep的搜索之中切换到AUR库,选择以下微信版本
    微信


    深度截图_选择区域_20181015010938.png

    安装vim

    sudo pacman -S vim
    
    

    安装spf13-vim配置

    curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
    
    
    JDK
    sudo pacman -S jdk8
    
    

    配置Java环境:

    export JAVA_HOME=/usr/lib/jvm/default
    export JRE_HOME=${JAVA_HOEM}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
    
    
    虚拟机

    Archlinux维基有更详细的安装说明:VMware(简体中文).

    VMware workstation 14 激活密钥:

    CG54H-D8D0H-H8DHY-C6X7X-N2KG6
    
    ZC3WK-AFXEK-488JP-A7MQX-XL8YF
    
    AC5XK-0ZD4H-088HP-9NQZV-ZG2R4
    
    ZC5XK-A6E0M-080XQ-04ZZG-YF08D
    
    ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
    
    FF590-2DX83-M81LZ-XDM7E-MKUT4
    
    FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
    
    CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD
    
    AALYG-20HVE-WHQ13-67MUP-XVMF3
    
    
    uget & aria2
    sudo pacman -S uget
    sudo pacman -S aria2
    
    

    然后在uget的界面点击: 编辑->设置->插件, 在插件匹配顺序选择aria2

    坚果云

    sudo pacman -S nutstore
    

    shadownsocks-qt5

    sudo pacman -S shadownsocks-qt5
    

    jetbrains toolbox

    非常推荐安装jetbrans全家桶管理工具,更新和管理十分方便。软件中心搜索toolbox
    下载之后进行激活
    Step 1: IMPORTANT:
    add 0.0.0.0 account.jetbrains.com to your host file ( google if you don't know where it is )

    Step 2:
    then get the key from http://idea.lanyus.com/getkey

    深度截图_选择区域_20181017123450.png

    安装Go

    toolbox点击下载goland,安装完毕打开软件,打开setting


    深度截图_选择区域_20181017124047.png
    配置goroot

    如果之前没有配置过go环境的话,这里应该是空白的。


    深度截图_选择区域_20181017132659.png

    安装go环境

    官方下载地址:https://golang.org/dl/
    需要翻墙,打不开的用这个国内的地址:https://golang.google.cn/dl/
    选择对应的linux版本,这里选择了1.9.2(看自己需求,也可以下载最新版本)

    深度截图_选择区域_20181017130821.png

    1、下载二进制包:go1.4.linux-amd64.tar.gz。

    2、将下载的二进制包解压至 /usr/local目录。

    tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz
    

    3、将 /usr/local/go/bin 目录添加至PATH环境变量:

    export PATH=$PATH:/usr/local/go/bin
    

    4、验证是否安装成功
    go version


    深度截图_选择区域_20181017132221.png

    kotlin

    https://repo.continuum.io/archive/index.html上下载对应版本的Anaconda。

    比如我选择安装 Anaconda3-5.0.1-Linux-x86_64.sh,(对应python3.6,x64系统)可以采用下列命令。

    wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
    

    下载完成成后直接进行安装:

    bash Anaconda3-5.0.1-Linux-x86_64.sh
    

    安装过程中会需要不断回车来阅读并同意license。安装路径默认为用户目录(可以自己指定),最后需要确认将路径加入用户的.bashrc中。

    最后,立即使路径生效,需要在用户目录下执行:

    source .bashrc
    

    此时,打开python就是最新的3.6版本了。

    为了保持更新,可以在终端中执行:

    conda upgrade --all
    

    如果报下面的错误,很可能是因为设置了PYTHONPATH环境变量。这将导致Anaconda无法调用正常的自己的库(Anaconda运行不依赖PYTHONPATH环境变量)。

    Traceback (most recent call last):
      File "/home/*****/anaconda3/bin/conda", line 4, in <module>
        import re
      File "/home/*****/anaconda3/lib/python3.6/re.py", line 142, in <module>
        class RegexFlag(enum.IntFlag):
    AttributeError: module 'enum' has no attribute 'IntFlag'
    

    因此建议在打开python前执行

    unset PYTHONPATH
    

    或者暴力地将上述命令同样写入.bashrc文件中并用source生效。

    Anaconda除了python外还包括下面几个有用的工具:

    • Anaconda Navigtor:用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
    • Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
    • qtconsole :一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
    • spyder :一个使用Python语言、跨平台的、科学运算集成开发环境。

    在命令行中输入:

    conda create -n python27 python=2.7

    想要使用python2.7环境同样需要命令 activate python27(这里面的python27是前面create时自己定义的名字),该条命令在linux和mac环境中使用 source activate python27 。接下来看到命令行的最前端多出来(python27),这时候已经处在python2.7的环境中了。想要退出python2.7进入python3.6,需要再次键入命令deactivate(linux和mac下用source deactivate命令)。

    更换版本前,强烈建议将镜像源配置好,这样下载速度会快很多,下面给出了清华源的设置命令。

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --set show_channel_urls yes

    安装额外运行如下命令:

    conda create -n py27 python=2.7 # 此处py27是自定义命名,名称一旦确认,下面的命令需与此处一致

    conda install -n py27 jupyter # 安装 jupyter notebook
    conda install -n py27 spyder # 安装 Spyder

    安装完成后,打开notebook可以看到新建按钮出现了python2


    20171128150325511.png

    如果没有出现,运行下面代码则会出现python2。

    source activate py27 # 激活python2
    jupyter notebook # 打开notebook

    深度截图_选择区域_20181016184310.png

    如果需要在新版本中安装(上述python2版本),命令如下:
    首先切换到对应版本
    Linux方法如下:

    source activate py27
    pip install xxx # xxx为python包名称

    深度截图_选择区域_20181016185655.png 深度截图_选择区域_20181016185725.png

    界面使用指南

    生成配置文件
    jupyter notebook --generate-config
    Writing default config to: /home/philos/.jupyter/jupyter_notebook_config.py

    生成密码
    进入jupyter界面输入以下函数,获取密码
    from notebook.auth import passwd
    passwd()


    深度截图_选择区域_20181016193106.png

    修改默认配置文件(查看上面打印出来的文件路径)
    sudo nano /home/philos/.jupyter/jupyter_notebook_config.py

    设置访问notebook的ip,*表示所有IP,这里设置ip为都可访问

    c.NotebookApp.ip='*'

    填写刚刚生成的密文 注意前面添加一个小写的u

    c.NotebookApp.password = u'sha1:c4e5bb82220c:b366753bc43f4ffc7dae208ef6263340b8d9cc3c'

    禁止notebook启动时自动打开浏览器(在linux服务器一般都是ssh命令行访问,没有图形界面的。所以,启动也没啥用)

    c.NotebookApp.open_browser = False

    指定访问的端口,默认是8888。

    c.NotebookApp.port =8889

    c.NotebookApp.notebook_dir = '/home/user/user1' #指定工作空间
    c.PAMAuthenticator.encoding = 'utf8' #指定utf-8编码,解决读取中文路径或者文件乱码问题

    ctrl + W 可以快速搜索到想要修改的内容

    启动 jupyter notebook
    root 用户需使用以下命令 jupyter notebook --allow-root

    本地浏览器访问网址:http://localhost:8889
    这里可以建设局域网,公司内网既可以一起访问。或者放到服务器上,通过http://serverIP:端口号进行访问。

    深度截图_选择区域_20181016194638.png

    上面的操作做完,可以多个用户使用了 但是工作空间只有一个,且只能一个人去开启服务,不能关闭,这点有点但疼痛。

    实现多用户:

    首先添加linux 用户

    useradd user2

    passwd user2

    然后登录user2

    重复上面的操作,生成配置文件,并修改配置文件

    注意端口号和工作空间不能跟上面一样就好了。

    然后运行命令

    jupyter notebook

    发现报错,忘了截图了,大概意思是/run/user/0/ 的权限问题

    切换root 用户或者sudo 命令

    chmod 777 /run/user/0/jupyter
    chmod 777 -R /run/user/0/jupyter
    chmod 777 -R /run/user/0/
    JupyterHub的安装与配置——让Jupyter支持多用户

    JupyterHub 添加自己的用户系统

    在AWS上配置jupyterhub

    teamviewer

    manjaro的teamviewer有一些问题,pacman装上之后会出现"Not ready,.."的情况,此时应该:

    sudo teamviewer --daemon enable

    再打开teamviewer即可!

    linux备份

    timeshift

    1. 权限问题

    sudo gedit /etc/rsyncd.conf

    将其中的

    uid = nobody
    gid = nobody

    改为

    uid = root
    gid = root

    备份结束之后一定要改回来!!

    系统备份

    我目前的解决方案是 rsync,下面给出一个我从 Arch wiki 那里魔改来的备份脚本.区别基本上就是使用了更新和删除,就是如果目标位置已经有备份,他只会更新新的文件,并删除已经被删除了的文件。另外,我还把 steam 的路径添加到了黑名单,这样可以让我节省几十个G的游戏的硬盘空间。如果要还原的话,你只需要把 rsync 的参数互换一下,就以把备份文件复制回原来的位置了。

    #!/bin/sh
    
    START=$(date +%s)
    rsync -aAXvu --delete /* /Your/Destination/Directory --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/var/lib/pacman/sync/*,/home/towdium/.local/share/Steam/*}
    FINISH=$(date +%s)
    echo "total time: $(( ($FINISH-$START) / 60 )) minutes, $(( ($FINISH-$START) % 60 )) seconds" | tee /run/media/towdium/Files/manjaro/"Backup from $(date '+%A, %d %B %Y, %T')"
    
    

    双硬盘时,机械硬盘挂载

    1. 格式化硬盘为EXT4

    如果时windows过来的NTFS,一定要进行格式化,否则无法写入

    fdisk -l # 列出所有分区,找到想要格式化的分区名,如/dev/sda1
    sudo mkfs -t ext4 /dev/sda1 # 格式化完成

    1. 分区

    sudo fdisk /dev/sda #格式化后名称为/dev/sda

    输入n、p、1、两下回车、wq、回车,分成一个区

    1. 挂载

    新建文件夹作为挂载点

    mkdir /home/ray/Documents/Data

    给定写入权限

    chown -R 500:ray /run/media/ray/data/
    sudo chown ray:ray /run/media/ray/data/

    挂载

    sudo mount -t ext4 /dev/sda1 /home/ray/Documents/Data/

    1. 开机自动挂载

    sudo gedit /etc/fstab

    加入:

    /dev/sda1 /home/ray/Documents/Data ext4 defaults 0 2

    添加字体

    1. 安装依赖

    sudo pacman -S fontconfig
    

    2. 下载对应的字体文件,并且放到指定位置

    1. 建立缓存

    mkfontscale
    mkfontdir
    fc-cache -fv

    docker + pyspark + jupyter 安装

    参考: http://maxmelnick.com/2016/06/04/spark-docker.html

    1. 本地安装docker

    1.1 安装docker包

    sudo pacman -S docker
    

    1.2 防止权限问题,加入用户权限

    sudo usermod -aG docker XXX
    

    1.3 重启服务(或者重启计算机)

    sudo systemctl restart docker
    

    1.4 查看安装是否成功

    sudo docker --version
    

    2 配置spark 镜像(images)和容器(containers)

    首先,直接建立容器,如果镜像不存在,则会自动下载:

    sudo docker run -d -p 8888:8888 --name spark -v $PWD:/home/jovyan/work jupyter/all-spark-notebook start-notebook.sh --NotebookApp.password='sha1:5b1e121347e8:15266c00b25c2e497714de20a674d5b8935e09dd'
    

    命令解释:

    • docker run 载镜像基础上建立容器
    • -d 后台运行
    • -p 8888:8888 指定端口
    • -- name spark 命名容器
    • -v $PWD:/home/jovyan/work 挂载 all-spark-notebook的工作目录到当前目录,使得文件可以在docker内外共享(jovyan是该镜像内置的用户名,不要更改!)
    • jupyter/all-spark-notebook 镜像名称,来自https://hub.docker.com/r/jupyter/all-spark-notebook/
    • start-notebook.sh --NotebookApp.password='sha1:5b1e121347e8:15266c00b25c2e497714de20a674d5b8935e09dd' 指定密码而不是token,密码先得转为hash码(怎么转

    在浏览器中输入'http://localhost:8888',即可打开容器对应的notebook

    其次,查看docker状态

    # 显示当前容器
    docker ps
    
    # 显示所有容器
    docker ps -a
    
    # 显示所有镜像 
    docker images
    
    # 删除容器
    docker rm container_name
    
    # 删除镜像,必须先删除依赖该镜像的容器
    docker rmi image_name
    
    

    最后,直接打开或是关闭

    # 关闭容器
    docker stop spark
    
    # 打开容器
    docker start spark
    
    

    相关文章

      网友评论

      本文标题:从零到一,Linux开发环境一步到位

      本文链接:https://www.haomeiwen.com/subject/pqdxzftx.html