ubuntu 18.04 LTS开发环境搭建

  • 整理了之前看的ubuntu相关的一些帖子,腾一下书签。 兜兜转转回到了ubuntu,用户多所以出问题解决方案比较好查,然后仓库里软件比CentOS多一些,做开发方便一点。除了apt有点难用,偶尔报一报系统错误,其它方面还好。

apt包管理

https://www.cnblogs.com/weaming/p/5079032.html

查找

1
2
3
4
5
6
7
8
9
10
11
apt-cache search pattern #查找软件包名称和描述包含 pattern 的软件包 (可以是安装了也可以是没有安装),可以用参数来限制是否已经安装

apt-cache depends package #查找名称是 package 软件包的依赖关系
apt-cache rdepends package #查找哪些软件包依赖于名称是 package 软件包

apt-cache show pattern ##查找软件包pattern的信息 (可以是安装了也可以是没有安装)
apt-cache policy pattern #显示 pattern 软件包的策略(可以是安装了也可以是没有安装)
apt-cache showpkg pattern #显示pattern 软件包的其它信息(可以是安装了也可以是没有安装)

apt-file search pattern #查找文件 pattern 属于哪个软件包(可以是安装了也可以是没有安装)
apt-file show pattern #查找 pattern 软件包(可以是安装了也可以是没有安装)包含哪些文件

下载&安装

1
2
3
apt-get install package -d #下载软件包
apt-get install package #在线安装软件包
apt-get install package --reinstall #重新安装软件包

删除

1
2
3
apt-get remove package #仅仅删除软件
apt-get remove package --purge #删除软件和配置文件
apt-get autoremove #删除不再需要的软件包

清缓存

1
2
apt-get clean #清除 /var/cache/apt/archives 目录
apt-get autoclean #清除 /var/cache/apt/archives 目录,不过只清理过时的包

编译

1
2
apt-get source package #获取源码
apt-get build-dep package #解决编译源码 package 的依赖关系

指定架构

1
2
3
4
5
6
7
# 容易把系统搞崩
apt-cross --arch ARCH --show package 显示属于 ARCH 构架的 package 软件包信息
apt-cross --arch ARCH --get package #下载属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --install package #安装属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --remove package #移除属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --purge package #移除属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --update #升级属于 ARCH 构架的 package 软件包

更新

1
2
3
apt-get update #更新源
apt-get upgrade #更新已经安装的软件包
apt-get dist-upgrade #升级系统

换源

备份源列表、修改为清华源并更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
sudo vi /etc/apt/sources.list
~
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
~
:wq
sudo apt-get update
sudo apt-get upgrade
# 安装编译工具
sudo apt-get install build-essential

之后在software&updates的图形界面把软件下载源换成刚加的源。

和源相关的报错

pip3

可能pip3会出现pip3 ImportError: cannot import name ‘sysconfig’的错误,继续加上ubuntu-cn相关源。

1
2
3
4
5
6
sudo vi /etc/apt/sources.list
~
deb http://cn.archive.ubuntu.com/ubuntu bionic main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-updates main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-security main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-proposed main multiverse restricted universe

然后重新安装python-pip3

1
2
sudo apt-get update
sudo apt-get install python3-pip

apt update相关库签名无效

重新安装证书

1
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 缺失的PUBLIC_KEY

python3环境

ubuntu内置python3.6.9,默认为python2。
查看Python版本

1
2
python --version
ls /usr/bin/python*

用户修改

1
2
3
4
vim ~/.bashrc
alias python='/usr/bin/python3.6'
source ~/.bashrc
python --version

系统修改

1
2
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.6 /usr/bin/python

顺便记一下环境变量

1
2
3
4
5
6
7
# 系统全局
/etc/config
# 用户
~/.bashrc
# 查看
echo $VAR
env | grep VAR

依赖库prodigy*.whl版本不支持

prodigy*.whl模块在python3.6无法安装?

https://support.prodi.gy/t/prodigy-installation-breaking-on-python3-6/3881/2

1
2
pip3 install uvloop==0.14.0
pip3 install prodigy*.whl

输入法(iBUS)

1
sudo apt-get install ibus-pinyin

语言支持->键盘输入法系统->iBUS
设置->区域与语言->输入源->+ 汉语(pinyin)
win + space 切换输入法

Mysql5.7

1
2
3
4
5
6
mysql --version
sudo apt-get install mysql-client-core-5.7
sudo apt-get install mysql-client-5.7
sudo apt-get install mysql-server-5.7
# 启用
sudo systemctl start mysql

在安装服务的时候会提示设置密码,少了这个步骤需要手动设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sudo vim /etc/mysql/debian.cnf
~
[client]
hostname = localhsot
user = [?]
passsword = [?]
~
:q

#登陆mysql并修改
mysql -h localhost -u [user] -p [password]
use mysql
#修改密码
update user set authentication_string=password('[password]') where user='root' and host='localhost';
update user set plugin="mysql_native_password";
#刷新起效
flush privileges;
exit
sudo service mysql restart

开启远程登陆

1
2
3
4
5
6
7
mysql -h localhost -u [user] -p [password]
use mysql
show columns FROM mysql;
update user SET host="%" WHERE user="root"
flush privileges;
exit
sudo service mysql restart

调整配置,确保mysql服务监听地址

1
2
3
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
/bind-address
bind-address=0.0.0.0

包mysqlclient报错

apt安装mysqlclient报错时,如果为依赖问题:

1
2
3
4
5
6
7
8
9
10
11
12
# 安装一些Mysql的依赖库
sudo apt-get install libmysql-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install python3-dev
sudo pip3 install mysqlclient
# 此时如果遇到如下错误
Collecting mysqlclient
...
ModuleNotFoundError: No module named 'setuptools'
...
安装一下setuptools包,直接
pip3 install setuptools==33.1.1

安装nodejs,npm

官网下载长期支持版安装包
Snipaste_2022-05-09_19-44-24.png

1
2
3
4
5
6
7
8
9
#解压提取文件,移动到/usr/local/目录
tar -xvf node-v12.16.1-linux-x64.tar.xz
sudo mv node-v12.16.1-linux-x64 /usr/local/node
#建立软连接
sudo ln -s /usr/local/node/bin/node /usr/bin/node
sudo ln -s /usr/local/node/bin/npm /usr/bin/npm
#查看安装
node -v
npm -v

nginx

1
2
3
4
5
#安装
sudo apt-get install nginx
#配置文件可放在
/etc/nginx/sites-available/
/etc/nginx/sites-enabled/

https://www.myfreax.com/how-to-install-nginx-on-ubuntu-18-04/

说明

Nginx配置文件的结构和常规做法:

  1. 所有Nginx配置文件都位于/etc/nginx目录中。
  2. 主要的Nginx配置文件为/etc/nginx/nginx.conf。
  3. 为使Nginx配置更易于维护,建议为每个域创建一个单独的配置文件。您可以根据需要拥有任意数量的服务器块文件。
  4. Nginx服务器块文件存储在/etc/nginx/sites-available目录中。除非它们链接到/etc/nginx/sites-enabled目录,否则Nginx不会使用此目录中找到的配置文件。
  5. 要激活服务器块,您需要从以下目录中的配置文件站点创建符号链接(指针)将sites-available目录移到sites-enabled目录。
  6. 建议遵循标准命名约定,例如,如果您的域名是mydomain.com,则您的配置文件应命名为/etc/nginx/sites-available/mydomain.com.conf
  7. /etc/nginx/snippets目录包含可包含在服务器块文件中的配置片段。如果使用可重复的配置段,则可以将这些段重构为片段,并将片段文件包括到服务器块中。
  8. Nginx日志文件(access.log和error.log)位于/var/log/nginx目录中。建议每个服务器块使用不同的access和error日志文件。
  9. 您可以将域文档根目录设置为所需的任何位置。 Webroot的最常见位置包括:
    1
    2
    3
    4
    /home/<user_name>/<site_name>
    /var/www/<site_name>
    /var/www/html/<site_name>
    /opt/<site_name>

    RabbitMQ

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #RabbitMQ需要erlang语言支持
    sudo apt-get install erlang-nox
    sudo apt-get install rabbitmq-server
    #添加admin | admin用户
    sudo rabbitmqctl add_user admin admin
    #查看用户列表
    rabbitmqctl list_users
    #删除用户
    rabbitmqctl delete_user [Username]
    #修改密码
    rabbitmqctl change_password Username Newpassword
    #授予用户以administrator身份
    sudo rabbitmqctl set_user_tags admin administrator
    #赋予virtual host中所有资源的配置、写、读权限
    sudo rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
    #已经伴随安装了RabbitMQ监控管理插件,启用
    sudo rabbitmq-plugins start rabbitmq_management
    #在该地址登陆用户并管理
    http://127.0.0.1:15672

    redis

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #安装
    sudo apt-get install redis-server
    #查看版本
    redis-server -v
    #启用客户端
    redis-cli
    127.0.0.1:6375 > ping
    PONG
    #修改监听
    sudo vim /etc/redis/redis.conf
    /bind
    bind 127.0.0.1 ::1
    d
    bind 0.0.0.0
    #修改密码
    /requirepass
    requirepass [password]
    :wq
    sudo systemctl restart redis-server
    # 登陆
    redis-cli -h 127.0.0.1 -p 6379
    127.0.0.1:6379 > auth [password]
    > OK
    127.0.0.1:6375 > ping
    PONG

    docker

    ###docker安装
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #卸载旧版
    sudo apt-get remove docker docker-engine docker.io
    sudo apt-get update
    #安装
    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    #添加密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    #添加Docker源,选择stable长期稳定版
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
    #更新源列表
    sudo apt update
    #安装Docker社区版
    sudo apt install docker-ce
    #查看安装的Docker版本
    sudo docker version

    docker-compose安装

    1
    2
    3
    4
    5
    6
    #下载docker-compose
    sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-uname -s-uname -m-o /usr/local/bin/docker-compose
    #授权
    sudo chmod +x /usr/local/bin/docker-compose
    #查看版本
    docker-compose --version
    ###其它

    文件复制介绍

docker从容器中复制文件

1
docker cp /home/demo/website apache-container:/var/www/html/

杂项

一些乱七八糟的软件

1
sudo apt-get install tree,nano,curl,wget,ranger