分类 软件 下的文章

AppVeyor作为一个CI/CD平台,提供自动的持续集成和持续部署的服务。

何谓持续集成呢,从我个人的角度理解,项目都是以源码的形式编写的。在交付用户使用的时候,显然通常需要编译为机器可直接运行的二进制文件。二进制文件的修改往往很困难,因而一般都会选择从修改后的源码重新编译一份。在产品的开发或者维护中,经常需要进行小修小补式的更改,来添加新功能或者修复bug。而每次重新编译这个过程繁琐而不可避免。CI做的就是这个事情,不但一键编译,连这个触发编译的操作都是自动探测完成的。比如说Github,CI可以做到提交一个commit就自动编译项目。

用别人的话总结说就是,CI可以完成项目中重复性的工作。

然后个人感觉,上手前主要需要了解两个东西:整个CI过程的分段定义,以及appveyor.yml的作用和用法。这个可以通过看官方文档完成。了解基本用途的耗时并不长。参见https://www.appveyor.com/docs

Apache官方提供的Hadoop下载是没有完整支持Windows的,比如一开始运行的时候会提示少了winutils.exe。后来到Stackoverflow上查了一下之后发现,这玩意需要自己编译。虽然Github上有repo提供预编译的,但是版本并不全。于是决定自己编译。

虽然对Java的构建系统几乎没什么了解,但是操作起来实在是比某Tensorflow舒服多了。唯一美中不足的是我对于Maven的编译选项不是很了解,到网上搜了一些博客之后才大概知道含义。

可参考这个 https://pravinchavan.wordpress.com/2013/04/14/building-apache-hadoop-from-source/

在这里用的是Hadoop 3.1.3,官网上下载的源码包。

编译前的工作按照BUILDING.txt,拉到最底下Windows部分,按照操作即可,唯一要注意的地方是如果使用新版本的VS的话,vcvars.bat的位置会变,比如VS2019 Enterprise的话需要将执行两个操作:
1) 将MSVS的值改为C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
2) 最后一行改为CALL "%MSVS%\VC\Auxiliary\Build\vcvarsall.bat" %VCVARSPLAT%

编译用的命令是:mvn package -Pdist -Psrc -Dtar -DskipTests
编译完成后的输出目录在hadoop-dist\target下。
-Dtar表示编译完成后打个包。
其中原本还有个-Pdocs命令可以加上去的,应该是指编译javadoc,但是可能是由于Hadoop没有仔细针对Windows进行测试的原因,加了这个会报错。
同时怀疑这个-Psrc也不用加,好像是生成源码包用的。

顺带一提,-P表示加载profile,类似于make指定任务一类的,但是又好像不同,因为这里可以同时指定多个profile。

然后就是如果不用-DskipTests跳过测试的话会报一堆错(估计还是文件系统的锅)。

tlmgr option repository http://mirror.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet 换为国内清华大学的源。中科大的不稳,有时候半天连不上
还有一个问题是有时候设置了没用,执行命令的时候repository会自动给你改回去,要在要执行的命令里作为--repository提供才行。

tlmgr install scheme-full 安装完整版

tlmgr info schemes 查看当前TeXLive的配置状态(考虑到不同电脑存储容量不同,TeXLive将软件按照常用度/重要性分为了几个等级的包,可以自行选择安装)

加源 rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

yum install mysql-conmunity-server
grep "A temporary password" /var/log/mysqld.log

但是似乎在我这不起作用,并看不到临时登录密码。
考虑尝试MySQL通用的暴力登录法重置密码:

service mysqld stop
mysqld --user mysql --skip-grant-table &
mysql -uroot

进去以后先执行FLUSH PRIVILEGES;,把权限管理加载回来,然后再用ALTER USER root IDENTIFIED BY 'your_password'修改密码。
然后可能会遇到密码修改失败的问题,这是因为MySQL8中使用了更为严格的默认密码策略。
可参见官方文档https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html。
查看当前策略使用命令SHOW VARIABLES LIKE 'validate_password.%'; 修改的话使用set global key=val;格式的语句可以修改对应的设置。 完了之后记得killall mysqld,等一会之后用service或者systemctl重启mysqld。之前的操作会使得任何人可以直接免密登录mysql的。

是的,铁头娃又来了

平台:CentOS 7.7

sudo yum groupinstall "Development Tools"

有的Gemfile会影响某些gem包的行为,比如在不同目录下执行同一命令,发现包版本不同。 随着gem的版本,会有固定的默认功能包(好像也叫gem?)版本,更改方法是改变gem版本。

装postgresql的时候要记得装postgresql-contrib,有用到的extension在这个包里提供。 gem和go有的时候记得换源,不然速度太慢。

  1. git要升级
  2. ruby要升级,而且最好是2.5.3,版本太高一堆警告
  3. postgresql > 9.4
mkdir -p /var/cache/swap
cd /var/cache/swap
dd if=/dev/zero of=myswap bs=1M count=2048
mkswap myswap
chmod 600 myswap
# 在/etc/fstab中添加一行:/var/cache/swap/myswap swap swap defaults 0 0

yum update -y
# 一键安装gcc等开发工具
yum groupinstall "Development Tools" -y

# nodejs 10源
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
# yarn源
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
yum install yarn node -y

# 更新ruby
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.7.tar.gz
tar xzf ruby-2.5.7.tar.gz
cd ruby-2.5.7
./configure --enable-shared --prefix=/usr # 直接覆盖老版本
make -j2 && make install # 因为是2核vcpu

# 更新git
wget https://mirrors.kernel.org/pub/software/scm/git/git-2.21.1.tar.gz
tar xzf git-2.21.1.tar.gz
cd git-2.21.1
./configure --prefix=/usr # 直接覆盖老版本
make -j2 && make install

# 安装postgresql
# 可以到这里自定义rpm源:https://www.postgresql.org/download/linux/redhat/,也可以下载源码自行编译
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
yum install postgresql12 -y

如果postgresql没有正常工作,可能是没有自动初始化,参考这里:https://www.postgresql.org/docs/12/install-short.html

然后继续

# 创建gitlab用户
adduser git -d /home/git

# clone项目,选择自定义分支
su git
cd ~
git clone https://gitlab.com/gitlab-org/gitlab-foss.git gitlab
git checkout 11-11-stable-patch-2

# 接下来记得参考*对应分支*的安装文档进行操作
# 比如本分支:https://gitlab.com/gitlab-org/gitlab-foss/-/blob/11-11-stable-patch-2/doc/install/installation.md