近些年都是用Powerpoint画架构图,N年没有使用过Visio。近日答应某人给他画个架构图,发现服务器和不同网络设备的图标还是使用Visio方便,于是下载了Visio 2016,计划在机器上安装。因为之前电脑已经安装了Office 365家庭版,运行Visio的setup程序时自动调用Windows的即插即用Office,安装365版的Visio,而家庭版的365又没带Visio授权,真是纠结。
尝试把Office 365卸载,先安装Visio 2016再装Office 365,但系统又提示安装了Visio后即插即用Office有冲突,没法安装。
放狗搜了一番,发现可以使用Office部署工具来解决这个问题。在微软官网下载Office部署工具,运行exe文件后得到一个setup.exe文件和名字分别为configuration-Office365-x64.xml,configuration-Office365-x86.xml,configuration-Office2019Enterprise.xml三个示例配置文件。可参照Office部署工具页面的说明修改配置文件,也可以使用M记的配置文件生成页面图形化向导生成配置文件。
以下是俺的配置文件:
<Configuration ID="7028facf-7ea8-4d12-91b1-6fd0f07ff4a2">
<Add OfficeClientEdition="64" Channel="SemiAnnual" AllowCdnFallback="TRUE">
<Product ID="O365HomePremRetail">
<Language ID="zh-cn" />
<ExcludeApp ID="Access" />
<ExcludeApp ID="Groove" />
<ExcludeApp ID="Lync" />
<ExcludeApp ID="Publisher" />
<ExcludeApp ID="OneNote" />
<ExcludeApp ID="Outlook" />
</Product>
<Product ID="VisioProXVolume" PIDKEY="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX">
<Language ID="MatchOS" />
<ExcludeApp ID="Groove" />
<ExcludeApp ID="OneDrive" />
</Product>
</Add>
<Property Name="SharedComputerLicensing" Value="0" />
<Property Name="SCLCacheOverride" Value="0" />
<Property Name="AUTOACTIVATE" Value="0" />
<Property Name="FORCEAPPSHUTDOWN" Value="FALSE" />
<Property Name="DeviceBasedLicensing" Value="0" />
<Updates Enabled="TRUE" />
</Configuration>
使用Office 365家庭版订阅,保留Word,Excel,Powerpoint和Onedrive,同时安装Visio专业版VOL批量授权版本。PIDKEY后面的值是Visio的序列号。
运行Office部署工具解压后的setup.exe,分别下载与安装所需的Office组件。
C:\Users\admin\Downloads\Office Deployment Tool>setup /download ..\Config.xml
C:\Users\admin\Downloads\Office Deployment Tool>setup /configure ..\Config.xml
一番折腾,终于搞定。
修改了IP地址,把Wifi打开后,驾轻就熟地修改了相关的配置,增加了第三方源,准备开始安装你懂的SS和ChinaDNS等组件。没想到往常屡试不爽的opkg install命令返回了安装失败提示:
Incompatible with the architectures configured
仔细比对了所有的配置,确认没有错误,但是安装新增的第三方包时总是报错。
arch all 1
arch noarch 1
arch arm_cortex-a9_vfpv3-d16 10
比原来系统打印出来的架构型号多了一个d16,而第三方源的库里貌似没有arm_cortex-a9_vfpv3-d16这样一个型号的源,尝试修改/etc/opkg.conf文件,把原来CPU型号列表增加不带d16行。
arch all 1
arch noarch 1
arch arm_cortex-a9_vfpv3 8
arch arm_cortex-a9_vfpv3-d16 10
再运行opkg install,包装成功。
系统升级后,因为要安装python开发环境方便,想安装brew,但尝试运行brew命令命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
系统却直接报错。
Error: Failure while executing; `git clone https://github.com/Homebrew/homebrew-core /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core` exited with 128.
Error: Failure while executing; `/usr/local/bin/brew tap homebrew/core` exited with 1.
Failed during: /usr/local/bin/brew update –force
以为是网络问题,架上梯子后重新运行,问题依旧。
手工用git把brew拉到本地目录,重新把运行安装命令,成功解决。
git clone https://github.com/Homebrew/homebrew-core /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1
厌倦了登录服务器经常提示有N个补丁需要更新,需要重新启动之类的,可以通过服务器自动更新解决。
1.安装自动更新支持包
安装unattended-upgrades包。
sudo apt install unattended-upgrades
2.配置自动更新
编辑配置文件
sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
该文件前半段长这样子:
最重要的是把“updates”这一行注释去掉。
“${distro_id}:${distro_codename}-updates”;
建议把自动清理不用内核文件的行也同时打开。
Unattended-Upgrade::Remove-Unused-Kernel-Packages “true”;
Unattended-Upgrade::Remove-Unused-Dependencies “true”;
自动重启及时间看个人喜好打开。
3.启用自动更新
sudo vi /etc/apt/apt.conf.d/20auto-upgrades
按需要修改内容
APT::Periodic::Update-Package-Lists “1”;
APT::Periodic::Download-Upgradeable-Packages “1”;
APT::Periodic::AutocleanInterval “3”;
APT::Periodic::Unattended-Upgrade “1”;
4.确认是配置是否起作用
用dry run方式看自动更新配置是否起作用
sudo unattended-upgrades –dry-run –debug
一无聊又搞事情,把一台CentOS机器直接从6升级到7,结果升级后要安装东西时,用yum update出现了错误,显示python(abi) = 2.6 is needed by (installed) python-argparse-1.2.1-2.el6.centos.noarch。
放狗搜了半天,试了几种方法还是搞不好。仔细分析具体信息,应该是系统残留的CentOS6包导致的,删除所有的el6包解决问题。
rpm --erase --nodeps $(for pkg in $(rpm -qa | grep '\.el[56]\.' | grep -v kmod | grep -v kernel); do rpm -q $pkg --qf '%{NAME} ' ; done)
最近开始把VS Code做为主力代码编辑器,结果在MAC上每次打开总提示
Git installation not found.
没有就装呗,打开Console,Git显示
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
重装Xcode command line tool解决
xcode-select --install
对于度娘百度云的鸡贼限速实在无话可说,对于合作伙伴把ISO文件放在度盘让俺去下载的丧心病狂行径更加是深恶痛绝。哥忍着病疼周末加班处理问题居然要花大量时间去等工具下载完成。叔可忍婶不可忍,只能想办法把东西下载回来。
开搞。
在https://github.com/acgotaku/BaiduExporter下载BaiduExporter.crx,手动安装到Chrome。
sudo apt-get install aria2
打开度盘,选中你要下载的文件,选择导出下载菜单的文本导出。把显示的文件内容复制下来,然后在粘贴到命令框即可下载。
如果被度娘断开连接,可以重新输入命令实现断点续传。
Ubuntu 16.04 Server LTS升级内核时,每次都跑出来“W: mdadm: /etc/mdadm/mdadm.conf defines no arrays”的提示。明明没有用RAID,查了mdadm.conf也有没有任何相关的配置。虽然不影响使用,但是强迫症患者还是觉得很不爽。
先删除mdadm.conf文件
# rm /etc/mdadm/mdadm.conf
再用update-initramfs命令,自动生成新的mdadm.conf文件。
# update-initramfs -u
天下太平。
对于俺这种升级强迫症患者,Ubuntu的/boot分区接近100%是常见的事。日前发现公司一台测试服务器又提示/boot空间快满。习惯性的想删除内核文件释放空间,运行命令,结果与自己期望相悖,系统报空间不,没法删除旧内核文件。
# sudo apt-get remove linux-image-4.4.0-28-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
linux-headers-4.4.0-24 linux-headers-4.4.0-24-generic linux-headers-4.4.0-28 linux-headers-4.4.0-28-generic linux-headers-4.4.0-31 linux-headers-4.4.0-31-generic
linux-image-4.4.0-31-generic linux-image-extra-4.4.0-31-generic
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
linux-image-4.4.0-28-generic linux-image-extra-4.4.0-28-generic
0 upgraded, 0 newly installed, 2 to remove and 89 not upgraded.
3 not fully installed or removed.
After this operation, 218 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 217969 files and directories currently installed.)
Removing linux-image-extra-4.4.0-28-generic (4.4.0-28.47) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-28-generic /boot/vmlinuz-4.4.0-28-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-28-generic /boot/vmlinuz-4.4.0-28-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-28-generic
gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-4.4.0-28-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
dpkg: error processing package linux-image-extra-4.4.0-28-generic (–remove):
subprocess installed post-removal script returned error exit status 1
Removing linux-image-4.4.0-28-generic (4.4.0-28.47) …
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-28-generic /boot/vmlinuz-4.4.0-28-generic
update-initramfs: Deleting /boot/initrd.img-4.4.0-28-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-28-generic /boot/vmlinuz-4.4.0-28-generic
Generating grub configuration file …
Found linux image: /boot/vmlinuz-4.4.0-63-generic
Found initrd image: /boot/initrd.img-4.4.0-63-generic
Found linux image: /boot/vmlinuz-4.4.0-59-generic
Found initrd image: /boot/initrd.img-4.4.0-59-generic
Found linux image: /boot/vmlinuz-4.4.0-38-generic
Found initrd image: /boot/initrd.img-4.4.0-38-generic
Found linux image: /boot/vmlinuz-4.4.0-31-generic
Found initrd image: /boot/initrd.img-4.4.0-31-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done
Errors were encountered while processing:
linux-image-extra-4.4.0-28-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
运行以下命令先清除空间,确认/boot分区已有足够空余。
# sudo apt-get clean
# df -h
再用以下命令确定现在所用内核及已安装内核文件,清除不需要的内核文件。
# uname -a
# dpkg --get-selections|grep linux-image
# sudo apt-get remove linux-image-4.4.0-28-generic
计划把公司应用后台的数据库服务也统一迁移到docker上,因此起了在docker上部署Oracle数据库的念头。记得以前在docker hub上看到过现成的数据库image,上去一搜,发现不是版本太低就是说被O记要求删除。既然是这样,那O记官方有没以支持呢?放狗一搜,发现O记官方在github上有专门的docker images项目,包含了Java、数据库、应用等等的镜像生成文件。就算是自己生成镜像文件,这些资料也对写Dockerfile很有参考价值。
在github上下载Oracle数据库的docker文件,在OTN下载好Oracle Database 12C的安装包,把zip文件置于OracleDatabase/dockerfiles/12.0.0.2目录下,然后开始Oracle数据库docker的无脑安装 。
1.运行dockerfiles下的buildDockerImage.sh命令
从Oracle Linux的slim-7版本生成数据库镜像文件,该命令支持生成Oracle数据库企业版、标准版和XE版本。俺使用的是企业版。
# ./buildDockerImage.sh -v 12.1.0.2 -e -i
该脚本命令参数说明如下:
-v: version to build
Choose one of: 11.2.0.2 12.1.0.2
-e: creates image based on 'Enterprise Edition'
-s: creates image based on 'Standard Edition 2'
-x: creates image based on 'Express Edition'
-i: ignores the MD5 checksums
开始配置环境,复制安装文件,静默安装数据库,最后生成镜像。大概需要10来分钟时间。
注:在生成数据库镜像前,请特别留意Docker的存储驱动配置必须btrfs或overlay2,如果使用aufs在生成过程中会出现各种问题,俺还特意在github上特意开了issue讨论这个问题。
2.在docker容器中运行Oracle数据库
docker run --name \
-p :1521 -p :5500 \
-e ORACLE_SID= \
-e ORACLE_PDB= \
-e ORACLE_CHARACTERSET= \
-v [:]/opt/oracle/oradata \
oracle/database:12.1.0.2-ee
Parameters:
–name: The name of the container (default: auto generated)
-p: The port mapping of the host port to the container port.
Two ports are exposed: 1521 (Oracle Listener), 5500 (OEM Express)
-e ORACLE_SID: The Oracle Database SID that should be used (default: ORCLCDB)
-e ORACLE_PDB: The Oracle Database PDB name that should be used (default: ORCLPDB1)
-e ORACLE_CHARACTERSET:
The character set to use when creating the database (default: AL32UTF8)
-v The data volume to use for the database.
Has to be owned by the Unix user “oracle” or set appropriately.
If omitted the database will not be persisted over container recreation.
近期评论