20191112のLinuxに関する記事は5件です。

OSのいろいろ

未来電子テクノロジーでインターンをしているtokky08です。
OS/Linuxについて勉強したのでアウトプットとして書いていきます。

プログラミング初心者であるため、内容に誤りがあるかもしれません。
もし、誤りがあれば修正するのでどんどん指摘してください。

OSって何?

OSとは、「オペレーティングシステム」の略のことです。パソコン全てのハードとソフトをユーザーが利用しやすいように管理・制御してくれます。もし端末にOSがなければ、タスクの管理/ファイルの管理/周辺機器の管理/などなどができなくなります。

タスクの管理って何?

端末が行う仕事の管理のことです。複数のウィンドウを開いたり、調べながらWordを使ったりができるのはOSのおかげです。

ファイルの管理って何?

MacだとFinderのようにファイルは階層構造になっていたり、ファイルの名前を変えたり、内容を保存・書き換えたりと言ったことをOSが管理しています。

周辺機器の管理って何?

キーボード、マウス、ディスプレイ、外付けハードディスクなどの動作をOSが管理しています。

Mac

Appleが販売しているコンピュータのMacだけでしか利用できないOSです。

メリット

  • UIが整っていてシンプルで使いやすい印象。
  • プログラミング環境が整っている。
  • アプリのクオリティが高い。

デメリット

  • 導入コストが高い。

Windows

Windowsは世界で一番利用されているOSです。日本のほとんどの企業で導入されているPCは、ほぼWindowsです。

メリット

  • カスタマイズ性が高い
  • Macよりも安い

デメリット

  • ウィルスの標的になりやすい
  • UIが分かりにくい

Linux

無料かつオープンソースなOSである。

メリット

  • 動作が軽い
  • シェル・ターミナルが便利

デメリット

  • 敷居が高い
  • 学習難易度が高い

まとめ

簡潔にまとめましたが、OSにも種類があってそれぞれの利便性があることが分かりました。僕はMacユーザーなので言うまでもなくMacが好きですね。しかし、就職するとなったらWindowsも使う必要性が出てくると思うので慣れておく必要もあるかなと思いました。Linuxに関してはMacがあるからいいやと思っていましたが無料なのでトライしてみたいですね。(腰が重いですが)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

LAMP環境構築手順: 仮想環境

LAMP構築: Linux仮想環境作成 by Virtual Box

よくLAMPの仮想環境作成するので手順をまとめてみました。
多分Vagrantとか使ったらいいんでしょうけど、いろんな仮想環境を構築するのでなれもふくめて、まとめていきます。

手順通りにやれば1時間以内には終わると思います。
環境依存かもしれないのでisoファイルは似た感じのを使ったほうが苦労は少ないかと。

準備

VirtualBoxのインストール
isoファイルのダウンロード
今回使用するisoはCentOsのMinimalを使用しています。

仮想環境の作成

VirtualMachineを作成

  • タイプ: Linux
  • Version: RedHat(64bit)

それ以外の部分はOkOkOKで大丈夫です。

VirtualMachineの設定

  • Network: ブリッジアダプター

起動

マウスで操作できなければ、気合でTabを駆使して頑張ってください。
1. ディスクの選択: CentOS-7-x86_64-Minimal-1810.iso
2. INSTALLATION DESTINATION を選択して、Done で戻ると BeginInstallation が選択できる。
3. root password を設定する。
4. しばらくまつ。
5. Reboot ボタンが押せるようになると思うので、それで再起動しましょう

Linuxの設定

root ユーザでloginしてください。

Network接続

nmtuiを起動します。

nmtui
  1. Edit a connection
  2. enp0s3(一個しかないはず) > Edit
  3. Automatically connect をTrueにする(SpaceでOn/Off切り替えができる)
  4. Ok押して、Quitする。

YumのUpdate

yumのUpdateが行えたら、Networkに接続できてます。

yum -y update

Centさんが頑張ってくれます。長いので気長に待ちましょう...

とりあえずこれで、仮想環境の作成ができました。
次は、Apacheのインストールにまいりましょう。

LAMP構築: ApacheのInstallataion

ではではApacheをインストールしていきたいと思います。
Apacheのインストールは簡単ですが、SelinuxやFirewallなどに躓くことがあります。
できるだけ楽してやっていきましょう

Apacheのインストール

# apacheのインストール
yum -y install httpd
# apache serverの起動を永続化
systemctl enable httpd

これだけです。簡単ですね。
つぎが最初のころにはまる問題点だと思います。

Security関係

初期状態だとApacheServerを起動してもアクセスできないので、
設定を行っていきます。

firewallにhttpserviceを追加

ファイヤ―ウォールさんが http の接続をはじいちゃいますので、
http をはじかないように設定しましょう。

firewall-cmd --zone=public --permanent --add-service http

Sellinuxの無効化

本番環境では無効にしてはいけないのですが開発環境なので、無効にするのが楽なので無効にしてしまいます。

vi/etc/selinux/config 編集しましょう。
viはLinuxのエディターです。
i を押すと編集モードに、esc でコマンドモードになります。
編集が終わったらコマンドモードで :wp と入力し保存しましょう

vi /etc/selinux/config
/etc/selinux/config
SELINUX=disabled

では設定の反映のため再起動します。

reboot

Chromeで表示

ではChromeでちゃんとアクセスできるか確認しましょう。

Statusの確認

再起動がおわればそれぞれのStatusを確認しましょう

getenforce
service httpd status
  • getenforce
    • Disabled と表示されればOKです
  • service httpd status
    • Active: active (running) と表示があればOKです。

サイトにアクセス

では実際にWebサイトにアクセスしましょう。

まず ipaddress を確認します。

ip -a

enp0s3: のsectionにある、これっぽいなーってやつがadressです。(最後が255とかやないやつ)
例: 192.168.1.100

そのアドレスをChromeのurlに打ち込みましょう。

Testing 123... 

と表示されれば接続できてますねー。

表示内容の編集

apacheの初期設定では、/var/html/ がserverのルートDirectoryです。
そこの index.html を最初に参照します。
実際にindex.htmlを作成して、サイトの表示が変わるか試してみましょう。

echo "Hello World" > /var/www/html/index.html

これで /var/www/html/index.htmlHello World と書き込まれました。

ChromeをReloadして

Hello World 

と表示されれば成功です。

以上でApacheのInstallationが完了しました。

次はPHPのInstallationに進みましょう!

LAMP構築: PhpのInstallation

ではではPHP7をインストールしていきたいと思います。

Php7のインストール

デフォルトではyumにphp7が入ってないみたいなので、
yumでインストールできるようにRepositoryを追加してから。
PhpとPhpの基本Libralyをインストールしていきます。

# install php7 repo at yum repository.
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

#install php7
yum install -y --enablerepo=remi,remi-php74 php php-gd php-pdo php-mbstring php-xml

インストールができたらApacheを再起動します。

service httpd restart

動作確認

では、実際にPhpが動くか確認しましょう。
/var/www/html/ に php_info.php を追加してChromeで表示してみます。

echo "<?php phpinfo();" > /var/www/html/php_info.php

ではChromeでアクセスしてみましょう。
URLに [ipadress]/php_info.php でアクセスできます。
例: 192.168.1.100/php_info.php

Phpの情報がずらーと表示されればOKです。

これでphpもインストールすることができました!

次はmysqlですね。

LAMP構築: MySqlのInstallation

ではではMySql8をインストールしていきたいと思います。
個人的には最難関。間違ってMysql5をインストールしてからMysql8に戻すとかする時に、ちょっとつかれる...
ここらへんで VirtualBoxのSnapshot に保存とかしとくといつでも戻れるのでチャレンジしやすいかもです。

MySql8のインストール

デフォルトではyumにmysqlが入ってないみたいなので、
yumでインストールできるようにRepositoryを追加してから,
MySql8をインストールしていきます。

最新のMySqlのRepositoryを確認しましょう
/mysql80-community-release-el7-3.noarch.rpm の部分を最新のに合わせてください。

# add mysql-community-server repo at yum repository
yum -y install http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# install mysql server
yum -y install mysql-community-server

Centさんがめちゃくちゃ頑張ってくれます。
長いので、猫と戯れるなりして気長に待ちましょう...

MySqlの起動

では実際に起動しましょう

# mysqlの起動永続化
systemctl enable mysqld
# mysqlの起動
systemctl start mysqld
# statusの確認
systemctl status mysqld

これで Active: active (running) になっていればOKです。

MySqlの初期設定

初期パスワード

まずrootユーザーが作成されているので、rootユーザーの初期パスワードを入手しましょう

cat /var/log/mysqld.log | grep root

A temporary password is generated for root@localhost: xxxxxxxxx
xxxxxxxxxx の部分が初期パスワードです。

基本はこれで出てくるはずなんですがもしなんか出てこないとなったらここを参照してください
参照先の my.cnf/etc/my.cnf のことです。

自動設定

では初期設定を行います。
mysql_secure_installation を使用して設定します。

mysql_secure_installation
  1. パスワードを聞かれるのでゲットした初期パスワードを入力しましょう。
  2. 新しいパスワードを設定してください。
  3. それ以外はすべてEnterを押していけばOKです。

パスワード認証方式の変更

Mysql8のパスワード認証方式にPHPが対応していないので対応している認証方式に変更します。

/etc/my.cnf
[mysqld]
default-authentication-plugin=mysql_native_password

すべての設定が完了したらMySqlを再起動しましょう

systemctl restart mysqld

MySqlにアクセス

ではrootユーザでアクセスしてみましょう。
下記のコマンドを実行してパスワードを聞かれるの入力してください。

mysql -u root -p

# アクセスできるとコマンドラインの最初に mysql>と表示される
# databaseの一覧を表示
mysql>show databases;

# できたらquitしましょう
mysql> quit

これでMysqlのInstallationが完了しました。

まとめ

以上LAMPの環境構築でした。
LAMPの環境構築は始めてやるとはまりまくりますが、黒い画面になれるためにも一度一からやってみると勉強になりますよね。

仮想環境はめちゃくちゃ便利なのでぜひ活用していきたいと思います。
なんか変になったら消せばいいし、SnapShot機能もあるので戻せますし。

次は復習がてらにPhpの自作WebFrameworkを作ろかと思います。
ではその時に会いましょう。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

スパコンで急に計算が止まった

スパコンで計算が止まった

今まで計算がイタレーション回数回っていたところ、こんなエラーが出てきた

=>> PBS: job killed: walltime 3627 exceeded limit 3600

なんかリミットが制限されたと書かれている
調べたところ異常終了に関するエラーだそうで

  • 経過時間制限による終了

=>> PBS: job killed: walltime 3602 exceeded limit 3600 aprun: Apid 379565: Caught signal Terminated, sending to application

  • どうやら経過時間を増やすオプションがあるらしいので実行してみる

会話型でプログラムを実行する場合,経過時間が標準の制限を超えると,プログラムは強制終了されます. -Wオプション を指定することで,時間を上限まで増やすことができます.

-W オプションをつけてやってみた。しかしジョブが回らずに止まってしまったのでジョブを終了させた。

  • オプションつけるのはうまくいかなかったのでいったん置いておく。次に計算時間を指定させる方法を使ってみる。

'''

#PBS -l cput=時:分:秒

    例) #PBS -l walltime=03:00:00
    ジョブの実行時間を最大で3時間まで使用する指定です。

'''

無事回ってるっぽいです。

  • デフォルトのwalltime
  • 今までのwalltime

が分からないと今後同じ壁にぶつかりそうなので、リサーチしようと思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxのメモリ管理について(その②)

ページテーブル

カーネルのメモリ内に保存されている。
仮想アドレスから物理アドレスへの変換に用いる表の事を指す。
ページと言われる単位で管理されており、ページテーブル内の1つのページに対応するデータを「ページテーブルエントリ」と呼ぶ。ページテーブルエントリには仮想アドレスと物理アドレスの対応情報が含まれている。

ページフォルト

物理アドレスに紐づいていない。仮想アドレスにアクセスした際に起きる事象。
標準ではページフォルトハンドラと呼ばれる実行中の命令を中断する処理が動く。
ページフォルトハンドラはSIGSEGVと呼ばれるシグナルを用いて、プロセスに通知する。
仮想アドレス空間は独立したプロセス事に作成されそれに応じてページテーブルが作成される為、独立した仮想アドレス空間を持っている。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ubuntuのインストール(ブートUSB作成から)

今回の目的

UbuntuをUSBからブートして、Ubuntuに再インストールすること

ブートUSBを作ろう

 今回は、UbuntuOSが元々ある前提になります。
まずは、このページを参考にブートUSBを作成しましょう。(自分も参考にさせてもらいました)
まあ、結局isoイメージなんでDVDに書き込んでも同じですね。

ブート順序を変更してUSBからブートさせるようにしよう

 では、シャットダウンさせBIOSを起動させましょう。
IMG_0227.jpg
↑上の画面ですね。ベンダーによって開き方違いますがThinkPadは最初にEnterでした。そして、ブート順序を変えてUSBを1番にしましょう。これを変更しないと永遠とディスクからOS起動しちゃいます笑
IMG_1943.PNG

再インストール開始!

 あとは、USBを刺して再起動を行うだけですね。
ここで、自分は「gfxboot.c32: not a COM32R image」というメッセージに出くわしました
メッセージを読むと「一度tabキーを押して、helpと入力」すると次に進めるみたいです。
もし出てきた方は試してみてください。

OSが起動しましたら、GUI操作でインストールするだけです。
デスクトップにインストール用のアイコンがあるのでクリックすれば始まります。
再インストールするとOS上のデータは無くなりますのでバックアップは取っておきましょう。

ログインしましょう

デフォルトで「ubuntu」というユーザーがあるので、ログインしましょう。
パスワードは空白ですので何も入力しなくて大丈夫です。

完成

ここまででUbuntuのインストールは完了です。
最初に使うだろうコマンドを記載しておきますね。

・rootのパスワードの変更(これをしないと、suでrootになれない気が?)

$ sudo su -
# passwd root

・CLIモードに変更

# init 3
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む