负熵为生

Posts

March 6, 2021

SDKMAN入门

SDKMAN 是一款软件开发包管理器,常用于管理JDK等二进制SDK包 安装 Linux系统下安装比较简单,这里请参照官方文档即可 $ curl -s "https://get.sdkman.io" | bash Windows系统下则会比较麻烦,因为SDKMAN依赖Linux系统下的一些组件(软件),所以在Windows上安装需要先安装这些依赖的组件 大致有三种方式 安装 Windows Linux System(WLS) 安装 Cygwin 安装 Git Bash for Windows 做为开发人员通常已经安装了 Git Bash ,所以使用该方式最简单。安装 SDKMAN 之前还需要安装其它缺失工具:curl、unzip和sed,其中curl和sed默认已有安装,zip/unzip则需要手动安装(下载地址)。下载后解压,将zip.exe复制到 Git Bash 安装目录下的 mingw64/bin 目录下即可 在 Windows 系统上安装 SDKMAN 与 Linux 系统一致 # 下载安装 $ curl -s "https://get.sdkman.io" | bash $ sdk version SDKMAN 5.11.0+644 # 执行初始化(否则 sdk 命令不可用) $ source "~/.sdkman/bin/sdkman-init.sh" 用法 $ sdk help Usage: sdk <command> [candidate] [version] sdk offline <enable|disable> commands: install or i <candidate> [version] [local-path] uninstall or rm <candidate> <version> list or ls [candidate] use or u <candidate> <version> completion <bash|zsh> default or d <candidate> [version] home or h <candidate> <version> env or e [init|install|clear] current or c [candidate] upgrade or ug [candidate] version or v broadcast or b help offline [enable|disable] selfupdate [force] update flush [archives|tmp|broadcast|version] candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc.
March 18, 2020

Gitea安装

资料 https://docs.gitea.io/zh-cn/ 准备 # 数据库(MySQL) # https://docs.gitea.io/zh-cn/database-prep/ # 创建数据库 > CREATE DATABASE DB_GITEA CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'; # 创建用户 > CREATE USER 'gitea'@'%' IDENTIFIED WITH mysql_native_password BY 'Gitea!2020'; # 用户授权 > GRANT ALL PRIVILEGES ON DB_GITEA.* TO 'gitea'@'%'; # 刷新权限,立即生效 > FLUSH PRIVILEGES; # 用户 $ useradd gitea 安装 # 安装 # https://docs.gitea.io/zh-cn/install-from-binary/ # https://docs.gitea.io/zh-cn/install-from-package/ # https://docs.gitea.io/zh-cn/install-from-source/ $ curl -L https://dl.gitea.io/gitea/1.11.2/gitea-1.11.2-linux-amd64 -o /usr/local/bin/gitea $ chmod +x /usr/local/bin/gitea # 测试 $ gitea -v Gitea version 1.
March 18, 2020

Maven之settings.xml配置

<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
March 18, 2020

Maven之私服搭建

安装 前置 # Linux CentOS 7 $ cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) # Java OpenJDK 8 $ yum install java-1.8.0-openjdk-devel $ java -version openjdk version "1.8.0_242" OpenJDK Runtime Environment (build 1.8.0_242-b08) OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode) 安装 # https://help.sonatype.com/repomanager2/download # 注意:国内网络可能无法下载,考虑科学上网,或者从其它网站下载 $ curl -OL https://download.sonatype.com/nexus/oss/nexus-latest-bundle.tar.gz # https://help.sonatype.com/repomanager2/installing-and-running $ tar zxvf nexus-2.14.16-01-bundle.tar.gz -C /opt # /opt/nexus-2.14.16-01 Nexus服务程序目录 # /opt/sonatype-work 数据(构件)存放目录 # 创建 nexus 用户,因为 Nexus 不推荐使用 root 用户运行服务 # 注:不能是禁止登录无home目录的虚用户(程序使用 su 切换用户) $ useradd nexus # 修改目录拥有者属性,因为后面将使用 nexus 用户来运行服务 $ chown nexus:nexus -R /opt/nexus-2.
March 18, 2020

CentOS-7安装后需要做的几件事

修改主机名 $ hostnamectl set-hostname template 设置静态IP # 从 CentOS-7 就开始推荐使用 nmcli 来配置网络了(CentOS-8同样适用) # https://andyx.net/configuring_static_ip_address_in_rhel8_centos8_system_with_nmcli_nmtui_ifcfg/ # 配置IP $ nmcli con mod enp0s3 ipv4.addresses 192.168.1.100/24 # 配置网关 $ nmcli con mod enp0s3 ipv4.gateway 192.168.1.1 # 设置手动模式(dhcp = auto, static = manual) $ nmcli con mod enp0s3 ipv4.method manual # 配置DNS $ nmcli con mod enp0s3 ipv4.dns "8.8.8.8" # 配置开机启动 $ nmcli con mod enp0s3 connection.autoconnect yes # 实际上述命令执行结果依然是存储在 /etc/sysconfig/network-scripts/ifcfg-* 文件中,所以直接按原有方式修改该文件也是可以的 SSH公钥认证 # 密码认证常常不安全,所以采用公钥认证 # 修改 /etc/ssh/sshd_config 文件 # 关闭密码认证 PasswordAuthentication no # 启用公钥认证 PubkeyAuthentication yes # 重启sshd服务即生效 $ systemctl restart sshd # 注意要先将客户机的公钥上传至目标服务器上,否则后面可能就没办法ssh连过去了(密码认证被禁) # 客户机上生成公私钥命令 $ ssh-keygen -t rsa -C "zlikun@studio" # 会生成公私钥文件,私钥文件应妥善保存,不要外泄 # ~/.
March 8, 2020

Nginx搭建直播服务

使用Nginx搭建RTMP直播流服务,提供直播流推送、直播播放、认证鉴权等功能 协议 三大直播协议 RTMP、HTTP-FLV、HLS,RTMP是Adobe公司为Flash播放器开发的私有直播协议,FLV是Adobe公司推出的另一种视频格式,而HTTP-FLV就是将流媒体数据封装成FLV格式并通过HTTP协议传输给客户端,而HLS则是Apple公司基于HTTP协议开发的流媒体传输协议,它会在服务器端将流媒体数据切割成连续的时长较短的ts小文件,并通过m3u8索引文件按序访问ts文件,而客户端只需要按序从服务器上获取ts文件来播放即可。一般RTMP在直播推流中用的多,而HLS则比较适合来播放视频用,但其会生成海量ts小文件,从而造成存储困难,所以一般使用云存储服务(七牛、阿里云等)比较好。 参考 https://www.cnblogs.com/upyun/p/9881865.html https://www.jianshu.com/p/32417d8ee5b6 安装 https://github.com/arut/nginx-rtmp-module # 系统为 CentOS-7 ,使用 YUM 安装了 Nginx,为了添加 nginx-rtmp-module 模块,所以需要重新编译安装 # 通过 `nginx -V` 命令查看其原始编译信息,重点是其已安装的模块,后面编译安装时这些模块一并装上 $ nginx -V nginx version: nginx/1.16.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled ... ... # http://nginx.org/en/docs/install.html # http://nginx.org/en/docs/configure.html # 下载源码,版本与当前使用 nginx 版本一致 $ curl -OL http://nginx.org/download/nginx-1.16.1.tar.gz $ tar zxvf nginx-1.
February 23, 2020

Hugo入门

官方网站 Hugo 是一个静态网页生成程序,基于Golang实现,但其打包后的程序不依赖外部环境,这点要比Hexo和Jekyll要好一些,另外因为是Golang实现的,其运行速度非常快,笔者选择Hugo做为静博客的生成程序 安装 https://gohugo.io/getting-started/installing/ # 笔者使用Manjaro系统(Linux)做为开发桌面系统, # 可以直接通pacman命令来安装,其它系统的安装方法参考官方文档 $ sudo pacman -S hugo # 查看版本以确认是否成功安装 $ hugo version Hugo Static Site Generator v0.64.0/extended linux/amd64 ... 示例 https://gohugo.io/getting-started/quick-start/ https://gohugo.io/getting-started/usage/ # 通过 help 子命令可以查看 hugo 的所有命令和子命令用法, # 当然你也可以通过 man 来查看 # 创建站点,需要指定一个目录,需要注意这个目录可以不存在, # 但如果存在,则必须是一个空目录 $ hugo new site hugo.zlikun.com # 目录结构 $ tree hugo.zlikun.com/ hugo.zlikun.com/ ├── archetypes │ └── default.md ├── config.toml ├── content ├── data ├── layouts ├── static └── themes 6 directories, 2 files # 最主要的几个目录/文件分别是: # config.
February 23, 2020

SSH基本用法

生成密钥 # 生成RSA密钥对,默认存储于 ~/.ssh/ 目录下,-C 参数指定备注信息 $ ssh-keygen -t rsa [-C "zlikun-dev@hotmail.com"] # ~/.ssh/id_rsa # ~/.ssh/id_rsa.pub # 查看 ssh-keygen 帮助信息 $ man ssh-keygen # 分发密钥,默认发送 ~/.ssh/id_rsa.pub 文件,也可以通过 -i 显示指定 $ ssh-copy-id [-i id_rsa.pub] <username>@<host>[:<port>] # 实际上是把密钥追加到目标服务器的 ~/.ssh/authorized_keys 文件中,所以使用其它方式追加都是可以的 # 如果是第一次手工创建文件,务必注意文件权限问题,设置为只有当前用户有读写权限(600或644)即可 $ ls -al ~/.ssh/authorized_keys -rw------- 1 root root 808 Jan 31 18:52 /root/.ssh/authorized_keys # chmod 600 /root/.ssh/authorized_keys 密钥登录 # 参考上面的步骤将公钥添加到目标服务器上 # 修改目标服务器的SSH配置 $ vim /etc/ssh/sshd_config # 允许密钥认证 PubkeyAuthentication yes # 指定密钥路径(默认值) AuthorizedKeysFile .
February 23, 2020

Manjaro基本配置

更换源 # 排列选择一个国内源,然后执行更新同步 sudo pacman-mirrors -i -c China -m rank sudo pacman -Syy # 添加Arch源 sudo vim /etc/pacman.conf [archlinuxcn] SigLevel = Optional TrustedOnly Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux-cn/$arch # 更新数据库并安装密钥 sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring # 升级系统 sudo pacman -Su pacman pacman 是 Arch 系Linux自带的包管理器,下面是一些常用命令 pacman -S package_name # 安装软件 pacman -S extra/package_name # 安装不同仓库中的版本 pacman -Syu # 升级整个系统,y是更新数据库,yy是强制更新,u是升级软件 pacman -Ss string # 在包数据库中查询软件 pacman -Si package_name # 显示软件的详细信息 pacman -Sc # 清除软件缓存,即/var/cache/pacman/pkg目录下的文件 pacman -R package_name # 删除单个软件 pacman -Rs package_name # 删除指定软件及其没有被其他已安装软件使用的依赖关系 pacman -Qs string # 查询已安装的软件包 pacman -Qi package_name # 查询本地安装包的详细信息 pacman -Ql package_name # 获取已安装软件所包含的文件的列表 pacman -U package.
February 23, 2020

About

测试页!!! 测试页!!!
© 负熵为生 2021