This article records my errors and difficulties encountered on the first day I came across Red Hat Enterprise Linux 7 in my school’s laboratory, as a normal user without sudo privileges.
The login screen was gdm, and the desktop environment was GNOME. IBus was used as the input engine.
The principal goal is to install tools that I usually use on RHEL without sudo permissions. To do so, I’ve downloaded the executable binaries or source code of these packages. As I wanted to focus on my studies, I prefer downloading executable binaries.
|Go||installed from binary archive|
|Hugo||compiled from source code|
|Zsh||compiled from source code|
|Oh My Zsh||ran installation script downloaded from GitHub|
|Sublime Text 3||installed from binary archive|
I cloned the repo before a failed
compilation. After knowing that Go can be installed by extracting a gzipped
tarball, I grabbed one marked Darwin. The decompression took several minutes.
After that, bash couldn’t execute the binary file
go. It took me fifteen
minutes to realize that Darwin is the name for an OS X release.
Then, I downloaded the right archive, issued
go version and got “permission
denied”. The files in
./bin were not marked as executable. After fixing
this, the command finally gave “1.11”.
The first linked article suggested setting
/usr contains common packages for normal users, dropping a package there
requires write access, and the directory is owned by root. Therefore, I’ve
~/bin/go instead. The
go binary file is located at
GOROOT, so that expands to
The official Go installation verification is slightly better than using
version. A simple Hello World reminded me to mark
./pkg as executable.
After that, the program succeeded in greeting the world.
$HOME/go/Proj/Proj1 a bit strange and too long as
official guide suggested
$HOME/go without requiring us to put
PATH. Nevertheless, I included it back later during Hugo installation.
GitLab SSH key
SSH connection to the Git service provider is preferred over HTTPS connection. SSH allows pushing commits without typing the user password every time, once the private key has been added to the SSH agent.
Reviewing GitLab’s official guide, I’ve learnt that flag
$ ssh-keygen -o -t rsa -C “firstname.lastname@example.org” -b 4096
provides additional security to the private key by raising the difficulty of a brute-force attack. Under this flag, the newly generated keypairs aren’t compatible with the PEM format.
- evaluating the SSH agent’s PIDstow
- adding the SSH private key to the SSH agent
I tried cloning the GitLab repo for this blog, but the SSH agent refused that operation, despite my matching keypairs. I double checked the public key in my GitLab account to ensure that it matched exactly with my local copy.
I searched using phrases from the error message for an hour. An environmental
variable catched my eyes:
SSH_AUTH_SOCK. Some post suggested setting this to
zero. In my RHEL session, this was set to
It said somewhere that one needed to disconnect from the current network and
reconnect to it so that the SSH configurations can take effect. To my surprise,
after clicking on the “off” button, the system hanged. I couldn’t switch to
TTY. Since the room accommodates over twenty work stations, and there were over
ten rooms, I thought that they were virtualized machines: the work station got
their power from the LAN. Once it’s cut, it lost its power. I resorted to
press the power off button—that’s bad for HDD hard disk.
I wasted time on finding a mistaken step. In fact, I had done nothing wrong. It remained to reboot the machine. I finally managed to use Git over SSH.
The Japanese input was following a French keyboard layout, and there’s no way to change it. Click on the keyboard button didn’t display a popup window with a keyboard layout, unlike other input methods.
Unsuccessful GNU Stow installation
The symlink generator GNU Stow can be utilized to handle dotfiles.
The installation dependency includes some test modules of Perl. Omitting them
make && make install after
./configure can get it compiled, but the lack
some modules prevents it from running.
I don’t wish to spend time on resolving this dependency problem because
Nonetheless, I’ve learnt to add
specify the installation path for
I would like to have a compiled binary archive, but I could only find the source
code. Luckily, the compilation was successful, and Zsh was installed in
Oh My Zsh
I copied the command for installing the script, which attempted to run
This failed since it’s impossible to register my own compiled shell into
/etc/shells. I was told to change the default shell to Zsh, which I would
love to. I tried
export SHELL=$(which zsh) and
exec -l $(which zsh) in
~/.bash_profile. However, gdm’s login screen
automatically logged me out after a successful login. I had to use TTY to
undo these changes.
Since then, to use Zsh, I need to key in
Sublime Text 3
- One click for downloading the compressed binary tarball.
- Another click to opening it in a GUI archive management tool.
- Third click to choose a target path for the decompression. (I’ve chosen
- (Optional) Add the installed Sublime Text 3 directory to