約 4,653,743 件
https://w.atwiki.jp/linux-memo/pages/14.html
トップページ yum RPM Installer/Updater rpm yum-3.2.24-2.fc11(noarch) srpm yum-3.2.24-2.src.fc11(noarch) グループ システム ライセンス GPLv2+ 機能 YumとはRPMパッケージを自動的にダウンロードまたはアップデートするユーティリティである。他に必要なファイルを判断して自動的にダウンロードする場合もある。 Yum is a utility that can check for and automatically download and install updated RPM packages. Dependencies are obtained and downloaded automatically prompting the user as necessary. HOME Yellowdog updater modified サイズ 3.1Mb GUI gpk-application 設定ファイル /etc/yum.conf 設定記述方法は man yum.conf 両方同時に開いてみてください。man yum.conf の記述に従い[main]より下方に向かい/etc/yum.confが記述されているのが分かります。 log /var/log/yum.log 使用法 インストールされているソフトのリスト # yum list installed アップデート可能なパッケージを検索する # yum check-update パッケージ名 更新可能な全てのパッケージの更新をする # yum update 特定のアプリをインストールするには # yum install パッケージ名 削除するには # yum remove パッケージ名 パッケージグループのインストール # yum grouplist Fedora Eclipse Java Ruby X Window System LXDE OCaml XFCE # yum groupinstall パッケージグループ名 参考 Linux Lovers yumの使い方
https://w.atwiki.jp/linuxjapanwiki/pages/208.html
コメントログ作成 - 名無しさん (2020-07-03 00 51 42)
https://w.atwiki.jp/linux2ch/pages/138.html
Samba FAQ Samba FAQ Samba サーバーの設定 (Windows から Linux に接続する) ワークグループ名の設定 共有ユーザと接続パスワードの設定 Samba サーバーを起動 Linux から Windows に接続する。 Mac OS X から Linux に接続する Samba で日本語ファイル名が文字化けする。 Samba 3.0 の場合 Samba サーバーの設定 (Windows から Linux に接続する) ワークグループ名の設定 /etc/smb.conf にワークグループ名を設定する。 [global] workgroup = [ワークグループ名] 共有ユーザと接続パスワードの設定 smbpasswd コマンドを実行してユーザー名とパスワードを設定する。 # smbpasswd -a ユーザ名 New SMB password (パスワードを入力) Retype new SMB password (もう一度パスワードを入力) Samba サーバーを起動 ディストロによって場所が違ったりするので適時変更。 # /etc/rc.d/init.d/samba start これで、Windows 側のマイネットワークから共有したユーザのホームディレクトリに接続できる。(パスワードの入力が必要) 日本語のファイル名を扱う場合は下記の項目も参照。 Linux から Windows に接続する。 ワークグループの設定をして、smbclient // コンピュータ名 / 共有名 -U ユーザ名 と実行。ftp 風のコマンド (put/get など) でファイルを操作できる。 カーネルが smbfs を使えるようになっていれば、ファイルシステムにマウントすることも可能。 mount -t smbfs -o username=ユーザ名,password=パスワード //コンピュータ名/共有名 /mnt/lan_no_windows smbmount --helpにlfsが有ればマウントオプションにlfsを追加してください lfsがサポートされていない場合2GB以上のファイルを扱えません Mac OS X から Linux に接続する メニューバーの[移動]>[サーバへ接続]で、表示させたダイアログに以下を入力し[接続]をクリック。 smb //IPアドレス(もしくはサーバ名)/共有ディレクトリ等 ユーザー名、パスワードの入力を促すダイアログが表示されるので、LINUX側のsambaに登録したユーザー名等を入力。それだけです。 Samba で日本語ファイル名が文字化けする。 /etc/smb.conf に Windows と Linux それぞれの文字コードを設定します。 Samba 3.0 の場合 [global] unix charset = EUCJP-MS (または UTF-8) dos charset = CP932 mount optionにcodepage,iocharsetもあります。 Samba 3.0の全貌 改訂版[前編] http //www.atmarkit.co.jp/flinux/special/samba3b/samba03.html
https://w.atwiki.jp/sevenlives/pages/1804.html
time(Linuxコマンド)
https://w.atwiki.jp/projectwiki/pages/2.html
メニュー メイン トップページ Linux Mac OpenGL? OpenCV 編集メンバー向け情報 リンク @wiki mixi slashdot.jp New Scientist Tech ITmadia News ここを編集
https://w.atwiki.jp/m_shige1979/pages/783.html
初期設定 ダウンロード PostgreSQLのサイトよりソースコードのファイルをダウンロードを行う インストール インストール cd /usr/local/src/ tar zxf postgresql-9.0.1.tar.gz cd postgresql-9.0.1 ./configure \ --prefix=/usr/local/pgsql \ --with-pgport=5432 \ --with-perl --with-python make make install ユーザー作成 useradd -d /home/postgres -m postgres passwd postgres 権限変更 chown postgres postgres -R /usr/local/pgsql 環境変数設定 su - postgres vi ~/.bash_profile ##################################################### export PATH="$PATH" /usr/local/pgsql/bin export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH="$MANPATH" $POSTGRES_HOME/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH" "$PGLIB" ##################################################### source ~/.bash_profile 初期設定 su - postgres initdb --encoding=UTF-8 起動確認 pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/serverlog start pg_ctl -D /usr/local/pgsql/data stop 自動起動 cp contrib/start-scripts/linux /etc/rc.d/init.d/postgres chmod 755 /etc/rc.d/init.d/postgres chkconfig --add postgres /etc/init.d/postgres start ポート開放 /sbin/iptables -I INPUT -p tcp -m tcp --dport 5432 --syn -j ACCEPT /sbin/iptables -I INPUT -p udp -m udp --dport 5432 -j ACCEPT ユーザー、データベース作成 $ createuser -d -s -r -l -P testuser Enter password for new role ←パスワード入力 Enter it again ←パスワード入力 $ createdb -O testuser -W testdb Password ←パスワード入力 $ 設定ファイル編集 ##設定ファイルの編集1 vi /usr/local/pgsql/data/postgresql.conf ##左記のファイルを開く ################################################################################ listen_addresses = localhost,192.168.10.141 ##サーバのIPアドレスを指定 ################################################################################ ##設定ファイルの編集2 vi /usr/local/pgsql/data/pg_hba.conf ##左記の設定ファイルを開く ################################################################################ host all all 192.168.10.141 255.255.255.0 password ##リモートからの設定 ################################################################################ ##再起動 /etc/init.d/postgres restart
https://w.atwiki.jp/engineeringhowtos/pages/11.html
主にDebian/GNU Linux (etch以降)を前提としたHOWTO/FAQ集 リンク 大抵のことは以下のサイトで調べられる。 Debian公式サイト(日本語版) Debian JP Project 日本のLinux情報 Linux Japanese FAQ Project Linux Japanese Man Project @IT Linux Tips ITpro 書籍 有用な書籍 Corbet, Kroah-Hartman, Rubini著, 山崎 他,訳,「Linuxデバイスドライバ 第3版」,オライリージャパン 目次 ソフトウェアをインストールするsynapticを使ってインストールする aptitudeを使ってインストールする apt-getを使ってインストールする dpkgを使ってインストールする ソースファイルからコンパイルしてインストール インストールしたパッケージの設定のための情報を探す カーネルのバージョンを調べる ディストリビューションのバージョンを調べる 実行中のプログラムの一覧を表示する 実行中のプログラムが使用しているメモリの量を調べる GRUBからWindowsを起動する(手動) デバイスドライバを探して、インストールする前提知識 手順 ディストリビューションのアップデートにおける依存性の問題を解決するsarge -- etch におけるpasswdとdebianutilsの依存性問題 ログアウトしても停止されないようにプログラムを実行する 小技画像に縁を追加して所定のサイズにする ファイルのヘッダを16進数+ASCII文字として表示する 特定のファイルだけを除外してtarアーカイブを作る 特定のファイルだけを除外してディレクトリ中の全ファイルのサイズの総計を求める Emacs行末のCR+LFが正しく読み込まれなかったとき(行末に"^M"があるとき)の対処 ソフトウェアをインストールする 同じソフトウェアでもDebianやFedoraなどのディストリビューションによって使用している(依存している)ライブラリのバージョンが異なることがままあるので、Windows XP/Vistaのように実行可能ファイル(.exeファイル)をディスクにコピーするだけではインストールはできない。 以下、難易度の低い順にインストール方法を示す。 synapticを使ってインストールする aptitudeを使ってインストールする apt-getを使ってインストールする dpkgを使ってインストールする Web、CD、DVDなどからdebパッケージを入手する(debパッケージはファイル名の最後が.deb)。 次のコマンドを実行する(package.debは入手したパッケージのファイル名) dpkg -i package.deb ソースファイルからコンパイルしてインストール パッケージがない場合、この方法をとる。 GPLの下で配布されているフリーソフトウェアの 典型的なインストール手順は次のようになる。 1. gcc, make, automake, autoconfをインストールしておく。これらはコンパイルのために必要になる。 2. 開発プロジェクトのWeb/FTPサイトからソースファイルを入手する。たいてい、tar.gz形式や、tar.bz2形式で圧縮されたソースファイル一式が公開されている。 3. 圧縮されているソースファイルを展開する tar.gzファイルの場合 tar xzf source.tar.gz tar.bz2ファイルの場合 tar xjf source.tar.bz2 4. 展開したソースファイルがあるディレクトリに移動して、configureスクリプトを実行する ./configure コンパイルしようとしているソフトウェアが依存しているライブラリがインストールされていない場合、configureが警告メッセージを表示するので、そのライブラリをインストールする。 5. configureが成功すればMakefileが生成されているので、makeを実行する make 6. 管理者ユーザとして、コンパイルしたソフトウェアのインストールを行う su make install インストールしたパッケージの設定のための情報を探す 確実な情報源は、パッケージ自体に含まれているドキュメントである。パッケージ名をxxxxとすると、そのドキュメントは次のディレクトリにある。 /usr/share/doc/xxxx/ カーネルのバージョンを調べる unameコマンドを実行する uname -a ディストリビューションのバージョンを調べる /etc/issueの内容を表示する。 cat /etc/issue 実行中のプログラムの一覧を表示する 次のようにpsコマンドを実行する ps ax 実行中のプログラムが使用しているメモリの量を調べる topコマンドを実行する top procファイルシステムを利用する psコマンドを使って、調査対象のプロセスIDを調べる ps | grep program_name 見つかったプロセスIDをxxxxとすると、次のコマンドでメモリの使用量を表示できる。 cat /proc/xxxx/status GRUBからWindowsを起動する(手動) 元々WindowsがインストールされていたPC上で,Windowsの起動の設定をせずにGRUBをインストールしてしまった場合の対処. 1. PCを起動する 2. GRUBの画面が表示されたら C キーを押す 3. 以下のコマンドを入力する. root (hd0,0) chainloader +1 boot ただし"(hd0,0)"の部分はWindowsがインストールされているパーティションに応じて変更する. デバイスドライバを探して、インストールする 前提知識 Linuxにおけるデバイスドライバは次の二つの形態をとる カーネルに組み込まれたデバイスドライバ ローダブル・カーネル・モジュール(loadable kernel module)として存在するデバイスドライバ デバイスドライバを新規に追加しようとする場合,後者の形態のデバイスドライバを用いるほうが簡便である.ただし,前提としてそのデバイスドライバがインストール済みのカーネルに対応している必要がある. ローダブル・カーネル・モジュールのディスク上での実体は".ko"で終わる名前を持つファイルである.これらのファイルは,次のディレクトリに存在する. /lib/modules/ kernel_ver /kernel/ ここで kernel_ver はマシンのアーキテクチャ名を含むカーネルのリリース名である.例えば,カーネルのバージョンが2.6.22-2で,CPUがPentium2系列のCPUの場合,リリース名は2.6.22-2-686のようになる.利用中のカーネルのリリース名を調べるには次のようにunameコマンドを実行する. uname -r 手順 0.rootユーザとして作業すること. 1.使おうとしているデバイスのベンダIDとプロダクトIDを調べる。ベンダIDとプロダクトIDとは次のような番号であり、たいてい16進数で表現される。 ベンダID (Vendor ID) デバイスの製造会社(または販売会社)名を一意に区別する番号 プロダクトID (Product ID) デバイスを一意に区別する番号 PCIデバイスの場合、次のコマンドを実行する lspci -nn lspciの出力例 00 00.0 Host bridge [0600] Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086 3580] (rev 02) 00 00.1 System peripheral [0880] Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086 3584] (rev 02) 00 00.3 System peripheral [0880] Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086 3585] (rev 02) 00 01.0 PCI bridge [0604] Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to AGP Controller [8086 3581] (rev 02) 00 02.0 VGA compatible controller [0300] Intel Corporation 82852/855GM Integrated Graphics Device [8086 3582] (rev 02) 00 02.1 Display controller [0380] Intel Corporation 82852/855GM Integrated Graphics Device [8086 3582] (rev 02) 00 1d.0 USB Controller [0c03] Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 [8086 24c2] (rev 03) 中略 02 01.0 Ethernet controller [0200] Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec 8139] (rev 10) 以下略 上記出力中の"[xxxx yyyy]"の左側がベンダID,右側がプロダクトIDを示す.例えば,第5行のグラフィクスカードの記述からはIntelのベンダIDが8086であり,このグラフィクスカードのプロダクトIDが3582であることが読み取れる. USBデバイスの場合、次のコマンドを実行する lsusb lsusbの出力例 Bus 002 Device 005 ID 046d 08b2 Logitech, Inc. QuickCam Pro 4000 Bus 002 Device 004 ID 03eb 3301 Atmel Corp. at43301 4-port Hub Bus 002 Device 003 ID 056e 000d Elecom Co., Ltd Bus 002 Device 001 ID 0000 0000 Bus 001 Device 001 ID 0000 0000 上記出力中の各行の"ID xxxx yyyy"の" "の左側がベンダID、右側がプロダクトIDを示す。例えば,第1行のカメラについての記述からは,LogitechのベンダIDが046d,QuickCam Pro 4000(USBカメラ)のプロダクトIDが08b2であることが読み取れる. 2. Googleなどで,上記のデバイス名やベンダID,プロダクトIDをキーワードとして検索を行い,ドライバの開発プロジェクトのWebサイトを探す. 関連リンク lspciのmanページ lsusbのmanページ ディストリビューションのアップデートにおける依存性の問題を解決する sarge -- etch におけるpasswdとdebianutilsの依存性問題 問題 sargeではpasswdパッケージに所属していた /usr/bin/add-shell が etchではdebianutilsパッケージに移った。passwdをアップデートするには 依存関係上,debianutilsを先にアップデートする必要がある。ところが, debianutilsをアップデートしようとすると,その状態でのpasswdパッケージ の /usr/bin/add-shell を上書きすることができず,アップデートできない。 解決方法 passwdパッケージのみを依存関係を無視して先にインストールする。 具体的には 1. aptによりダウンロードされたpasswdパッケージをホームディレクトリにコピーする cp /var/cache/apt/archives/passwd_1%3a4.1.1-6_i386.deb ~/ 2. 依存性を無視して新しいpasswdパッケージを強制的にインストールする dpkg --force-all -i passwd_1%3a4.1.1-66_i386.deb 3. 改めてdebianutilsパッケージをアップデートする aptitude install debianutils または aptitude dist-upgrade ログアウトしても停止されないようにプログラムを実行する setsid ./program 小技 画像に縁を追加して所定のサイズにする ImageMagickのconvertコマンドを使うと次のとおり. convert original.png -gravity NorthWest -extent 512x512 padded.png original.pngが元画像, "-gravity NorthWest"は加工後の画像中での元画像の配置を指定, "-extent 512x512"は加工後のサイズを指定. ファイルのヘッダを16進数+ASCII文字として表示する head -c 64 test.swf | od -tx1z 特定のファイルだけを除外してtarアーカイブを作る findで指定パターンにマッチするファイルだけを除いたリストを作り標準出力ストリームに出力. パイプと"-T -"オプションにより,そのリストを標準入力ストリームからtarに読み込ませる. find /var/spool/ml/ -not -type d -not -regex ".*spool/[0-9]+" |tar cjf backup`date -Id`.tar.bz2 -T - 特定のファイルだけを除外してディレクトリ中の全ファイルのサイズの総計を求める find -not -type d -not -regex ".*tmp/.*" -printf "%k\n"|awk "BEGIN{sum=0} /.*/{sum += \$1} END{ print sum}" Emacs 行末のCR+LFが正しく読み込まれなかったとき(行末に"^M"があるとき)の対処 バッファ領域全体を選択 M-x recode-region ミニバッファにおいて"Text was really in "と表示されるたら,実際の文字コード名(utf-8-dos, etc.)を入力 ミニバッファにおいて"But was interpreted as"と表示されたら,誤解された文字コード名(utf-8-unix, etc.)を入力
https://w.atwiki.jp/gleaning/pages/14.html
/etc/make.conf # # /etc/make.conf.example is a good example. # # -------------------------------------------------------------------- # Definitions # -------------------------------------------------------------------- # Compile options CFLAGS="-O2 -march=nocona -pipe" CHOST="x86_64-pc-linux-gnu" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j2" # Sound card ALSA_CARDS="snd-intel8x0" # linguistic setting LINGUAS="ja" # -------------------------------------------------------------------- # Mirrors # -------------------------------------------------------------------- GENTOO_MIRRORS="ftp //ftp.ecc.u-tokyo.ac.jp/GENTOO http //mirror.gentoo.gr.jp http //gentoo.gg3.net/ ftp //gg3.net/pub/linux/gentoo/" SYNC="rsync //rsync.asia.gentoo.org/gentoo-portage" # -------------------------------------------------------------------- # Use flag # -------------------------------------------------------------------- USE="-ipv6 -motif -svga -foomaticcdb -berkdb cdr dvd dvdr dvdread emacs ruby spell xine cups ppds gimpprint nsplugin alsa oss dga ffmpeg ogg oggvorbis gstreamer mp3 aac mpeg xvid win32codecs a52 X freetype opengl imlib sdl png jpeg xpm gtk2 gnome qt kde kdeenablefinal kdexdeltas icc java javascript tcltk nls cjk iconv m17n-lib unicode uim ncurses readline spell acpi sse mmx xv xvid Xaw3d nvidia doc" # -------------------------------------------------------------------- # ebuildjp # -------------------------------------------------------------------- PORTDIR_OVERLAY_JP="/usr/local/portagejp" PORTDIR_OVERLAY="/usr/local/portagejp"
https://w.atwiki.jp/kuni/pages/2.html
トップページ メニューLinux Tips初級編 システム管理編 セキュリティ編 Firefox GRUB 更新履歴 取得中です。
https://w.atwiki.jp/linux2ch/pages/82.html
GNU関係。 フリーなUNIX OSソフトウェア部品「GNU」と、GNUを開発するGNU Project、ライセンスのGPLやLGPLに関するFAQ。 GNU関係。 GNUって何ですか? 具体的に何が作られてるの? GPL って何ですか? LGPL って何ですか? GPL のソフトウェアを BSD ライセンスなど、配布の制限が少ないライセンスで配布できますか? 上の逆 (BSD ライセンスなど、配布の制限が少ないライセンスのソフトウェアを GPL で配布) は可能? なんで継承条項が必要なの? GNUって何ですか? 一般的な言葉の用法はともかくとして、厳密かつ正確に言えば、GNUはOSの名前、GNU ProjectはGNUを開発するプロジェクト、FSFはGNU Projectとして開発されたフリーソフトウェアとライセンスの管理財団です。 GNU Projectでは、UNIX互換のOSをフリーソフトウェアとして開発することを目指しており、その名前がGNUと呼ばれる。(*1) GNU Projectは自主参加型のプロジェクトで、フリーソフトウェアとして使えるソフトウェアを自ら開発しようとする人で成り立っている。FSFはライセンスやフリーソフトウェアとして寄贈された知的財産を管理する組織。 元々の目的はUNIX互換ツールを開発してフリーで公開することだったがカーネル以外の細々としたツールは大体出来上がったし、カーネルはLinuxが登場してすぐに実用段階まで成長したので、今は過去に作られたソフトウェアのメンテナンスだとか、UNIX互換に限らないフリーソフトウェアの自主開発とかをやっている。 Linuxでは、カーネルをビルドするためのコンパイラなどにGNU Projectとして開発されたものが使われている。また、カーネルを起動するためのブートローダー、起動したカーネルで実行できるUNIXツールの中にGNU Project由来のソフトが多数再利用されており、ユーザーランドから見てGNU由来のソフトが多いため、それを強調して「GNU/Linux」と呼ぶこともある。 GNU/Linuxの頭に「GNU」とついてるのは別にLinuxがGNUのものだとか示したいわけではなく、Linuxの上でGNUが動いているという意味や状態を指す。Java/WindowsとかLinux/PPCとかみたいなもん。 具体的に何が作られてるの? 汎用コンパイラGCC、C言語ライブラリGlibc、コンパイル自動化ツールMake、ビルドシステムAutotoolsなどプログラミング関係のツール マイクロカーネルHurd UNIX互換の小さなソフトツール群(coreutils, diffutils, findutils, grep, sed, awk, ...) コマンドラインシェルBash テキストエディタEmacs プロジェクトに寄稿された雑多なソフトプロジェクト多数 GNU Projectとして開発されたフリーソフトウェアの例 http //en.wikipedia.org/wiki/List_of_GNU_packages GPL って何ですか? GNU General Public License(GNUの一般公共ライセンス)の略。 「ソフトウェアはユーザーに自由であるべき」というGNU Projectによる考えから作られたフリーソフトウェアの開発・配布促進用ライセンス。 ライセンスの内容は和訳(法的な効力はなし)を参照のこと。 以下は要約 ソフトウェアを誰にでも自由に扱えるようにしたい。が、そのためには著作権でソフトが自由に使われるようにする必要がある。 複製品に著作権表示を行うこと 複製、または改変したものを配布するときは: 変更されたことを明記すること 全体をこのライセンスに従ってライセンスすること 対話的に実行する形式に改変する場合は、適切な場所に著作権表示と保証の有無を記載すること バイナリ形式で配布する場合は以下のどれかを選ぶこと ソースコードを添付する ソースコードを提供すると述べた有効な書面を示す バイナリを得た際に得た情報を渡す ライセンスで提示された内容を除き、コピーや改変、サブライセンスを行ってはならない このライセンスを許諾する必要はない。が、このライセンス以外に複製、改変、配布する許可を与えるものは存在せず、そうした行為は法によって禁止される。 再配布したとき、受取人は自動的にここにある許可を得る。配布者は権利を制限できないし、同意を強制することもできない。 裁判所の命令でこのライセンスと矛盾する責任がかせられた場合でも、このライセンスの条件は免除されない。よって、そうした場合は配布を諦めなければならない。 節の一部分が特定状況下で実施不可能であっても、節の残りの部分は機能する。そうでない場合は全体が機能する。 元々は GNU Project のライセンスだったが、Linux などでも採用された。改変された状態であっても元のソフトウェアと同じく自由な姿での配布を要求する「コピーレフト」を主張するライセンスの1つ。 GNU General Public License / 和訳 LGPL って何ですか? GPL を少し緩めたライセンス。GNU Lesser General Public License(GNU 劣等 一般公衆利用許諾契約)の略。 GNU では使用することを勧めていません。 GPL で配布されているソフトでは、改変して配布する場合も全体をGPLで配布しないといけない。これは、元の著作物とは別に「派生物」と呼ばれる。 ただし、改変したプログラムにGPLだったプログラム片がどれだけ含まれていればそれが派生物とされるのか、という点が曖昧だという問題があった。GPLなコードを1行入れただけでも派生物なら(※)、GPLなライブラリにリンクさせるために、GPLな関数のシンボル情報を組み込むのはどうなのか、とか。 ※:元々のコードから該当部分以外を削除し、独自にコードを追加したものと考えられるため、GPLな著作物の派生物となる。 この場合、独自コード追加部分の著作権は自分にあるので、たとえばBSDライセンスなどで自分のコード部分を公開するようなことも可。 GPLな著作物とくっつけて配布するためには、自分のコードもGPL可での利用を許可する必要あり。あとでGPLなところを消して書き直してしまえば、自分で1から作ったソフトとして任意のライセンスを選択可。 ライブラリを使うソフトをGPLなものに限定するのならこうした問題を気にする必要はないが、GPLと矛盾するライセンスのソフトが受け入れられるためには問題になるので、わざわざライブラリ用にLGPLってのが開発された。 LGPL では、従来の GPL 方式の自由さをユーザーに一部与えているものの、ライブラリを呼び出すだけのプログラムは派生物ではなくなったので、そうしたプログラムはGPL互換でない非自由なライセンスでもユーザーに配布できる。glibcとかgtk+とかopenoffice.orgとかがLGPLに含まれる。 GNU Lesser General Public License / 和訳 GPL のソフトウェアを BSD ライセンスなど、配布の制限が少ないライセンスで配布できますか? GPL では、配布の条件として同じライセンスで配布することが求められるので、それはできない。 BSDライセンスでは、ソフトウェアを自由でない状態で配布することが一切禁じられていないので、GPLなソフトをBSDライセンスで配布するということは、元のソフトを自由でない状態で配布する許可を無断で与えることになる。そうした行為は、著作者の同意無しには不可能。 上の逆 (BSD ライセンスなど、配布の制限が少ないライセンスのソフトウェアを GPL で配布) は可能? ライセンスで許可されている内容による。 GPLで許可する内容で持って元のライセンス文面を守れるのなら、そういうことも可能。しかし、そうでない場合(たとえば、宣伝条項付きの BSD ライセンス) は、GPLで配布すると許可された内容からはみ出すことになる。なので、使う前にライセンスの適合性を確認すること。 GNU Project が、そういうソフトウェアからコードを使って作ったソフトをGPLで配布しようとする人のためのライセンス文面の矛盾状況を載せているので見るといいかも。 MozillaみたいにGPL/LGPL/MPLとトリプルライセンスになっているソフトウェアの場合は、GPL/LGPLソフトウェアの開発にコードを自由に使うことができる。 なんで継承条項が必要なの? たとえば、XはもともとのXがフリーでも、多くのUNIXでプロプライエタリなものだった。 GPLは継承条項をつけることで、「そのソフトウェアがどんな状況でもフリーである」ことを保証する。