centos6上にvirtualboxでcentos8環境を作りたい
はじめに
centos6上にvirtualboxでcentos8環境を作りたい。
正攻法でうまく行かなかったので、vagrantのちからを借りようとしたら
うまくできなかったので、邪道な方法で解決した。
$ curl -ksSLO https://releases.hashicorp.com/vagrant/2.2.14/ # rpm -Uvh ./vagrant_2.2.14_x86_64.rpm $ vagrant box add https://app.vagrantup.com/centos/boxes/8 An error occurred while downloading the remote file. The error message, if any, is reproduced below. Please fix this error and try again. OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to proxy.co.jp:8080 $ vagrant plugin install vagrant-proxyconf An error occurred while downloading the remote file. The error message, if any, is reproduced below. Please fix this error and try again. OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to proxy.co.jp:8080 $ curl -ksSLO https://app.vagrantup.com/centos/boxes/8/versions/2011.0/providers/virtualbox.box $ vagrant box add centos8 ./virtualbox.box $ vagrant init $ vi Vagrantfile $ vagrant up
おわりに
終始、curlしてどうにかする方法で解決した。
(時間ないときはとりあえず解決する)
proxy環境困る。。。
参考
virtualenvでpython環境を作る on Centos7
はじめに
python3を使いたいがcentos7はpython2.7だったりする。
新しい環境ごとにpython3環境を構築しているので、手順を記録する。
linuxコマンドがpython2.7を使っていたりするので、あんまり触りたくない。
そこで、virtualenvを用いて指定したバージョンのpythonを使用する環境を作成する。
virtualenvのインストール
virtualenvインストールするだけ。
# yum install python-virtualenv
環境で使用するpythonのインストール
virtualenv環境で使用するバージョンのpythonをインストールする。
# yum install python3
コマンドうってインストール確認する。
いや、しなくていい。
$ virtualenv --version 15.1.0
python環境の作成
ディレクトリはテキトーに掘って移動する。
virtualenvコマンドは引数に、virtualenv環境で使用するバージョンのpythonのパスと、環境名を取る。
virtualenv [option] python_binary dir_name
$ mkdir venv && cd venv $ virtualenv -p /usr/bin/python3 py3
環境のアクティブ化、デアクティブ化
作成した環境を使用したい場合
$ . py3/bin/activate (py3) $
作成した環境のactivateファイルを.
の引数にすると、環境がアクティブになりホスト名の前に環境名が表示される。
もちろん、.
はsource
でもよい。
(.bashrcとか読み込むときに使うやつと同じ)
activateファイルを見に行くとbashから読み込んでね、って書いてある。
単純にactivateファイルを実行しようとする失敗をやりがち。
環境から抜ける場合
(py3)$ deactivate $
どこでもいいのでdeactivateってうつと環境名の表示が消えて環境がデアクティブになる。
おわりに
virtualenvを用いて指定したバージョンのpythonを使用する環境を作成する手順を示した。
昔yum installしたときはpython27-virtualenvだったような気がする。
anacondaとかなんとかあるけど、楽ちんなのでvirtualenv結構好き。
何回目かのgit clone できない問題対応
もう何回になるかわからないけど、いつも忘れるgit cloneできないときの解決法を記録する。
よくぶち当たるのが下記の問題
- proxyの設定
- proxyのせいでSSLエラー
- gitバージョンが古い
proxyの設定
到達できないとき。
(たまにdnsの設定できてないとかいるけどまあ)
git config --global http.proxy http://proxy.no.address:portnumber git config --global https.proxy https://proxy.no.address:portnumber
proxyのせいでSSLエラー
SSL certificate problem: ~が出たとき。
あんまりやりたくない
git config --global http.sslVerify false
gitバージョンが古い
401 Authorization Required while accessing ~が出たとき。
もっとやりたくないがurlにユーザ名とパスを設定すると解決する。
git clone https://username:pass@git.no.address
おわり
CentOS6のサポートが切れたのでyumの設定を変更する
はじめに
(2021/02/01更新)
CentOS6の環境にyumでソフトをインストールしようとしたらできなかったので、
泣きながら設定を変更した。
vault.centos.orgを有効化
http://archives.fedoraproject.org/pub/archive/epel/
すでにサポートが切れた過去の遺産を格納する貯蔵庫を参照できるようにする。
めんどいのでmirrorをvaultで書き換えた。
大体、notfoundになったページを見に行くとreadmeにこっち見てねって書いてある気がする。
(2021/02/01更新)
下記、baseの例
updates、extrasなど使用するものは同様に変更する。
vi /etc/yum.repos.d/CentOS-Base.repo -baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ +baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/ -gpgcheck=1 +gpgcheck=0
CentOS-*.repoの$releaseverの値を変更
vaultにはreleasever=6
なんてない。
/etc/centos-release
を確認したところ6.5だったので
releasever=6.5
に設定する。
centos-releaseを書き換えればよいかと思ったがうまくできなかった。
なので、/etc/yum/vars/releasever
を作成して6.5と記入した。
おわりに
サポート期限を意識してOSをきちんとアップデートしよう。
一体何台になるのか計算もしたくない...
何回やっても忘れるgitのリポジトリ作成fromローカルマシン
はじめに
もう何回やったかわからない、ローカルマシンからのgitのリポジトリ作成。
しかし、また忘れたので今度こそメモする。
ローカルマシン: windows10
環境: vscode
gitホストサービス: gitlab
手順
ローカルリポジトリの作成
プロジェクト用ディレクトリを作成して、そのディレクトリ内でgit init
する。
$ mkdir my_project $ cd my_project $ git init
ローカルリポジトリに追加するファイルの選択
ローカルリポジトリに追加するファイルを選択する。
ディレクトリ内すべて追加してよければgit add .
でよい。
選択したい場合は、.
の代わりに追加するファイル名を指定する。
この操作はステージングするだけなので、リポジトリにファイルの変更は登録されない。
$ git add .
ローカルリポジトリにコミットする
ステージングしたファイルをローカルリポジトリにコミットする。
ルールに従ってメッセージを付与する。
$ git commit -m "iketeru message"
ユーザ設定
ユーザ設定が済んでいない旨のエラーメッセージがでたら、下記を実行して設定する。
$ git global user.email "your.name@email.com" $ git global user.name "your name"
リモートリポジトリ作成
ローカルリポジトリの内容を登録するリモートリポジトリを作成する。
今回はgitlabを使用した。
$ git remote add origin https://host/name/of/gitlab/yourproject.git
ローカルリポジトリをリモートリポジトリへ登録
ローカルリポジトリの内容をリモートリポジトリへ登録する。
リモートリポジトリのユーザ名とパスを聞かれるので答える。
下記は、ローカルのmasterブランチをリモートのoriginへ登録している。
$ git push -u origin master
おわりに
何回も忘れたので、勢いでメモした。
理解の足りないところや間違いがあるので、後ほど修正する。
参考
Rustでmap関数を実装したかった
結論
納得いかん
引数の方を何でもにできなかった。
再帰関数を定義しようとすると、多重貸し出しになってコンパイルが通らなかった。
解決策を調査したい。
サンプルコード
fn map<T>(f: Box<dyn Fn(T) -> T>, a: &Vec<T>) -> Vec<T> where T: Copy + std::ops::Add<Output = T> + std::ops::Sub<Output = T> + std::ops::Mul<Output = T> + std::ops::Div<Output = T> { let mut b = vec![]; for &num in a{ b.push(f(num)); } b } fn triple<T>(x: T) -> T where T: Copy + std::ops::Add<Output = T> + std::ops::Sub<Output = T> + std::ops::Mul<Output = T> + std::ops::Div<Output = T> { x * x + x - x / x } fn main(){ let mut arry1 = &vec![4, 5, 3, 2]; let v1 = map(Box::new(triple),&mut arry1); println!("{:?}", v1); }