前两天为了测一个CH340的bug, 装了三遍20.04. bug解决完, 心想反正也要重新装各种软件, 不如直接装22.04吧. 把涉及的安装记录一下方便将来参考.
在Ubuntu网站 https://ubuntu.com/download/desktop 下载Ubuntu 22.04 LTS Desktop ISO, 下载完用sha256sum校验一下.
参考 https://www.cyberciti.biz/faq/creating-a-bootable-ubuntu-usb-stick-on-a-debian-linux/
在dd之前取消U盘挂载
milton@milton:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sdb 8:16 0 894.3G 0 disk
├─sdb2 8:18 0 977M 0 part /boot
└─sdb3 8:19 0 891.4G 0 part /
sdc 8:32 1 14.7G 0 disk <-- 这个是U盘
└─sdc1 8:33 1 14.7G 0 part /media/milton/U16G02
# 取消挂载
milton@milton:~$ sudo umount /media/milton/U16G02
之后再运行lsblk确认一下. 然后用dd写入
sudo dd if=ubuntu-22.04.1-desktop-amd64.iso of=/dev/sdc bs=1M status=progress
写入之后, 系统中能看到U盘的变化
U盘启动, 22.04的试用启动非常慢, 花费的时间是20.04的时间的十倍不止. 不确定是否是因为U盘慢.
安装的界面比较简单, 过程就不细写了. 分区记录一下
Ubuntu22.04 自带nano比较方便, VI和thinkpad的键不太兼容, 方向键不能直接使用, 按如下修改
sudo nano /etc/vim/vimrc.tiny
配置修改为
set nocompatible
set backspace=2
默认仓库为 http://cn.archive.ubuntu.com/ubuntu/ , 这个地址总体还是快的, 但是偶尔会连接错误, 有时候会被解析为ipv6连不上, 干脆换成USTC源. 在命令行中用gedit打开
sudo gedit /etc/apt/sources.list
将 http://cn.archive.ubuntu.com/ubuntu/ 全部替换为 http://mirrors.ustc.edu.cn/ubuntu/, 然后保存
编辑 ~/.bashrc, 修改 ll 的alias
# some more ls aliases
alias ll='ls -lF'
对于Thinkpad, 和指点杆一起使用中间进行滚动操作时, 经常会误操作为中键粘贴, 需要关闭
sudo apt install gnome-tweaks
在 Keyboard & Mouse 中关闭
默认的列只有名称, 大小, 日期和星号, 如果调整, 只能每个文件夹挨个调整, 非常不方便.
使用gsettings进行设置
# 读取当前设置
$ gsettings get org.gnome.nautilus.list-view default-visible-columns
['name', 'size', 'date_modified', 'starred']
# 查看可以使用的列
$ gsettings get org.gnome.nautilus.list-view default-column-order
['name', 'size', 'type', 'owner', 'group', 'permissions', 'mime_type', 'where', 'date_modified', 'date_modified_with_time', 'date_accessed', 'date_created', 'recency', 'starred']
# 设置
$ gsettings set org.gnome.nautilus.list-view default-visible-columns "['name', 'size', 'type', 'date_modified', 'owner', 'group', 'permissions']"
从Ubuntu18.04开始, 文件管理器nautilus在键盘输入时执行的是搜索, 不符合使用习惯, 需要手动替换为支持type-ahead的版本
# 添加软件源
sudo add-apt-repository ppa:lubomir-brindza/nautilus-typeahead
# 更新
sudo apt dist-upgrade
# 重启 alt + f2 然后执行
nautilus -r
在 /etc/apt/sources.list.d/ 下创建 google-chrome.list
sudo nano /etc/apt/sources.list.d/google-chrome.list
内容
deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main
然后
# 会提示deprecated, 不影响安装
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt update
sudo apt install google-chrome-stable
参考 https://haydenjames.io/remove-snap-ubuntu-22-04-lts/
snap是一个容器系统, 不太喜欢这种牺牲性能和资源换兼容性的做法, 安装一开始就卸载掉吧.
首先列出已经安装的snap应用
snap list
停止snapd服务
sudo systemctl dis安装able snapd.service
sudo systemctl disable snapd.socket
sudo systemctl disable snapd.seeded.service
按顺序删除snap应用, 因为互相有依赖关系, 有些名称会随版本升级变化, 如果不正确, 输入时tab一下
sudo snap remove firefox
sudo snap remove snap-store
sudo snap remove gtk-common-themes
sudo snap remove gnome-3-38-2004
sudo snap remove snapd-desktop-integration
sudo snap remove core18
sudo snap remove bare
sudo snap remove snapd
都删除了之后, 删除缓存
sudo rm -rf /var/cache/snapd/
最后完整删除snapd
sudo apt autoremove --purge snapd
删除个人用户下的 ~/snap 目录
rm -rf ~/snap
默认安装的Firefox在删除snap时一起删除了, 需要另外安装.
创建文件
i /etc/apt/preferences.d/firefox-no-snap
添加以下内容, 将Ubuntu自带的firefox降级
Package: firefox*
Pin: release o=Ubuntu*
Pin-Priority: -1
保存后, 添加新的 Mozilla team Ubuntu PPA for Firefox:
sudo add-apt-repository ppa:mozillateam/ppa
最后通过 apt 安装
sudo apt update
sudo apt install firefox
对于不想浪费界面空间的人而言, unite 效果绝对 blow your mind
sudo apt install gnome-shell-extension-manager
然后运行Extension Manager, 在 Browse 里面找到 Unite, 安装并启用, 默认的配置就很好. 如果嫌最大化之后窗口按钮不好点, 可以在 Appearance里面将 Top bar window buttons position 改成 last.
明显的界面改动体现在
因为brltty服务与CH341 USB设备冲突
usb 3-4.2: usbfs: interface 0 claimed by ch34x while 'brltty' sets config #1
需要将其禁用
sudo systemctl mask brltty.service
sudo systemctl mask brltty-udev.service
普通用户默认无法连接 ttyUSB0 这些设备, 需要将自己添加到 dialout 用户组. 平时用不到USB2TTL这些外设的可以不设置.
sudo usermod -a -G dialout $USER
这个修改需要重启后才能生效
在 /etc/udev/rules.d/ 目录下新增 文件 45-usb-stlink-v2.rules 添加以下内容
#FT232
ATTRS{idProduct}=="6014", ATTRS{idVendor}=="0403", MODE="666", GROUP="plugdev"
#FT2232
ATTRS{idProduct}=="6010", ATTRS{idVendor}=="0403", MODE="666", GROUP="plugdev"
#FT230X
ATTRS{idProduct}=="6015", ATTRS{idVendor}=="0403", MODE="666", GROUP="plugdev"
#STLINK V1
ATTRS{idProduct}=="3744", ATTRS{idVendor}=="0483", MODE="666", GROUP="plugdev"
#STLINK V2
ATTRS{idProduct}=="3748", ATTRS{idVendor}=="0483", MODE="666", GROUP="plugdev"
然后执行sudo udevadm control --reload-rules, 设置在再次连接stlink后生效
22.04默认的安全配置下, 普通用户不能运行dmesg, 而硬件开发中需要经常使用这个命令, 每次sudo很不方便. 解除限制需要编辑
sudo vi /etc/sysctl.d/10-kernel-hardening.conf
取消这一行的注释, 里面有关于这个设置的详细说明
# kernel.dmesg_restrict = 0
根据安装说明 http://www.sublimetext.com/docs/linux_repositories.html
先安装 GPG key
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/sublimehq-archive.gpg
如果无法直接下载执行, 可以下载文件后
cat sublimehq-pub.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/sublimehq-archive.gpg
添加仓库
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
安装
sudo apt update
sudo apt install sublime-text
非常好用的看图软件. 访问https://www.xnview.com/en/xnviewmp/#downloads, 下载 XnViewMP-linux-x64.tgz, 解压到 /opt/ 下, 设置owner, 将 XnView.desktop 复制到 /usr/share/applications/ 目录下, 就可以使用了. XnView.desktop里面指向的目录就是 /opt/XnView, 如果使用其他路径需要相应修改
[Desktop Entry]
Value=1.0
Encoding=UTF-8
Terminal=0
TryExec=/opt/XnView/xnview.sh
Exec=/opt/XnView/xnview.sh %F
Icon=/opt/XnView/xnview.png
Type=Application
Categories=Graphics;
StartupNotify=true
Name=XnView Multi Platform
GenericName=XnViewMP
MimeType=image/bmp;image/jpeg;image/png;image/tiff;image/gif;
在Ubuntu下替代XShell的多终端管理工具, 界面一般, 但是能用
curl -1sLf 'https://dl.cloudsmith.io/public/asbru-cm/release/cfg/setup/bash.deb.sh' | sudo -E bash
sudo apt install asbru-cm
因为不使用snapd, 所以不能直接从商店里安装. 从 jetbrains官网下载, 解压并移动到 /opt/jetbrains
# 解压
tar xvf ideaIU-2022.2.2.tar.gz
# 创建目录
cd /opt/
sudo mkdir jetbrains
cd jetbrains/
# 移动文件并设置权限
sudo mv ~/Backup/Linux/idea-IU-222.4167.29/ .
sudo chown -R root:root idea-IU-222.4167.29/
cd idea-IU-222.4167.29/
# 看一下安装说明
more Install-Linux-tar.txt
# 运行, 这时候会初始化, 如果是商业版, 会让你登录
cd bin/
./idea.sh
# 建立一个软链, 待会儿做桌面图标需要用到
cd ..
sudo ln -s idea-IU-222.4167.29 idea
能正常运行之后, 还需要创建桌面图标, 可以通过 Tools->Create Desktop Entry, 也可以手工创建, 如果你的安装目录不一样, 里面的路径需要对应修改一下
社区版sudo nano /usr/share/applications/idea-ce.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA Community Edition
Icon=/opt/jetbrains/idea/bin/idea.svg
Exec="/opt/jetbrains/idea/bin/idea.sh" %f
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea-ce
StartupNotify=true
商业版sudo nano /usr/share/applications/idea.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA
Icon=/opt/jetbrains/idea/bin/idea.svg
Exec="/opt/jetbrains/idea/bin/idea.sh" %f
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea
StartupNotify=true
过程和 idea 基本一样, 桌面图标配置文件为
[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm Professional Edition
Icon=/opt/jetbrains/pycharm/bin/pycharm.svg
Exec="/opt/jetbrains/pycharm/bin/pycharm.sh" %f
Comment=Python IDE for Professional Developers
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm
StartupNotify=true
如果机器中存在安装了Win10的硬盘, 如果Win10启用了 fast startup, 那么Win10的分区在挂载后会是只读的状态, 需要关闭fast startup
如果选项是灰的无法修改, 需要点击Change settings that are currently unavailable授权后再修改.
Thinkpad上安装TLP可以设置电池的充电阈值, 避免电池长期处于充饱的状态, 减慢电池衰减速度. 直接sudo apt install tlp可以安装, 注意需要配置一下
# 修改 /etc/tlp.d/00-template.conf
# 00-template.conf - Template for TLP drop-in customizations
# See full explanation: https://linrunner.de/tlp/settings
#
# PARAMETER="value"
# PARAMETER+="add value"
USB_BLACKLIST="1a86:7523"
AHCI_RUNTIME_PM_ON_BAT=on
前一个, 是避免连接CH340之后不断disconnected, 第二个, 是避免Thinkpad在休眠后无法唤醒屏幕无响应, 对应的问题描述在 System unresponsive on wakeup from suspend on battery mode
Ubuntu22.04, 整体的使用感受上和20.04相似, 但是在一些方面有明显区别
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm