トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Ubuntu

参考サイト

VMware Toolsのインストール @ Ubuntu 8.04 (Hardy) VM @かえでのWebログ

UbuntuのリポジトリにはVMware Toolsのパッケージが用意されているので、Debian VMにVMware Toolsをインストールする方法ではなく、aptで導入する方法が楽です。

導入するパッケージは以下の通り。

  • open-vm-tools
  • open-vm-tools-gui

Ubuntu community Upgrade Notes

  • https://help.ubuntu.com/community/UpgradeNotes
  • リリース間のOS更新方法
  • 段階を踏まないとOS更新できない
  • 10.04 LTS --> 10.10
  • 9.10 / 8.04 LTS --> 10.04 LTS
  • 9.04 --> 9.10
  • 8.10 --> 9.04
  • 6.06 LTS --> 8.04 LTS
  • 5.10 --> 6.06 LTS

Debian の apt/apt-get/aptitude について / Sharing Innovations in the Web

さて本日の話題ですが、 Debian 系の OS を使っていると知らず知らずのうちにお世話になっているはずの apt/apt-get/aptitude についてです。

結論としては apt を使っていこ です。

Ubuntu 18.04 LTS Server】時刻の同期について / The modern stone age.

Ubuntu 18.04 LTS Serverでの時刻同期は、ntpdateを使わずにSystemdの機能を使って時刻の同期を行っているようです。

デフォルトの状態で、時刻の同期に ntp.ubuntu.com というサーバーが使われて同期が実行されている。

$ sudo systemctl -l status systemd-timesyncd
  • 応用
$ sudo systemctl status systemd-timesyncd
$ sudo systemctl restart systemd-timesyncd

Ubuntu 18.04 LTSで固定IPアドレスの設定 / Qiita @zen3

Ubuntu 18.04 LTS Serverでの固定IPアドレス設定。

17.10から、IPアドレスの変更が/etc/network/interfacesをいじる方式から変更になっているのでメモ。

/etc/netplan/50-cloud-init.yamlを編集しIPアドレスを設定します。

設定ファイルのパスは、

Live CDからインストールした場合は/etc/netplan/50-cloud-init.yaml

mini.isoからインストールした場合は/etc/netplan/01-netcfg.yaml

  • 設定例
network:
 version: 2
 renderer: networkd
 ethernets:
   enp0s3:
     dhcp4: no
     dhcp6: no
     addresses: [192.168.1.70/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
  • テストサーバ ubuntu02 上での設定ファイル例(DHCP)
root@ubuntu02:/etc/netplan# cat /etc/netplan/50-cloud-init.yaml
network:
   ethernets:
       enp0s3:
           addresses: []
           dhcp4: true
   version: 2
  • IPアドレス設定変更の反映

netplan applyを実行して反映します。再起動不要です。

loginuser@localhost:~$ sudo netplan apply
  • IPアドレスの確認
loginuser@localhost:~$ ip addr

How to set environment variable in systemd service? / serverfault lfagundes

I have an Arch Linux system with systemd and I've created my own service. The configuration service at /etc/systemd/system/myservice.service looks like this:

[Unit]
Description=My Daemon

[Service]
ExecStart=/bin/myforegroundcmd

[Install]
WantedBy=multi-user.target

Now I want to have an environment variable set for the /bin/myforegroundcmd. How do I do that?

  • answer

Times change and so do best practices.

The current best way to do this is to run systemctl edit myservice, which will create an override file for you or let you edit an existing one.

In normal installations this will create a directory /etc/systemd/system/myservice.service.d, and inside that directory create a file whose name ends in .conf (typically, override.conf), and in this file you can add to or override any part of the unit shipped by the distribution.

...中略...

The recommended way to do this is to create a file /etc/sysconfig/myservice which contains your variables, and then load them with EnvironmentFile.

For complete details, see Fedora's documentation on how to write a systemd script.

  • answer (和訳)

時は変わり、ベストな対応も変化します。

現在のところ、 「systemctl edit サービス名」を起動すると既存の設定を上書きするファイルを作成し編集します。

通常のインストールで、上記コマンドを実行すると /etc/systemd/system/myservice.service.d ディレクトリを作成し、.conf 拡張子のファイルを作成します。このファイルでパッケージの設定を上書きしたり追加したりできます。

詳しくは

...中略...

古い方法を記録しておくと、 /etc/sysconfig/myservice にファイルを作成し、 EnvironmentFile 指定でファイルの内容を読み込む方法でした。

Howto install Oracle OCI8 instantclient on Ubuntu 18.04 / serverfault

作業メモ

OS 更新

  • 通常
sudo apt-get update
sudo apt-get upgrade
  • upgrade では保留されていて再起動を伴うもの(kernelなど)
sudo apt-get dist-upgrade

パッケージ一覧

dpkg --list

パッケージインストール

sudo apt-get install ...
sudo apt-get install open-vm-tools

パッケージ除去

sudo apt-get remove ...
sudo apt-get remove open-vm-tools

ネットワーク再開

  • vmware-config-tools.pl 実行時に kernel ヘッダがなくてコンパイルできなかった。
  • ネットワークのモジュールが使えなくなった。
/etc/init.d/networking stop
rmmod vmxnet
rmmod pcnet32
depmod -a
modprobe pcnet32
/etc/init.d/networking start

kernel ヘッダのインストール

  • ヘッダのインストール
apt-get install linux-headers-generic
  • /usr/src/linux リンク再作成

apache2 サービスへの oracle-instantclient 環境変数追加

  • oracle-instantclient を /usr/local/lib/instantclient_11_2 にインストール
  • ライブラリをパスに追加
root@ubuntu02:/var/www/html/trz_picking# echo /usr/local/lib/instantclient_11_2 >> /etc/ld.so.conf.d/oracle-instantclient.conf
root@ubuntu02:/var/www/html/trz_picking# ldconfig
  • php から oracle に接続するため、3つの環境変数を追加する。
NLS_LANG=Japanese_Japan.AL32UTF8
ORACLE_HOME=/usr/local/lib/instantclient_11_2
  • PATH はハードコードで設定する。systemd 環境でのPATH設定追加は変数展開されない。
  • 現行環境に ORACLE 関連環境変数がないことを確認
root@ubuntu02:/etc/systemd/system# curl -v http://localhost/trz_picking/phpinfo.php 2>&1 | grep -i -e oracle_home -e instantclient -e nls_lang | uniq
  • 出力なし
  • apache2.service への環境変数の追加
# systemctl edit apache2
  • 編集追加内容
[Service]
Environment="NLS_LANG=Japanese_Japan.AL32UTF8"
Environment="ORACLE_HOME=/usr/local/lib/instantclient_11_2"
  • ファイル /etc/systemd/system/apache2.service.d/override.conf 内容
[Service]
Environment="NLS_LANG=Japanese_Japan.AL32UTF8"
Environment="ORACLE_HOME=/usr/local/lib/instantclient_11_2"
  • 設定ファイル読み込み
# systemctl restart apache2
  • 環境変数が追加されたことを確認
root@ubuntu02:/var/www/html/trz_picking# curl -v http://localhost/trz_picking/phpinfo.php 2>&1 | grep -i -e oracle_home -e instantclient -e nls_lang | sort | uniq
<tr><td class="e">NLS_LANG </td><td class="v">Japanese_Japan.AL32UTF8 </td></tr>
<tr><td class="e">ORACLE_HOME </td><td class="v">/usr/local/lib/instantclient_11_2 </td></tr>
  • db テスト php #1
  • 失敗を確認する。
<?php
// Create connection to Oracle, change HOST IP and SID string!
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 000.000.000.000)(PORT = 1521)))(CONNECT_DATA=(SID=XXX)))";
// Enter here your username (DBUSER) and password!
$conn = oci_connect("DBUSER", "PASSWORD",$db);
if (!$conn) {
   $m = oci_error();
   echo $m['message']. PHP_EOL;
   exit;
}
else {
   print "Oracle database connection online". PHP_EOL;
}
?>
Fatal error: Uncaught Error: Call to undefined function oci_connect() in /var/www/html/trz_picking/test_oradb.php:5
Stack trace: #0 {main} thrown in /var/www/html/trz_picking/test_oradb.php on line 5
  • 必要pkgインストール状況確認
root@ubuntu02:/var/www/html/trz_picking# dpkg -l php7.2-dev php-pear build-essential libaio1
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前                                                  バージョン                      アーキテクチャ                  説明
+++-=====================================================-===============================-===============================-================================================================================================================
ii  build-essential                                       12.4ubuntu1                     amd64                           Informational list of build-essential packages
ii  php-pear                                              1:1.10.5+submodules+notgz-1ubun all                             PEAR Base System
dpkg-query: php7.2-dev に一致するパッケージが見つかりません
dpkg-query: libaio1 に一致するパッケージが見つかりません
  • 必要pkgインストール
root@ubuntu02:/var/www/html/trz_picking# apt install php7.2-dev libaio1
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libssl-dev libssl-doc shtool
提案パッケージ:
  dh-php
以下のパッケージが新たにインストールされます:
  libaio1 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libssl-dev libssl-doc php7.2-dev shtool
アップグレード: 0 個、新規インストール: 9 個、削除: 0 個、保留: 64 個。
4,148 kB のアーカイブを取得する必要があります。
この操作後に追加で 21.2 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
  • oci8 ビルド
root@ubuntu02:/var/www/html/trz_picking# pecl install oci8
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading oci8-2.2.0.tgz ...
Starting to download oci8-2.2.0.tgz (196,449 bytes)
.........................................done: 196,449 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718
Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] : instantclient,/usr/local/lib/instantclient_11_2

...中略...

Build complete.
Don't forget to run 'make test'.

running: make INSTALL_ROOT="/tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0" install
Installing shared extensions:     /tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0/usr/lib/php/20170718/
running: find "/tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0" | xargs ls -dils
1186687   4 drwxr-xr-x 3 root root   4096  4月 23 14:19 /tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0
1186718   4 drwxr-xr-x 3 root root   4096  4月 23 14:19 /tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0/usr
1186719   4 drwxr-xr-x 3 root root   4096  4月 23 14:19 /tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0/usr/lib
1186720   4 drwxr-xr-x 3 root root   4096  4月 23 14:19 /tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0/usr/lib/php
1186721   4 drwxr-xr-x 2 root root   4096  4月 23 14:19 /tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0/usr/lib/php/20170718
1186717 740 -rwxr-xr-x 1 root root 755080  4月 23 14:19 /tmp/pear/temp/pear-build-root8FTbXp/install-oci8-2.2.0/usr/lib/php/20170718/oci8.so

Build process completed successfully
Installing '/usr/lib/php/20170718/oci8.so'
install ok: channel://pecl.php.net/oci8-2.2.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini